| @@ -1,536 +1,540 @@ | | | @@ -1,536 +1,540 @@ |
1 | # $NetBSD: Makefile,v 1.275 2009/11/30 16:13:22 uebayasi Exp $ | | 1 | # $NetBSD: Makefile,v 1.276 2009/12/13 09:29:27 mrg Exp $ |
2 | | | 2 | |
3 | # | | 3 | # |
4 | # This is the top-level makefile for building NetBSD. For an outline of | | 4 | # This is the top-level makefile for building NetBSD. For an outline of |
5 | # how to build a snapshot or release, as well as other release engineering | | 5 | # how to build a snapshot or release, as well as other release engineering |
6 | # information, see http://www.NetBSD.org/developers/releng/index.html | | 6 | # information, see http://www.NetBSD.org/developers/releng/index.html |
7 | # | | 7 | # |
8 | # Not everything you can set or do is documented in this makefile. In | | 8 | # Not everything you can set or do is documented in this makefile. In |
9 | # particular, you should review the files in /usr/share/mk (especially | | 9 | # particular, you should review the files in /usr/share/mk (especially |
10 | # bsd.README) for general information on building programs and writing | | 10 | # bsd.README) for general information on building programs and writing |
11 | # Makefiles within this structure, and see the comments in src/etc/Makefile | | 11 | # Makefiles within this structure, and see the comments in src/etc/Makefile |
12 | # for further information on installation and release set options. | | 12 | # for further information on installation and release set options. |
13 | # | | 13 | # |
14 | # Variables listed below can be set on the make command line (highest | | 14 | # Variables listed below can be set on the make command line (highest |
15 | # priority), in /etc/mk.conf (middle priority), or in the environment | | 15 | # priority), in /etc/mk.conf (middle priority), or in the environment |
16 | # (lowest priority). | | 16 | # (lowest priority). |
17 | # | | 17 | # |
18 | # Variables: | | 18 | # Variables: |
19 | # DESTDIR is the target directory for installation of the compiled | | 19 | # DESTDIR is the target directory for installation of the compiled |
20 | # software. It defaults to /. Note that programs are built against | | 20 | # software. It defaults to /. Note that programs are built against |
21 | # libraries installed in DESTDIR. | | 21 | # libraries installed in DESTDIR. |
22 | # MKMAN, if `no', will prevent building of manual pages. | | 22 | # MKMAN, if `no', will prevent building of manual pages. |
23 | # MKOBJDIRS, if not `no', will build object directories at | | 23 | # MKOBJDIRS, if not `no', will build object directories at |
24 | # an appropriate point in a build. | | 24 | # an appropriate point in a build. |
25 | # MKSHARE, if `no', will prevent building and installing | | 25 | # MKSHARE, if `no', will prevent building and installing |
26 | # anything in /usr/share. | | 26 | # anything in /usr/share. |
27 | # MKUPDATE, if not `no', will avoid a `make cleandir' at the start of | | 27 | # MKUPDATE, if not `no', will avoid a `make cleandir' at the start of |
28 | # `make build', as well as having the effects listed in | | 28 | # `make build', as well as having the effects listed in |
29 | # /usr/share/mk/bsd.README. | | 29 | # /usr/share/mk/bsd.README. |
30 | # NOCLEANDIR, if defined, will avoid a `make cleandir' at the start | | 30 | # NOCLEANDIR, if defined, will avoid a `make cleandir' at the start |
31 | # of the `make build'. | | 31 | # of the `make build'. |
32 | # NOINCLUDES will avoid the `make includes' usually done by `make build'. | | 32 | # NOINCLUDES will avoid the `make includes' usually done by `make build'. |
33 | # | | 33 | # |
34 | # See mk.conf(5) for more details. | | 34 | # See mk.conf(5) for more details. |
35 | # | | 35 | # |
36 | # | | 36 | # |
37 | # Targets: | | 37 | # Targets: |
38 | # build: | | 38 | # build: |
39 | # Builds a full release of NetBSD in DESTDIR, except for the | | 39 | # Builds a full release of NetBSD in DESTDIR, except for the |
40 | # /etc configuration files. | | 40 | # /etc configuration files. |
41 | # If BUILD_DONE is set, this is an empty target. | | 41 | # If BUILD_DONE is set, this is an empty target. |
42 | # distribution: | | 42 | # distribution: |
43 | # Builds a full release of NetBSD in DESTDIR, including the /etc | | 43 | # Builds a full release of NetBSD in DESTDIR, including the /etc |
44 | # configuration files. | | 44 | # configuration files. |
45 | # buildworld: | | 45 | # buildworld: |
46 | # As per `make distribution', except that it ensures that DESTDIR | | 46 | # As per `make distribution', except that it ensures that DESTDIR |
47 | # is not the root directory. | | 47 | # is not the root directory. |
48 | # installworld: | | 48 | # installworld: |
49 | # Install the distribution from DESTDIR to INSTALLWORLDDIR (which | | 49 | # Install the distribution from DESTDIR to INSTALLWORLDDIR (which |
50 | # defaults to the root directory). Ensures that INSTALLWORLDDIR | | 50 | # defaults to the root directory). Ensures that INSTALLWORLDDIR |
51 | # is the not root directory if cross compiling. | | 51 | # is the not root directory if cross compiling. |
52 | # release: | | 52 | # release: |
53 | # Does a `make distribution', and then tars up the DESTDIR files | | 53 | # Does a `make distribution', and then tars up the DESTDIR files |
54 | # into ${RELEASEDIR}/${RELEASEMACHINEDIR}, in release(7) format. | | 54 | # into ${RELEASEDIR}/${RELEASEMACHINEDIR}, in release(7) format. |
55 | # (See etc/Makefile for more information on this.) | | 55 | # (See etc/Makefile for more information on this.) |
56 | # regression-tests: | | 56 | # regression-tests: |
57 | # Runs the regression tests in "regress" on this host. | | 57 | # Runs the regression tests in "regress" on this host. |
58 | # sets: | | 58 | # sets: |
59 | # Populate ${RELEASEDIR}/${RELEASEMACHINEDIR}/binary/sets | | 59 | # Populate ${RELEASEDIR}/${RELEASEMACHINEDIR}/binary/sets |
60 | # from ${DESTDIR} | | 60 | # from ${DESTDIR} |
61 | # sourcesets: | | 61 | # sourcesets: |
62 | # Populate ${RELEASEDIR}/source/sets from ${NETBSDSRCDIR} | | 62 | # Populate ${RELEASEDIR}/source/sets from ${NETBSDSRCDIR} |
63 | # syspkgs: | | 63 | # syspkgs: |
64 | # Populate ${RELEASEDIR}/${RELEASEMACHINEDIR}/binary/syspkgs | | 64 | # Populate ${RELEASEDIR}/${RELEASEMACHINEDIR}/binary/syspkgs |
65 | # from ${DESTDIR} | | 65 | # from ${DESTDIR} |
66 | # iso-image: | | 66 | # iso-image: |
67 | # Create CD-ROM image in RELEASEDIR/iso. | | 67 | # Create CD-ROM image in RELEASEDIR/iso. |
68 | # RELEASEDIR must already have been populated by `make release' | | 68 | # RELEASEDIR must already have been populated by `make release' |
69 | # or equivalent. | | 69 | # or equivalent. |
70 | # iso-image-source: | | 70 | # iso-image-source: |
71 | # Create CD-ROM image with source in RELEASEDIR/iso. | | 71 | # Create CD-ROM image with source in RELEASEDIR/iso. |
72 | # RELEASEDIR must already have been populated by | | 72 | # RELEASEDIR must already have been populated by |
73 | # `make release sourcesets' or equivalent. | | 73 | # `make release sourcesets' or equivalent. |
74 | # | | 74 | # |
75 | # Targets invoked by `make build,' in order: | | 75 | # Targets invoked by `make build,' in order: |
76 | # cleandir: cleans the tree. | | 76 | # cleandir: cleans the tree. |
77 | # do-top-obj: creates the top level object directory. | | 77 | # do-top-obj: creates the top level object directory. |
78 | # do-tools-obj: creates object directories for the host toolchain. | | 78 | # do-tools-obj: creates object directories for the host toolchain. |
79 | # do-tools: builds host toolchain. | | 79 | # do-tools: builds host toolchain. |
80 | # obj: creates object directories. | | 80 | # obj: creates object directories. |
81 | # do-distrib-dirs: creates the distribution directories. | | 81 | # do-distrib-dirs: creates the distribution directories. |
82 | # includes: installs include files. | | 82 | # includes: installs include files. |
83 | # do-tools-compat: builds the "libnbcompat" library; needed for some | | 83 | # do-tools-compat: builds the "libnbcompat" library; needed for some |
84 | # random host tool programs in the source tree. | | 84 | # random host tool programs in the source tree. |
85 | # do-lib-csu: builds and installs prerequisites from lib/csu. | | 85 | # do-lib-csu: builds and installs prerequisites from lib/csu. |
86 | # do-libgcc: builds and installs prerequisites from | | 86 | # do-libgcc: builds and installs prerequisites from |
87 | # gnu/lib/crtstuff${LIBGCC_EXT} (if necessary) and | | 87 | # gnu/lib/crtstuff${LIBGCC_EXT} (if necessary) and |
88 | # gnu/lib/libgcc${LIBGCC_EXT}. | | 88 | # gnu/lib/libgcc${LIBGCC_EXT}. |
89 | # do-libpcc: builds and install prerequisites from | | 89 | # do-libpcc: builds and install prerequisites from |
90 | # external/bsd/pcc/crtstuff and external/bsd/pcc/libpcc. | | 90 | # external/bsd/pcc/crtstuff and external/bsd/pcc/libpcc. |
91 | # do-lib-libc: builds and installs prerequisites from lib/libc. | | 91 | # do-lib-libc: builds and installs prerequisites from lib/libc. |
92 | # do-lib: builds and installs prerequisites from lib. | | 92 | # do-lib: builds and installs prerequisites from lib. |
93 | # do-gnu-lib: builds and installs prerequisites from gnu/lib. | | 93 | # do-gnu-lib: builds and installs prerequisites from gnu/lib. |
94 | # do-external-lib: builds and installs prerequisites from external/lib. | | 94 | # do-external-lib: builds and installs prerequisites from external/lib. |
95 | # do-sys-rump-dev-lib: builds and installs prerequisites from sys/rump/dev/lib | | 95 | # do-sys-rump-dev-lib: builds and installs prerequisites from sys/rump/dev/lib |
96 | # do-sys-rump-fs-lib: builds and installs prerequisites from sys/rump/fs/lib | | 96 | # do-sys-rump-fs-lib: builds and installs prerequisites from sys/rump/fs/lib |
97 | # do-sys-rump-net-lib: builds and installs prerequisites from sys/rump/net/lib | | 97 | # do-sys-rump-net-lib: builds and installs prerequisites from sys/rump/net/lib |
98 | # do-sys-modules: builds and installs kernel modules (used by rump binaries) | | 98 | # do-sys-modules: builds and installs kernel modules (used by rump binaries) |
99 | # do-ld.so: builds and installs prerequisites from libexec/ld.*_so. | | 99 | # do-ld.so: builds and installs prerequisites from libexec/ld.*_so. |
100 | # do-compat-lib-csu: builds and installs prerequisites from compat/lib/csu | | 100 | # do-compat-lib-csu: builds and installs prerequisites from compat/lib/csu |
101 | # if ${MKCOMPAT} != "no". | | 101 | # if ${MKCOMPAT} != "no". |
102 | # do-compat-libgcc: builds and installs prerequisites from | | 102 | # do-compat-libgcc: builds and installs prerequisites from |
103 | # compat/gnu/lib/crtstuff${LIBGCC_EXT} (if necessary) and | | 103 | # compat/gnu/lib/crtstuff${LIBGCC_EXT} (if necessary) and |
104 | # compat/gnu/lib/libgcc${LIBGCC_EXT} if ${MKCOMPAT} != "no". | | 104 | # compat/gnu/lib/libgcc${LIBGCC_EXT} if ${MKCOMPAT} != "no". |
105 | # do-compat-lib-libc: builds and installs prerequisites from compat/lib/libc | | 105 | # do-compat-lib-libc: builds and installs prerequisites from compat/lib/libc |
106 | # if ${MKCOMPAT} != "no". | | 106 | # if ${MKCOMPAT} != "no". |
107 | # do-build: builds and installs the entire system. | | 107 | # do-build: builds and installs the entire system. |
108 | # do-x11: builds and installs X11 if ${MKX11} != "no"; either | | 108 | # do-x11: builds and installs X11 if ${MKX11} != "no"; either |
109 | # X11R7 from src/external/mit/xorg if ${X11FLAVOUR} == "Xorg" | | 109 | # X11R7 from src/external/mit/xorg if ${X11FLAVOUR} == "Xorg" |
110 | # or X11R6 from src/x11 | | 110 | # or X11R6 from src/x11 |
111 | # do-extsrc: builds and installs extsrc if ${MKEXTSRC} != "no". | | 111 | # do-extsrc: builds and installs extsrc if ${MKEXTSRC} != "no". |
112 | # do-obsolete: installs the obsolete sets (for the postinstall-* targets). | | 112 | # do-obsolete: installs the obsolete sets (for the postinstall-* targets). |
113 | # | | 113 | # |
114 | | | 114 | |
115 | .if ${.MAKEFLAGS:M${.CURDIR}/share/mk} == "" | | 115 | .if ${.MAKEFLAGS:M${.CURDIR}/share/mk} == "" |
116 | .MAKEFLAGS: -m ${.CURDIR}/share/mk | | 116 | .MAKEFLAGS: -m ${.CURDIR}/share/mk |
117 | .endif | | 117 | .endif |
118 | | | 118 | |
119 | # | | 119 | # |
120 | # If _SRC_TOP_OBJ_ gets set here, we will end up with a directory that may | | 120 | # If _SRC_TOP_OBJ_ gets set here, we will end up with a directory that may |
121 | # not be the top level objdir, because "make obj" can happen in the *middle* | | 121 | # not be the top level objdir, because "make obj" can happen in the *middle* |
122 | # of "make build" (long after <bsd.own.mk> is calculated it). So, pre-set | | 122 | # of "make build" (long after <bsd.own.mk> is calculated it). So, pre-set |
123 | # _SRC_TOP_OBJ_ here so it will not be added to ${.MAKEOVERRIDES}. | | 123 | # _SRC_TOP_OBJ_ here so it will not be added to ${.MAKEOVERRIDES}. |
124 | # | | 124 | # |
125 | _SRC_TOP_OBJ_= | | 125 | _SRC_TOP_OBJ_= |
126 | | | 126 | |
127 | .include <bsd.own.mk> | | 127 | .include <bsd.own.mk> |
128 | | | 128 | |
129 | # | | 129 | # |
130 | # Sanity check: make sure that "make build" is not invoked simultaneously | | 130 | # Sanity check: make sure that "make build" is not invoked simultaneously |
131 | # with a standard recursive target. | | 131 | # with a standard recursive target. |
132 | # | | 132 | # |
133 | | | 133 | |
134 | .if make(build) || make(release) || make(snapshot) | | 134 | .if make(build) || make(release) || make(snapshot) |
135 | .for targ in ${TARGETS:Nobj:Ncleandir} | | 135 | .for targ in ${TARGETS:Nobj:Ncleandir} |
136 | .if make(${targ}) && !target(.BEGIN) | | 136 | .if make(${targ}) && !target(.BEGIN) |
137 | .BEGIN: | | 137 | .BEGIN: |
138 | @echo 'BUILD ABORTED: "make build" and "make ${targ}" are mutually exclusive.' | | 138 | @echo 'BUILD ABORTED: "make build" and "make ${targ}" are mutually exclusive.' |
139 | @false | | 139 | @false |
140 | .endif | | 140 | .endif |
141 | .endfor | | 141 | .endfor |
142 | .endif | | 142 | .endif |
143 | | | 143 | |
144 | # | | 144 | # |
145 | # _SUBDIR is used to set SUBDIR, after removing directories that have | | 145 | # _SUBDIR is used to set SUBDIR, after removing directories that have |
146 | # BUILD_${dir}=no, or that have no ${dir}/Makefile. | | 146 | # BUILD_${dir}=no, or that have no ${dir}/Makefile. |
147 | # | | 147 | # |
148 | _SUBDIR= tools lib include gnu external crypto/external bin games | | 148 | _SUBDIR= tools lib include gnu external crypto/external bin games |
149 | _SUBDIR+= libexec sbin usr.bin | | 149 | _SUBDIR+= libexec sbin usr.bin |
150 | _SUBDIR+= usr.sbin share rescue sys etc tests compat .WAIT distrib regress | | 150 | _SUBDIR+= usr.sbin share rescue sys etc tests compat .WAIT distrib regress |
151 | | | 151 | |
152 | .for dir in ${_SUBDIR} | | 152 | .for dir in ${_SUBDIR} |
153 | .if "${dir}" == ".WAIT" \ | | 153 | .if "${dir}" == ".WAIT" \ |
154 | || (${BUILD_${dir}:Uyes} != "no" && exists(${dir}/Makefile)) | | 154 | || (${BUILD_${dir}:Uyes} != "no" && exists(${dir}/Makefile)) |
155 | SUBDIR+= ${dir} | | 155 | SUBDIR+= ${dir} |
156 | .endif | | 156 | .endif |
157 | .endfor | | 157 | .endfor |
158 | | | 158 | |
159 | .if exists(regress) | | 159 | .if exists(regress) |
160 | regression-tests: .PHONY .MAKE | | 160 | regression-tests: .PHONY .MAKE |
161 | @echo Running regression tests... | | 161 | @echo Running regression tests... |
162 | ${MAKEDIRTARGET} regress regress | | 162 | ${MAKEDIRTARGET} regress regress |
163 | .endif | | 163 | .endif |
164 | | | 164 | |
165 | .if ${MKUNPRIVED} != "no" | | 165 | .if ${MKUNPRIVED} != "no" |
166 | NOPOSTINSTALL= # defined | | 166 | NOPOSTINSTALL= # defined |
167 | .endif | | 167 | .endif |
168 | | | 168 | |
169 | afterinstall: .PHONY .MAKE | | 169 | afterinstall: .PHONY .MAKE |
170 | .if ${MKMAN} != "no" | | 170 | .if ${MKMAN} != "no" |
171 | ${MAKEDIRTARGET} share/man makedb | | 171 | ${MAKEDIRTARGET} share/man makedb |
172 | .endif | | 172 | .endif |
173 | .if (${MKUNPRIVED} != "no" && ${MKINFO} != "no") | | 173 | .if (${MKUNPRIVED} != "no" && ${MKINFO} != "no") |
174 | ${MAKEDIRTARGET} gnu/usr.bin/texinfo/install-info infodir-meta | | 174 | ${MAKEDIRTARGET} gnu/usr.bin/texinfo/install-info infodir-meta |
175 | .endif | | 175 | .endif |
176 | .if !defined(NOPOSTINSTALL) | | 176 | .if !defined(NOPOSTINSTALL) |
177 | ${MAKEDIRTARGET} . postinstall-check | | 177 | ${MAKEDIRTARGET} . postinstall-check |
178 | .endif | | 178 | .endif |
179 | | | 179 | |
180 | _POSTINSTALL= ${.CURDIR}/usr.sbin/postinstall/postinstall | | 180 | _POSTINSTALL= ${.CURDIR}/usr.sbin/postinstall/postinstall |
181 | | | 181 | |
182 | postinstall-check: .PHONY | | 182 | postinstall-check: .PHONY |
183 | @echo " === Post installation checks ===" | | 183 | @echo " === Post installation checks ===" |
184 | AWK=${TOOL_AWK:Q} MAKE=${MAKE:Q} ${HOST_SH} ${_POSTINSTALL} -s ${.CURDIR} -d ${DESTDIR}/ check; if [ $$? -gt 1 ]; then exit 1; fi | | 184 | AWK=${TOOL_AWK:Q} MAKE=${MAKE:Q} ${HOST_SH} ${_POSTINSTALL} -s ${.CURDIR} -d ${DESTDIR}/ check; if [ $$? -gt 1 ]; then exit 1; fi |
185 | @echo " ================================" | | 185 | @echo " ================================" |
186 | | | 186 | |
187 | postinstall-fix: .NOTMAIN .PHONY | | 187 | postinstall-fix: .NOTMAIN .PHONY |
188 | @echo " === Post installation fixes ===" | | 188 | @echo " === Post installation fixes ===" |
189 | AWK=${TOOL_AWK:Q} MAKE=${MAKE:Q} ${HOST_SH} ${_POSTINSTALL} -s ${.CURDIR} -d ${DESTDIR}/ fix | | 189 | AWK=${TOOL_AWK:Q} MAKE=${MAKE:Q} ${HOST_SH} ${_POSTINSTALL} -s ${.CURDIR} -d ${DESTDIR}/ fix |
190 | @echo " ===============================" | | 190 | @echo " ===============================" |
191 | | | 191 | |
192 | postinstall-fix-obsolete: .NOTMAIN .PHONY | | 192 | postinstall-fix-obsolete: .NOTMAIN .PHONY |
193 | @echo " === Removing obsolete files ===" | | 193 | @echo " === Removing obsolete files ===" |
194 | AWK=${TOOL_AWK:Q} MAKE=${MAKE:Q} ${HOST_SH} ${_POSTINSTALL} -s ${.CURDIR} -d ${DESTDIR}/ fix obsolete | | 194 | AWK=${TOOL_AWK:Q} MAKE=${MAKE:Q} ${HOST_SH} ${_POSTINSTALL} -s ${.CURDIR} -d ${DESTDIR}/ fix obsolete |
195 | @echo " ===============================" | | 195 | @echo " ===============================" |
196 | | | 196 | |
197 | | | 197 | |
198 | # | | 198 | # |
199 | # Targets (in order!) called by "make build". | | 199 | # Targets (in order!) called by "make build". |
200 | # | | 200 | # |
201 | .if defined(HAVE_GCC) | | 201 | .if defined(HAVE_GCC) |
202 | .if ${HAVE_GCC} == "3" | | 202 | .if ${HAVE_GCC} == "3" |
203 | LIBGCC_EXT=3 | | 203 | LIBGCC_EXT=3 |
204 | .else | | 204 | .else |
205 | LIBGCC_EXT=4 | | 205 | LIBGCC_EXT=4 |
206 | .endif | | 206 | .endif |
207 | .endif | | 207 | .endif |
208 | | | 208 | |
209 | BUILDTARGETS+= check-tools | | 209 | BUILDTARGETS+= check-tools |
210 | .if ${MKUPDATE} == "no" && !defined(NOCLEANDIR) | | 210 | .if ${MKUPDATE} == "no" && !defined(NOCLEANDIR) |
211 | BUILDTARGETS+= cleandir | | 211 | BUILDTARGETS+= cleandir |
212 | .endif | | 212 | .endif |
213 | .if ${MKOBJDIRS} != "no" | | 213 | .if ${MKOBJDIRS} != "no" |
214 | BUILDTARGETS+= do-top-obj | | 214 | BUILDTARGETS+= do-top-obj |
215 | .endif | | 215 | .endif |
216 | .if ${USETOOLS} == "yes" # { | | 216 | .if ${USETOOLS} == "yes" # { |
217 | .if ${MKOBJDIRS} != "no" | | 217 | .if ${MKOBJDIRS} != "no" |
218 | BUILDTARGETS+= do-tools-obj | | 218 | BUILDTARGETS+= do-tools-obj |
219 | .endif | | 219 | .endif |
220 | BUILDTARGETS+= do-tools | | 220 | BUILDTARGETS+= do-tools |
221 | .endif # USETOOLS # } | | 221 | .endif # USETOOLS # } |
222 | .if ${MKOBJDIRS} != "no" | | 222 | .if ${MKOBJDIRS} != "no" |
223 | BUILDTARGETS+= obj | | 223 | BUILDTARGETS+= obj |
224 | .endif | | 224 | .endif |
225 | BUILDTARGETS+= clean_METALOG | | 225 | BUILDTARGETS+= clean_METALOG |
226 | .if !defined(NODISTRIBDIRS) | | 226 | .if !defined(NODISTRIBDIRS) |
227 | BUILDTARGETS+= do-distrib-dirs | | 227 | BUILDTARGETS+= do-distrib-dirs |
228 | .endif | | 228 | .endif |
229 | .if !defined(NOINCLUDES) | | 229 | .if !defined(NOINCLUDES) |
230 | BUILDTARGETS+= includes | | 230 | BUILDTARGETS+= includes |
231 | .endif | | 231 | .endif |
232 | BUILDTARGETS+= do-tools-compat | | 232 | BUILDTARGETS+= do-tools-compat |
233 | BUILDTARGETS+= do-lib-csu | | 233 | BUILDTARGETS+= do-lib-csu |
234 | .if ${MKGCC} != "no" | | 234 | .if ${MKGCC} != "no" |
235 | BUILDTARGETS+= do-libgcc | | 235 | BUILDTARGETS+= do-libgcc |
236 | .endif | | 236 | .endif |
237 | .if ${MKPCC} != "no" | | 237 | .if ${MKPCC} != "no" |
238 | BUILDTARGET+= do-libpcc | | 238 | BUILDTARGET+= do-libpcc |
239 | .endif | | 239 | .endif |
240 | BUILDTARGETS+= do-lib-libc | | 240 | BUILDTARGETS+= do-lib-libc |
241 | BUILDTARGETS+= do-lib do-gnu-lib do-external-lib | | 241 | BUILDTARGETS+= do-lib do-gnu-lib do-external-lib |
242 | .if (${MACHINE} != "evbppc") && ${MKKMOD} != "no" | | 242 | .if (${MACHINE} != "evbppc") && ${MKKMOD} != "no" |
243 | BUILDTARGETS+= do-sys-modules | | 243 | BUILDTARGETS+= do-sys-modules |
244 | .endif | | 244 | .endif |
245 | BUILDTARGETS+= do-sys-rump-dev-lib do-sys-rump-fs-lib do-sys-rump-net-lib | | 245 | BUILDTARGETS+= do-sys-rump-dev-lib do-sys-rump-fs-lib do-sys-rump-net-lib |
246 | .if ${MKCOMPAT} != "no" | | 246 | .if ${MKCOMPAT} != "no" |
247 | BUILDTARGETS+= do-compat-lib-csu | | 247 | BUILDTARGETS+= do-compat-lib-csu |
248 | BUILDTARGETS+= do-compat-libgcc | | 248 | BUILDTARGETS+= do-compat-libgcc |
249 | BUILDTARGETS+= do-compat-lib-libc | | 249 | BUILDTARGETS+= do-compat-lib-libc |
250 | .endif | | 250 | .endif |
251 | BUILDTARGETS+= do-ld.so | | 251 | BUILDTARGETS+= do-ld.so |
252 | BUILDTARGETS+= do-build | | 252 | BUILDTARGETS+= do-build |
253 | .if ${MKX11} != "no" | | 253 | .if ${MKX11} != "no" |
254 | BUILDTARGETS+= do-x11 | | 254 | BUILDTARGETS+= do-x11 |
255 | .endif | | 255 | .endif |
256 | .if ${MKEXTSRC} != "no" | | 256 | .if ${MKEXTSRC} != "no" |
257 | BUILDTARGETS+= do-extsrc | | 257 | BUILDTARGETS+= do-extsrc |
258 | .endif | | 258 | .endif |
259 | BUILDTARGETS+= do-obsolete | | 259 | BUILDTARGETS+= do-obsolete |
260 | | | 260 | |
261 | # | | 261 | # |
262 | # Enforce proper ordering of some rules. | | 262 | # Enforce proper ordering of some rules. |
263 | # | | 263 | # |
264 | | | 264 | |
265 | .ORDER: ${BUILDTARGETS} | | 265 | .ORDER: ${BUILDTARGETS} |
266 | includes-lib: .PHONY includes-include includes-sys | | 266 | includes-lib: .PHONY includes-include includes-sys |
267 | includes-gnu: .PHONY includes-lib | | 267 | includes-gnu: .PHONY includes-lib |
268 | | | 268 | |
269 | # | | 269 | # |
270 | # Build the system and install into DESTDIR. | | 270 | # Build the system and install into DESTDIR. |
271 | # | | 271 | # |
272 | | | 272 | |
273 | START_TIME!= date | | 273 | START_TIME!= date |
274 | | | 274 | |
275 | build: .PHONY .MAKE | | 275 | build: .PHONY .MAKE |
276 | .if defined(BUILD_DONE) | | 276 | .if defined(BUILD_DONE) |
277 | @echo "Build already installed into ${DESTDIR}" | | 277 | @echo "Build already installed into ${DESTDIR}" |
278 | .else | | 278 | .else |
279 | @echo "Build started at: ${START_TIME}" | | 279 | @echo "Build started at: ${START_TIME}" |
280 | .for tgt in ${BUILDTARGETS} | | 280 | .for tgt in ${BUILDTARGETS} |
281 | ${MAKEDIRTARGET} . ${tgt} | | 281 | ${MAKEDIRTARGET} . ${tgt} |
282 | .endfor | | 282 | .endfor |
283 | ${MAKEDIRTARGET} etc install-etc-release | | 283 | ${MAKEDIRTARGET} etc install-etc-release |
284 | @echo "Build started at: ${START_TIME}" | | 284 | @echo "Build started at: ${START_TIME}" |
285 | @printf "Build finished at: " && date | | 285 | @printf "Build finished at: " && date |
286 | .endif | | 286 | .endif |
287 | | | 287 | |
288 | # | | 288 | # |
289 | # Build a full distribution, but not a release (i.e. no sets into | | 289 | # Build a full distribution, but not a release (i.e. no sets into |
290 | # ${RELEASEDIR}). "buildworld" enforces a build to ${DESTDIR} != / | | 290 | # ${RELEASEDIR}). "buildworld" enforces a build to ${DESTDIR} != / |
291 | # | | 291 | # |
292 | | | 292 | |
293 | distribution buildworld: .PHONY .MAKE | | 293 | distribution buildworld: .PHONY .MAKE |
294 | .if make(buildworld) && \ | | 294 | .if make(buildworld) && \ |
295 | (!defined(DESTDIR) || ${DESTDIR} == "" || ${DESTDIR} == "/") | | 295 | (!defined(DESTDIR) || ${DESTDIR} == "" || ${DESTDIR} == "/") |
296 | @echo "Won't make ${.TARGET} with DESTDIR=/" | | 296 | @echo "Won't make ${.TARGET} with DESTDIR=/" |
297 | @false | | 297 | @false |
298 | .endif | | 298 | .endif |
299 | ${MAKEDIRTARGET} . build NOPOSTINSTALL=1 | | 299 | ${MAKEDIRTARGET} . build NOPOSTINSTALL=1 |
300 | ${MAKEDIRTARGET} etc distribution INSTALL_DONE=1 | | 300 | ${MAKEDIRTARGET} etc distribution INSTALL_DONE=1 |
301 | .if defined(DESTDIR) && ${DESTDIR} != "" && ${DESTDIR} != "/" | | 301 | .if defined(DESTDIR) && ${DESTDIR} != "" && ${DESTDIR} != "/" |
302 | ${MAKEDIRTARGET} . postinstall-fix-obsolete | | 302 | ${MAKEDIRTARGET} . postinstall-fix-obsolete |
303 | ${MAKEDIRTARGET} distrib/sets checkflist | | 303 | ${MAKEDIRTARGET} distrib/sets checkflist |
304 | .endif | | 304 | .endif |
305 | @echo "make ${.TARGET} started at: ${START_TIME}" | | 305 | @echo "make ${.TARGET} started at: ${START_TIME}" |
306 | @printf "make ${.TARGET} finished at: " && date | | 306 | @printf "make ${.TARGET} finished at: " && date |
307 | | | 307 | |
308 | # | | 308 | # |
309 | # Install the distribution from $DESTDIR to $INSTALLWORLDDIR (defaults to `/') | | 309 | # Install the distribution from $DESTDIR to $INSTALLWORLDDIR (defaults to `/') |
310 | # If installing to /, ensures that the host's operating system is NetBSD and | | 310 | # If installing to /, ensures that the host's operating system is NetBSD and |
311 | # the host's `uname -m` == ${MACHINE}. | | 311 | # the host's `uname -m` == ${MACHINE}. |
312 | # | | 312 | # |
313 | | | 313 | |
314 | HOST_UNAME_S!= uname -s | | 314 | HOST_UNAME_S!= uname -s |
315 | HOST_UNAME_M!= uname -m | | 315 | HOST_UNAME_M!= uname -m |
316 | | | 316 | |
317 | installworld: .PHONY .MAKE | | 317 | installworld: .PHONY .MAKE |
318 | .if (!defined(DESTDIR) || ${DESTDIR} == "" || ${DESTDIR} == "/") | | 318 | .if (!defined(DESTDIR) || ${DESTDIR} == "" || ${DESTDIR} == "/") |
319 | @echo "Can't make ${.TARGET} to DESTDIR=/" | | 319 | @echo "Can't make ${.TARGET} to DESTDIR=/" |
320 | @false | | 320 | @false |
321 | .endif | | 321 | .endif |
322 | .if !defined(INSTALLWORLDDIR) || \ | | 322 | .if !defined(INSTALLWORLDDIR) || \ |
323 | ${INSTALLWORLDDIR} == "" || ${INSTALLWORLDDIR} == "/" | | 323 | ${INSTALLWORLDDIR} == "" || ${INSTALLWORLDDIR} == "/" |
324 | .if (${HOST_UNAME_S} != "NetBSD") | | 324 | .if (${HOST_UNAME_S} != "NetBSD") |
325 | @echo "Won't cross-make ${.TARGET} from ${HOST_UNAME_S} to NetBSD with INSTALLWORLDDIR=/" | | 325 | @echo "Won't cross-make ${.TARGET} from ${HOST_UNAME_S} to NetBSD with INSTALLWORLDDIR=/" |
326 | @false | | 326 | @false |
327 | .endif | | 327 | .endif |
328 | .if (${HOST_UNAME_M} != ${MACHINE}) | | 328 | .if (${HOST_UNAME_M} != ${MACHINE}) |
329 | @echo "Won't cross-make ${.TARGET} from ${HOST_UNAME_M} to ${MACHINE} with INSTALLWORLDDIR=/" | | 329 | @echo "Won't cross-make ${.TARGET} from ${HOST_UNAME_M} to ${MACHINE} with INSTALLWORLDDIR=/" |
330 | @false | | 330 | @false |
331 | .endif | | 331 | .endif |
332 | .endif | | 332 | .endif |
333 | ${MAKEDIRTARGET} distrib/sets installsets \ | | 333 | ${MAKEDIRTARGET} distrib/sets installsets \ |
334 | INSTALLDIR=${INSTALLWORLDDIR:U/} INSTALLSETS= | | 334 | INSTALLDIR=${INSTALLWORLDDIR:U/} INSTALLSETS= |
335 | ${MAKEDIRTARGET} . postinstall-check DESTDIR=${INSTALLWORLDDIR} | | 335 | ${MAKEDIRTARGET} . postinstall-check DESTDIR=${INSTALLWORLDDIR} |
336 | @echo "make ${.TARGET} started at: ${START_TIME}" | | 336 | @echo "make ${.TARGET} started at: ${START_TIME}" |
337 | @printf "make ${.TARGET} finished at: " && date | | 337 | @printf "make ${.TARGET} finished at: " && date |
338 | | | 338 | |
339 | # | | 339 | # |
340 | # Create sets from $DESTDIR or $NETBSDSRCDIR into $RELEASEDIR | | 340 | # Create sets from $DESTDIR or $NETBSDSRCDIR into $RELEASEDIR |
341 | # | | 341 | # |
342 | | | 342 | |
343 | .for tgt in sets sourcesets syspkgs | | 343 | .for tgt in sets sourcesets syspkgs |
344 | ${tgt}: .PHONY .MAKE | | 344 | ${tgt}: .PHONY .MAKE |
345 | ${MAKEDIRTARGET} distrib/sets ${tgt} | | 345 | ${MAKEDIRTARGET} distrib/sets ${tgt} |
346 | .endfor | | 346 | .endfor |
347 | | | 347 | |
348 | # | | 348 | # |
349 | # Build a release or snapshot (implies "make distribution"). Note that | | 349 | # Build a release or snapshot (implies "make distribution"). Note that |
350 | # in this case, the set lists will be checked before the tar files | | 350 | # in this case, the set lists will be checked before the tar files |
351 | # are made. | | 351 | # are made. |
352 | # | | 352 | # |
353 | | | 353 | |
354 | release snapshot: .PHONY .MAKE | | 354 | release snapshot: .PHONY .MAKE |
355 | ${MAKEDIRTARGET} . distribution | | 355 | ${MAKEDIRTARGET} . distribution |
356 | ${MAKEDIRTARGET} etc release DISTRIBUTION_DONE=1 | | 356 | ${MAKEDIRTARGET} etc release DISTRIBUTION_DONE=1 |
357 | @echo "make ${.TARGET} started at: ${START_TIME}" | | 357 | @echo "make ${.TARGET} started at: ${START_TIME}" |
358 | @printf "make ${.TARGET} finished at: " && date | | 358 | @printf "make ${.TARGET} finished at: " && date |
359 | | | 359 | |
360 | # | | 360 | # |
361 | # Create a CD-ROM image. | | 361 | # Create a CD-ROM image. |
362 | # | | 362 | # |
363 | | | 363 | |
364 | iso-image: .PHONY | | 364 | iso-image: .PHONY |
365 | ${MAKEDIRTARGET} distrib iso_image | | 365 | ${MAKEDIRTARGET} distrib iso_image |
366 | ${MAKEDIRTARGET} etc iso-image | | 366 | ${MAKEDIRTARGET} etc iso-image |
367 | @echo "make ${.TARGET} started at: ${START_TIME}" | | 367 | @echo "make ${.TARGET} started at: ${START_TIME}" |
368 | @printf "make ${.TARGET} finished at: " && date | | 368 | @printf "make ${.TARGET} finished at: " && date |
369 | | | 369 | |
370 | iso-image-source: .PHONY | | 370 | iso-image-source: .PHONY |
371 | ${MAKEDIRTARGET} distrib iso_image CDSOURCE=true | | 371 | ${MAKEDIRTARGET} distrib iso_image CDSOURCE=true |
372 | ${MAKEDIRTARGET} etc iso-image | | 372 | ${MAKEDIRTARGET} etc iso-image |
373 | @echo "make ${.TARGET} started at: ${START_TIME}" | | 373 | @echo "make ${.TARGET} started at: ${START_TIME}" |
374 | @printf "make ${.TARGET} finished at: " && date | | 374 | @printf "make ${.TARGET} finished at: " && date |
375 | | | 375 | |
376 | # | | 376 | # |
377 | # Special components of the "make build" process. | | 377 | # Special components of the "make build" process. |
378 | # | | 378 | # |
379 | | | 379 | |
380 | check-tools: .PHONY | | 380 | check-tools: .PHONY |
381 | .if ${TOOLCHAIN_MISSING} != "no" && !defined(EXTERNAL_TOOLCHAIN) | | 381 | .if ${TOOLCHAIN_MISSING} != "no" && !defined(EXTERNAL_TOOLCHAIN) |
382 | @echo '*** WARNING: Building on MACHINE=${MACHINE} with missing toolchain.' | | 382 | @echo '*** WARNING: Building on MACHINE=${MACHINE} with missing toolchain.' |
383 | @echo '*** May result in a failed build or corrupt binaries!' | | 383 | @echo '*** May result in a failed build or corrupt binaries!' |
384 | .elif defined(EXTERNAL_TOOLCHAIN) | | 384 | .elif defined(EXTERNAL_TOOLCHAIN) |
385 | @echo '*** Using external toolchain rooted at ${EXTERNAL_TOOLCHAIN}.' | | 385 | @echo '*** Using external toolchain rooted at ${EXTERNAL_TOOLCHAIN}.' |
386 | .endif | | 386 | .endif |
387 | .if defined(NBUILDJOBS) | | 387 | .if defined(NBUILDJOBS) |
388 | @echo '*** WARNING: NBUILDJOBS is obsolete; use -j directly instead!' | | 388 | @echo '*** WARNING: NBUILDJOBS is obsolete; use -j directly instead!' |
389 | .endif | | 389 | .endif |
390 | | | 390 | |
391 | # Delete or sanitise a leftover METALOG from a previous build. | | 391 | # Delete or sanitise a leftover METALOG from a previous build. |
392 | clean_METALOG: .PHONY .MAKE | | 392 | clean_METALOG: .PHONY .MAKE |
393 | .if ${MKUPDATE} != "no" | | 393 | .if ${MKUPDATE} != "no" |
394 | ${MAKEDIRTARGET} distrib/sets clean_METALOG | | 394 | ${MAKEDIRTARGET} distrib/sets clean_METALOG |
395 | .endif | | 395 | .endif |
396 | | | 396 | |
397 | do-distrib-dirs: .PHONY .MAKE | | 397 | do-distrib-dirs: .PHONY .MAKE |
398 | .if !defined(DESTDIR) || ${DESTDIR} == "" | | 398 | .if !defined(DESTDIR) || ${DESTDIR} == "" |
399 | ${MAKEDIRTARGET} etc distrib-dirs DESTDIR=/ | | 399 | ${MAKEDIRTARGET} etc distrib-dirs DESTDIR=/ |
400 | .else | | 400 | .else |
401 | ${MAKEDIRTARGET} etc distrib-dirs DESTDIR=${DESTDIR} | | 401 | ${MAKEDIRTARGET} etc distrib-dirs DESTDIR=${DESTDIR} |
402 | .endif | | 402 | .endif |
403 | | | 403 | |
404 | .for targ in cleandir obj includes | | 404 | .for targ in cleandir obj includes |
405 | do-${targ}: .PHONY ${targ} | | 405 | do-${targ}: .PHONY ${targ} |
406 | @true | | 406 | @true |
407 | .endfor | | 407 | .endfor |
408 | | | 408 | |
409 | .if defined(HAVE_GCC) | | 409 | .if defined(HAVE_GCC) |
410 | BUILD_CC_LIB= gnu/lib/crtstuff${LIBGCC_EXT} | | 410 | BUILD_CC_LIB= gnu/lib/crtstuff${LIBGCC_EXT} |
411 | BUILD_CC_LIB+= gnu/lib/libgcc${LIBGCC_EXT} | | 411 | BUILD_CC_LIB+= gnu/lib/libgcc${LIBGCC_EXT} |
412 | .elif defined(HAVE_PCC) | | 412 | .elif defined(HAVE_PCC) |
413 | BUILD_CC_LIB+= external/bsd/pcc/crtstuff | | 413 | BUILD_CC_LIB+= external/bsd/pcc/crtstuff |
414 | BUILD_CC_LIB+= external/bsd/pcc/libpcc | | 414 | BUILD_CC_LIB+= external/bsd/pcc/libpcc |
415 | .endif | | 415 | .endif |
416 | | | 416 | |
417 | .if ${MKCOMPAT} != "no" | | 417 | .for dir in tools tools/compat lib/csu ${BUILD_CC_LIB} lib/libc lib/libdes lib gnu/lib external/lib crypto/external/lib sys/rump/dev/lib sys/rump/fs/lib sys/rump/net/lib sys/modules |
418 | BUILD_COMPAT_LIBS= compat/lib/csu ${BUILD_CC_LIB:S/^/compat\//} compat/lib/libc | | | |
419 | .else | | | |
420 | BUILD_COMPAT_LIBS= | | | |
421 | .endif | | | |
422 | | | | |
423 | .for dir in tools tools/compat lib/csu ${BUILD_CC_LIB} lib/libc lib/libdes lib gnu/lib external/lib crypto/external/lib sys/rump/dev/lib sys/rump/fs/lib sys/rump/net/lib sys/modules ${BUILD_COMPAT_LIBS} | | | |
424 | do-${dir:S/\//-/g}: .PHONY .MAKE | | 418 | do-${dir:S/\//-/g}: .PHONY .MAKE |
425 | .for targ in dependall install | | 419 | .for targ in dependall install |
426 | ${MAKEDIRTARGET} ${dir} ${targ} | | 420 | ${MAKEDIRTARGET} ${dir} ${targ} |
427 | .endfor | | 421 | .endfor |
428 | .endfor | | 422 | .endfor |
429 | | | 423 | |
| | | 424 | .if ${MKCOMPAT} != "no" |
| | | 425 | COMPAT_SUBDIR_LIST=lib/csu ${BUILD_CC_LIB} lib/libc |
| | | 426 | .for dir in ${COMPAT_SUBDIR_LIST} |
| | | 427 | do-compat-${dir:S/\//-/g}: .PHONY .MAKE |
| | | 428 | .for targ in obj dependall install |
| | | 429 | ${MAKEDIRTARGET} compat ${targ} BOOTSTRAP_SUBDIRS="../../../${dir}" |
| | | 430 | .endfor |
| | | 431 | .endfor |
| | | 432 | .endif |
| | | 433 | |
430 | do-top-obj: .PHONY .MAKE | | 434 | do-top-obj: .PHONY .MAKE |
431 | ${MAKEDIRTARGET} . obj NOSUBDIR= | | 435 | ${MAKEDIRTARGET} . obj NOSUBDIR= |
432 | | | 436 | |
433 | do-tools-obj: .PHONY .MAKE | | 437 | do-tools-obj: .PHONY .MAKE |
434 | ${MAKEDIRTARGET} tools obj | | 438 | ${MAKEDIRTARGET} tools obj |
435 | | | 439 | |
436 | do-libgcc: .PHONY .MAKE | | 440 | do-libgcc: .PHONY .MAKE |
437 | .if defined(HAVE_GCC) | | 441 | .if defined(HAVE_GCC) |
438 | .if ${MKGCC} != "no" | | 442 | .if ${MKGCC} != "no" |
439 | .if (${HAVE_GCC} == "3" || ${HAVE_GCC} == "4") | | 443 | .if (${HAVE_GCC} == "3" || ${HAVE_GCC} == "4") |
440 | ${MAKEDIRTARGET} . do-gnu-lib-crtstuff${LIBGCC_EXT} | | 444 | ${MAKEDIRTARGET} . do-gnu-lib-crtstuff${LIBGCC_EXT} |
441 | .endif | | 445 | .endif |
442 | ${MAKEDIRTARGET} . do-gnu-lib-libgcc${LIBGCC_EXT} | | 446 | ${MAKEDIRTARGET} . do-gnu-lib-libgcc${LIBGCC_EXT} |
443 | .endif | | 447 | .endif |
444 | .endif | | 448 | .endif |
445 | | | 449 | |
446 | do-compat-libgcc: .PHONY .MAKE | | 450 | do-compat-libgcc: .PHONY .MAKE |
447 | .if defined(HAVE_GCC) | | 451 | .if defined(HAVE_GCC) |
448 | .if ${MKGCC} != "no" | | 452 | .if ${MKGCC} != "no" |
449 | ${MAKEDIRTARGET} . do-compat-gnu-lib-crtstuff${LIBGCC_EXT} | | 453 | ${MAKEDIRTARGET} . do-compat-gnu-lib-crtstuff${LIBGCC_EXT} |
450 | ${MAKEDIRTARGET} . do-compat-gnu-lib-libgcc${LIBGCC_EXT} | | 454 | ${MAKEDIRTARGET} . do-compat-gnu-lib-libgcc${LIBGCC_EXT} |
451 | .endif | | 455 | .endif |
452 | .endif | | 456 | .endif |
453 | | | 457 | |
454 | do-libpcc: .PHONY .MAKE | | 458 | do-libpcc: .PHONY .MAKE |
455 | .if defined(HAVE_PCC) | | 459 | .if defined(HAVE_PCC) |
456 | .if ${MKPCC} != "no" | | 460 | .if ${MKPCC} != "no" |
457 | ${MAKEDIRTARGET} . do-pcc-lib-crtstuff | | 461 | ${MAKEDIRTARGET} . do-pcc-lib-crtstuff |
458 | ${MAKEDIRTARGET} . do-pcc-lib-libpcc | | 462 | ${MAKEDIRTARGET} . do-pcc-lib-libpcc |
459 | .endif | | 463 | .endif |
460 | .endif | | 464 | .endif |
461 | | | 465 | |
462 | do-ld.so: .PHONY .MAKE | | 466 | do-ld.so: .PHONY .MAKE |
463 | .for targ in dependall install | | 467 | .for targ in dependall install |
464 | .if (${OBJECT_FMT} == "a.out") | | 468 | .if (${OBJECT_FMT} == "a.out") |
465 | ${MAKEDIRTARGET} libexec/ld.aout_so ${targ} | | 469 | ${MAKEDIRTARGET} libexec/ld.aout_so ${targ} |
466 | .endif | | 470 | .endif |
467 | .if (${OBJECT_FMT} == "ELF") | | 471 | .if (${OBJECT_FMT} == "ELF") |
468 | ${MAKEDIRTARGET} libexec/ld.elf_so ${targ} | | 472 | ${MAKEDIRTARGET} libexec/ld.elf_so ${targ} |
469 | .endif | | 473 | .endif |
470 | .endfor | | 474 | .endfor |
471 | | | 475 | |
472 | do-build: .PHONY .MAKE | | 476 | do-build: .PHONY .MAKE |
473 | .for targ in dependall install | | 477 | .for targ in dependall install |
474 | ${MAKEDIRTARGET} . ${targ} BUILD_tools=no BUILD_lib=no | | 478 | ${MAKEDIRTARGET} . ${targ} BUILD_tools=no BUILD_lib=no |
475 | .endfor | | 479 | .endfor |
476 | | | 480 | |
477 | do-x11: .PHONY .MAKE | | 481 | do-x11: .PHONY .MAKE |
478 | .if ${MKX11} != "no" | | 482 | .if ${MKX11} != "no" |
479 | .if ${X11FLAVOUR} == "Xorg" | | 483 | .if ${X11FLAVOUR} == "Xorg" |
480 | ${MAKEDIRTARGET} external/mit/xorg build | | 484 | ${MAKEDIRTARGET} external/mit/xorg build |
481 | .else | | 485 | .else |
482 | ${MAKEDIRTARGET} x11 build | | 486 | ${MAKEDIRTARGET} x11 build |
483 | .endif | | 487 | .endif |
484 | .else | | 488 | .else |
485 | @echo "MKX11 is not enabled" | | 489 | @echo "MKX11 is not enabled" |
486 | @false | | 490 | @false |
487 | .endif | | 491 | .endif |
488 | | | 492 | |
489 | do-extsrc: .PHONY .MAKE | | 493 | do-extsrc: .PHONY .MAKE |
490 | .if ${MKEXTSRC} != "no" | | 494 | .if ${MKEXTSRC} != "no" |
491 | ${MAKEDIRTARGET} extsrc build | | 495 | ${MAKEDIRTARGET} extsrc build |
492 | .else | | 496 | .else |
493 | @echo "MKEXTSRC is not enabled" | | 497 | @echo "MKEXTSRC is not enabled" |
494 | @false | | 498 | @false |
495 | .endif | | 499 | .endif |
496 | | | 500 | |
497 | do-obsolete: .PHONY .MAKE | | 501 | do-obsolete: .PHONY .MAKE |
498 | ${MAKEDIRTARGET} etc install-obsolete-lists | | 502 | ${MAKEDIRTARGET} etc install-obsolete-lists |
499 | | | 503 | |
500 | # | | 504 | # |
501 | # Speedup stubs for some subtrees that don't need to run these rules. | | 505 | # Speedup stubs for some subtrees that don't need to run these rules. |
502 | # (Tells <bsd.subdir.mk> not to recurse for them.) | | 506 | # (Tells <bsd.subdir.mk> not to recurse for them.) |
503 | # | | 507 | # |
504 | | | 508 | |
505 | .for dir in bin etc distrib games libexec regress sbin usr.sbin tools | | 509 | .for dir in bin etc distrib games libexec regress sbin usr.sbin tools |
506 | includes-${dir}: .PHONY | | 510 | includes-${dir}: .PHONY |
507 | @true | | 511 | @true |
508 | .endfor | | 512 | .endfor |
509 | .for dir in etc distrib regress | | 513 | .for dir in etc distrib regress |
510 | install-${dir}: .PHONY | | 514 | install-${dir}: .PHONY |
511 | @true | | 515 | @true |
512 | .endfor | | 516 | .endfor |
513 | | | 517 | |
514 | # | | 518 | # |
515 | # XXX this needs to change when distrib Makefiles are recursion compliant | | 519 | # XXX this needs to change when distrib Makefiles are recursion compliant |
516 | # XXX many distrib subdirs need "cd etc && make snap_pre snap_kern" first... | | 520 | # XXX many distrib subdirs need "cd etc && make snap_pre snap_kern" first... |
517 | # | | 521 | # |
518 | dependall-distrib depend-distrib all-distrib: .PHONY | | 522 | dependall-distrib depend-distrib all-distrib: .PHONY |
519 | @true | | 523 | @true |
520 | | | 524 | |
521 | .include <bsd.sys.mk> | | 525 | .include <bsd.sys.mk> |
522 | .include <bsd.obj.mk> | | 526 | .include <bsd.obj.mk> |
523 | .include <bsd.kernobj.mk> | | 527 | .include <bsd.kernobj.mk> |
524 | .include <bsd.subdir.mk> | | 528 | .include <bsd.subdir.mk> |
525 | | | 529 | |
526 | build-docs: .PHONY ${.CURDIR}/BUILDING | | 530 | build-docs: .PHONY ${.CURDIR}/BUILDING |
527 | ${.CURDIR}/BUILDING: doc/BUILDING.mdoc | | 531 | ${.CURDIR}/BUILDING: doc/BUILDING.mdoc |
528 | ${_MKMSG_CREATE} ${.TARGET} | | 532 | ${_MKMSG_CREATE} ${.TARGET} |
529 | ${TOOL_GROFF} -mdoc -Tascii -P-bou $> >$@ | | 533 | ${TOOL_GROFF} -mdoc -Tascii -P-bou $> >$@ |
530 | | | 534 | |
531 | | | 535 | |
532 | # | | 536 | # |
533 | # Display current make(1) parameters | | 537 | # Display current make(1) parameters |
534 | # | | 538 | # |
535 | params: .PHONY .MAKE | | 539 | params: .PHONY .MAKE |
536 | ${MAKEDIRTARGET} etc params | | 540 | ${MAKEDIRTARGET} etc params |