source: trunk/third/freetype/builds/toplevel.mk @ 18171

Revision 18171, 3.6 KB checked in by ghudson, 22 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r18170, which included commits to RCS files with non-trunk default branches.
Line 
1#
2# FreeType build system -- top-level sub-Makefile
3#
4
5
6# Copyright 1996-2000 by
7# David Turner, Robert Wilhelm, and Werner Lemberg.
8#
9# This file is part of the FreeType project, and may only be used, modified,
10# and distributed under the terms of the FreeType project license,
11# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
12# indicate that you have read the license and understand and accept it
13# fully.
14
15
16# This file is designed for GNU Make, do not use it with another Make tool!
17#
18# It works as follows:
19#
20# - When invoked for the first time, this Makefile will include the rules
21#   found in `PROJECT/builds/detect.mk'.  They are in charge of detecting
22#   the current platform.
23#
24#   A summary of the detection will be displayed, and the file `config.mk'
25#   will be created in the current directory.
26#
27# - When invoked later, this Makefile will include the rules found in
28#   `config.mk'.  This sub-Makefile will define some system-specific
29#   variables (like compiler, compilation flags, object suffix, etc.), then
30#   include the rules found in `PROJECT/builds/PROJECT.mk', used to build
31#   the library.
32#
33# See the comments in `builds/detect.mk' and `builds/PROJECT.mk' for more
34# details on host platform detection and library builds.
35
36
37.PHONY: all setup distclean modules
38
39# The `space' variable is used to avoid trailing spaces in defining the
40# `T' variable later.
41#
42empty :=
43space := $(empty) $(empty)
44
45
46ifndef CONFIG_MK
47  CONFIG_MK := config.mk
48endif
49
50# If no configuration sub-makefile is present, or if `setup' is the target
51# to be built, run the auto-detection rules to figure out which
52# configuration rules file to use.
53#
54# Note that the configuration file is put in the current directory, which is
55# not necessarily $(TOP_DIR).
56
57# If `config.mk' is not present, set `check_platform'.
58#
59ifeq ($(wildcard $(CONFIG_MK)),)
60  check_platform := 1
61endif
62
63# If `setup' is one of the targets requested, set `check_platform'.
64#
65ifneq ($(findstring setup,$(MAKECMDGOALS)),)
66  check_platform := 1
67endif
68
69# Include the automatic host platform detection rules when we need to
70# check the platform.
71#
72ifdef check_platform
73
74  # This is the first rule `make' sees.
75  #
76  all: setup
77
78  ifdef USE_MODULES
79    # If the module list $(MODULE_LIST) file is not present, generate it.
80    #
81    #modules: make_module_list setup
82  endif
83
84  include $(TOP_DIR)/builds/detect.mk
85
86  ifdef USE_MODULES
87    include $(TOP_DIR)/builds/modules.mk
88
89    ifeq ($(wildcard $(MODULE_LIST)),)
90      setup: make_module_list
91    endif
92  endif
93
94  # This rule makes sense for Unix only to remove files created by a run
95  # of the configure script which hasn't been successful (so that no
96  # `config.mk' has been created).  It uses the built-in $(RM) command of
97  # GNU make.  Similarly, `nul' is created if e.g. `make setup win32' has
98  # been erroneously used.
99  #
100  # note: This test is duplicated in "builds/toplevel.mk".
101  #
102  is_unix := $(strip $(wildcard /sbin/init) $(wildcard /usr/sbin/init) $(wildcard /hurd/auth))
103  ifneq ($(is_unix),)
104
105    distclean:
106          $(RM) builds/unix/config.cache
107          $(RM) builds/unix/config.log
108          $(RM) builds/unix/config.status
109          $(RM) builds/unix/unix-def.mk
110          $(RM) builds/unix/unix-cc.mk
111          $(RM) nul
112
113  endif # test is_unix
114
115  # IMPORTANT:
116  #
117  # `setup' must be defined by the host platform detection rules to create
118  # the `config.mk' file in the current directory.
119
120else
121
122  # A configuration sub-Makefile is present -- simply run it.
123  #
124  all: single
125
126  ifdef USE_MODULES
127    modules: make_module_list
128  endif
129
130  BUILD_PROJECT := yes
131  include $(CONFIG_MK)
132
133endif # test check_platform
134
135# EOF
Note: See TracBrowser for help on using the repository browser.