Skip to content
Newer
Older
100644 516 lines (457 sloc) 15.5 KB
f9f0565 Pull up following revision(s) (requested by jym in ticket #1565):
riz authored
1 # $NetBSD: Makefile,v 1.262.2.5 2011/03/08 17:47:59 riz Exp $
0737b51 Improve documentation.
cjs authored
2
68a131d * Add two new (experimental) targets:
lukem authored
3 #
0737b51 Improve documentation.
cjs authored
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
6552da2 netbsd.org->NetBSD.org
salo authored
6 # information, see http://www.NetBSD.org/developers/releng/index.html
0737b51 Improve documentation.
cjs authored
7 #
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
10 # bsd.README) for general information on building programs and writing
11 # Makefiles within this structure, and see the comments in src/etc/Makefile
12 # for further information on installation and release set options.
13 #
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
16 # (lowest priority).
17 #
18 # Variables:
f74fd78 Document MKOBJDIRS here, and sort the variable list in the comments
sommerfeld authored
19 # DESTDIR is the target directory for installation of the compiled
20 # software. It defaults to /. Note that programs are built against
21 # libraries installed in DESTDIR.
4daee47 Add MKUNPRIVED; if not no has the same semantics as if UNPRIVED was d…
lukem authored
22 # MKMAN, if `no', will prevent building of manual pages.
23 # MKOBJDIRS, if not `no', will build object directories at
f74fd78 Document MKOBJDIRS here, and sort the variable list in the comments
sommerfeld authored
24 # an appropriate point in a build.
4daee47 Add MKUNPRIVED; if not no has the same semantics as if UNPRIVED was d…
lukem authored
25 # MKSHARE, if `no', will prevent building and installing
0737b51 Improve documentation.
cjs authored
26 # anything in /usr/share.
4daee47 Add MKUNPRIVED; if not no has the same semantics as if UNPRIVED was d…
lukem authored
27 # MKUPDATE, if not `no', will avoid a `make cleandir' at the start of
4347734 Fix whitespace usage in comment.
enami authored
28 # `make build', as well as having the effects listed in
29 # /usr/share/mk/bsd.README.
62ab463 clarify some variable documentation; from cagney
mrg authored
30 # NOCLEANDIR, if defined, will avoid a `make cleandir' at the start
4347734 Fix whitespace usage in comment.
enami authored
31 # of the `make build'.
035c5bc Document the cool NOCLEANDIR/NOINCLUDES options that somebody added.
toddpw authored
32 # NOINCLUDES will avoid the `make includes' usually done by `make build'.
0737b51 Improve documentation.
cjs authored
33 #
4daee47 Add MKUNPRIVED; if not no has the same semantics as if UNPRIVED was d…
lukem authored
34 # See mk.conf(5) for more details.
35 #
36 #
0737b51 Improve documentation.
cjs authored
37 # Targets:
2146a04 Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
38 # build:
ba4ccdc Install release files under "${RELEASEDIR}/${MACHINE}/..." instead of
lukem authored
39 # Builds a full release of NetBSD in DESTDIR, except for the
40 # /etc configuration files.
41 # If BUILD_DONE is set, this is an empty target.
42 # distribution:
43 # Builds a full release of NetBSD in DESTDIR, including the /etc
44 # configuration files.
45 # buildworld:
46 # As per `make distribution', except that it ensures that DESTDIR
47 # is not the root directory.
48 # installworld:
49 # Install the distribution from DESTDIR to INSTALLWORLDDIR (which
50 # defaults to the root directory). Ensures that INSTALLWORLDDIR
51 # is the not root directory if cross compiling.
2146a04 Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
52 # release:
4d11576 Modify "release" to invoke "make distribution" instead of "make build",
lukem authored
53 # Does a `make distribution', and then tars up the DESTDIR files
01fd32b Consistently document RELEASEDIR/RELEASEMACHINEDIR.
lukem authored
54 # into ${RELEASEDIR}/${RELEASEMACHINEDIR}, in release(7) format.
ba4ccdc Install release files under "${RELEASEDIR}/${MACHINE}/..." instead of
lukem authored
55 # (See etc/Makefile for more information on this.)
2146a04 Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
56 # regression-tests:
57 # Runs the regression tests in "regress" on this host.
7677b64 Add "sourcesets" argument/target, which builds source sets into
lukem authored
58 # sets:
01fd32b Consistently document RELEASEDIR/RELEASEMACHINEDIR.
lukem authored
59 # Populate ${RELEASEDIR}/${RELEASEMACHINEDIR}/binary/sets
60 # from ${DESTDIR}
7677b64 Add "sourcesets" argument/target, which builds source sets into
lukem authored
61 # sourcesets:
62 # Populate ${RELEASEDIR}/source/sets from ${NETBSDSRCDIR}
574d936 Add a new "syspkgs" target, which simply chains to the "syspkgs" target
apb authored
63 # syspkgs:
01fd32b Consistently document RELEASEDIR/RELEASEMACHINEDIR.
lukem authored
64 # Populate ${RELEASEDIR}/${RELEASEMACHINEDIR}/binary/syspkgs
65 # from ${DESTDIR}
ffb1de3 * Add an "iso-image" target in the top level Makefile,
apb authored
66 # iso-image:
71b5d76 Add an iso-image-source option which does the same thing as iso-image…
jnemeth authored
67 # Create CD-ROM image in RELEASEDIR/iso.
ffb1de3 * Add an "iso-image" target in the top level Makefile,
apb authored
68 # RELEASEDIR must already have been populated by `make release'
69 # or equivalent.
71b5d76 Add an iso-image-source option which does the same thing as iso-image…
jnemeth authored
70 # iso-image-source:
71 # Create CD-ROM image with source in RELEASEDIR/iso.
72 # RELEASEDIR must already have been populated by
73 # `make release sourcesets' or equivalent.
080807c fix PR#12832: split `make build' up into these steps (from new the
mrg authored
74 #
2146a04 Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
75 # Targets invoked by `make build,' in order:
76 # cleandir: cleans the tree.
2a716d6 Add a do-top-obj target, which builds the top-level obj directory.
apb authored
77 # do-top-obj: creates the top level object directory.
4c7d1d2 Defer the "make obj" step until after tools are built and installed.
apb authored
78 # do-tools-obj: creates object directories for the host toolchain.
f319f65 Major overhaul of src/tools and host toolchain. Summary of changes:
tv authored
79 # do-tools: builds host toolchain.
4c7d1d2 Defer the "make obj" step until after tools are built and installed.
apb authored
80 # obj: creates object directories.
d4d2c94 Put do-make-tools before creating distrib-dirs (as binstall has to be
tv authored
81 # do-distrib-dirs: creates the distribution directories.
2146a04 Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
82 # includes: installs include files.
7813e60 update "targets invoked by make build" to match reality ...
lukem authored
83 # do-tools-compat: builds the "libnbcompat" library; needed for some
84 # random host tool programs in the source tree.
0e6521f correct the comment describing the build order
lukem authored
85 # do-lib-csu: builds and installs prerequisites from lib/csu.
4523b5b Provide 'do-libgcc' to build gnu/lib/crtstuff${LIBGCC_EXT} (if necess…
lukem authored
86 # do-libgcc: builds and installs prerequisites from
87 # gnu/lib/crtstuff${LIBGCC_EXT} (if necessary) and
88 # gnu/lib/libgcc${LIBGCC_EXT}.
c7c63f0 Build pcc and pcc-based crtstuff if using pcc compiler.
gmcgarry authored
89 # do-libpcc: builds and install prerequisites from
90 # external/bsd/pcc/crtstuff and external/bsd/pcc/libpcc.
0414c13 Add a do-lib-libc target which is processed after do-lib-csu. This
thorpej authored
91 # do-lib-libc: builds and installs prerequisites from lib/libc.
9795940 Re-add intermediate dependall/install targets (do-lib-csu, do-lib,
tv authored
92 # do-lib: builds and installs prerequisites from lib.
93 # do-gnu-lib: builds and installs prerequisites from gnu/lib.
b7dc2f3 Descend into external.
lukem authored
94 # do-external-lib: builds and installs prerequisites from external/lib.
a4aabc0 add do-sys-rump-net-lib
pooka authored
95 # do-sys-rump-fs-lib: builds and installs prerequisites from sys/rump/fs/lib
96 # do-sys-rump-net-lib: builds and installs prerequisites from sys/rump/net/lib
6573b61 MKDYNAMICROOT for a.out
itohy authored
97 # do-ld.so: builds and installs prerequisites from libexec/ld.*_so.
4616dc3 - enable 32-bit library builds on amd64 and sparc64
mrg authored
98 # do-compat-lib-csu: builds and installs prerequisites from compat/lib/csu
99 # if ${MKCOMPAT} != "no".
100 # do-compat-libgcc: builds and installs prerequisites from
101 # compat/gnu/lib/crtstuff${LIBGCC_EXT} (if necessary) and
102 # compat/gnu/lib/libgcc${LIBGCC_EXT} if ${MKCOMPAT} != "no".
103 # do-compat-lib-libc: builds and installs prerequisites from compat/lib/libc
104 # if ${MKCOMPAT} != "no".
2146a04 Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
105 # do-build: builds and installs the entire system.
c1430da Pull up following revision(s) (requested by mrg in ticket #64):
snj authored
106 # do-x11: builds and installs X11 if ${MKX11} != "no"; either
107 # X11R7 from src/external/mit/xorg if ${X11FLAVOUR} == "Xorg"
108 # or X11R6 from src/x11
07e51a7 fix some comments
lukem authored
109 # do-obsolete: installs the obsolete sets (for the postinstall-* targets).
68a131d * Add two new (experimental) targets:
lukem authored
110 #
2fd3dc7 pull in bsd.own.mk earlier, to get configuration variables.
cgd authored
111
80b70b9 * Always descend into "tools" regardless of USETOOLS setting. Instead,
tv authored
112 .if ${.MAKEFLAGS:M${.CURDIR}/share/mk} == ""
113 .MAKEFLAGS: -m ${.CURDIR}/share/mk
114 .endif
115
68a131d * Add two new (experimental) targets:
lukem authored
116 #
bfba043 If _SRC_TOP_OBJ_ gets set here, we will end up with a directory that may
tv authored
117 # If _SRC_TOP_OBJ_ gets set here, we will end up with a directory that may
118 # not be the top level objdir, because "make obj" can happen in the *middle*
119 # of "make build" (long after <bsd.own.mk> is calculated it). So, pre-set
120 # _SRC_TOP_OBJ_ here so it will not be added to ${.MAKEOVERRIDES}.
68a131d * Add two new (experimental) targets:
lukem authored
121 #
bfba043 If _SRC_TOP_OBJ_ gets set here, we will end up with a directory that may
tv authored
122 _SRC_TOP_OBJ_=
123
80b70b9 * Always descend into "tools" regardless of USETOOLS setting. Instead,
tv authored
124 .include <bsd.own.mk>
a445358 change "Id" to "Header" in rcsid, and noted why etc was not in subdirs
cgd authored
125
68a131d * Add two new (experimental) targets:
lukem authored
126 #
2146a04 Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
127 # Sanity check: make sure that "make build" is not invoked simultaneously
128 # with a standard recursive target.
68a131d * Add two new (experimental) targets:
lukem authored
129 #
63a3c7f Fix the rebuild of libgcc:
tv authored
130
2146a04 Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
131 .if make(build) || make(release) || make(snapshot)
132 .for targ in ${TARGETS:Nobj:Ncleandir}
133 .if make(${targ}) && !target(.BEGIN)
134 .BEGIN:
135 @echo 'BUILD ABORTED: "make build" and "make ${targ}" are mutually exclusive.'
136 @false
137 .endif
138 .endfor
a58d7a8 Add a 'NBUILDJOBS' variable which control the number of jobs started in
bouyer authored
139 .endif
140
68a131d * Add two new (experimental) targets:
lukem authored
141 #
2a716d6 Add a do-top-obj target, which builds the top-level obj directory.
apb authored
142 # _SUBDIR is used to set SUBDIR, after removing directories that have
143 # BUILD_${dir}=no, or that have no ${dir}/Makefile.
68a131d * Add two new (experimental) targets:
lukem authored
144 #
2a716d6 Add a do-top-obj target, which builds the top-level obj directory.
apb authored
145 _SUBDIR= tools lib include gnu external bin games libexec sbin usr.bin
4616dc3 - enable 32-bit library builds on amd64 and sparc64
mrg authored
146 _SUBDIR+= usr.sbin share rescue sys etc tests compat .WAIT distrib regress
f5ba3ce make sure include and include/sys are populated before starting to
assar authored
147
2146a04 Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
148 .for dir in ${_SUBDIR}
2a716d6 Add a do-top-obj target, which builds the top-level obj directory.
apb authored
149 .if "${dir}" == ".WAIT" \
150 || (${BUILD_${dir}:Uyes} != "no" && exists(${dir}/Makefile))
2146a04 Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
151 SUBDIR+= ${dir}
1dee340 allow builds to work if directory games is missing. Closes pr misc/19…
explorer authored
152 .endif
2146a04 Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
153 .endfor
c330d79 allow toplevel makefile to descend into sys
cgd authored
154
72a7b88 Make regress only if directory exists. It can be optional.
brezak authored
155 .if exists(regress)
dd2689d Add .MAKE to all targets that use ${MAKEDIRTARGET} otherwise make closes
dsl authored
156 regression-tests: .PHONY .MAKE
7e08344 oops, clean that up a bit
cgd authored
157 @echo Running regression tests...
c5a364e Convert lines of the form
lukem authored
158 ${MAKEDIRTARGET} regress regress
1630e06 if not installing man pages, don't remake whatis db
cgd authored
159 .endif
a86f71c add some new targets to DTRT when installing/building
cgd authored
160
4daee47 Add MKUNPRIVED; if not no has the same semantics as if UNPRIVED was d…
lukem authored
161 .if ${MKUNPRIVED} != "no"
f58d462 Fix what rev. 1.176 broke, in particular, doing a priv'd build into
thorpej authored
162 NOPOSTINSTALL= # defined
163 .endif
164
dd2689d Add .MAKE to all targets that use ${MAKEDIRTARGET} otherwise make closes
dsl authored
165 afterinstall: .PHONY .MAKE
d40e55a Add a new target (infodir-meta:) that synthesizes the share/info/dir
perry authored
166 .if ${MKMAN} != "no"
c5a364e Convert lines of the form
lukem authored
167 ${MAKEDIRTARGET} share/man makedb
2146a04 Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
168 .endif
4daee47 Add MKUNPRIVED; if not no has the same semantics as if UNPRIVED was d…
lukem authored
169 .if (${MKUNPRIVED} != "no" && ${MKINFO} != "no")
c5a364e Convert lines of the form
lukem authored
170 ${MAKEDIRTARGET} gnu/usr.bin/texinfo/install-info infodir-meta
d40e55a Add a new target (infodir-meta:) that synthesizes the share/info/dir
perry authored
171 .endif
f58d462 Fix what rev. 1.176 broke, in particular, doing a priv'd build into
thorpej authored
172 .if !defined(NOPOSTINSTALL)
c5a364e Convert lines of the form
lukem authored
173 ${MAKEDIRTARGET} . postinstall-check
9f44a83 In afterinstall, only run postinstall check if DESTDIR == / (or equiv…
lukem authored
174 .endif
e0343d8 move postinstall from afterinstall to separate "postinstall-check" ta…
lukem authored
175
3487ffd use usr.sbin/postinstall/postinstall instead of etc/postinstall
lukem authored
176 _POSTINSTALL= ${.CURDIR}/usr.sbin/postinstall/postinstall
177
fc5c130 Apply the .PHONY attribute where appropriate.
lukem authored
178 postinstall-check: .PHONY
ceb0565 run "./etc/postinstall check" in afterinstall:
lukem authored
179 @echo " === Post installation checks ==="
63b7628 Pull up following revision(s) (requested by sketch in ticket #536):
msaitoh authored
180 AWK=${TOOL_AWK:Q} MAKE=${MAKE:Q} ${HOST_SH} ${_POSTINSTALL} -s ${.CURDIR} -d ${DESTDIR}/ check; if [ $$? -gt 1 ]; then exit 1; fi
ceb0565 run "./etc/postinstall check" in afterinstall:
lukem authored
181 @echo " ================================"
182
fc5c130 Apply the .PHONY attribute where appropriate.
lukem authored
183 postinstall-fix: .NOTMAIN .PHONY
a8d4efa we might as well provide a handy "postinstall-fix" target whilst here
lukem authored
184 @echo " === Post installation fixes ==="
63b7628 Pull up following revision(s) (requested by sketch in ticket #536):
msaitoh authored
185 AWK=${TOOL_AWK:Q} MAKE=${MAKE:Q} ${HOST_SH} ${_POSTINSTALL} -s ${.CURDIR} -d ${DESTDIR}/ fix
0eb2248 Add postinstall-fix-obsolete (to invoke "postinstall fix obsolete" -
lukem authored
186 @echo " ==============================="
187
fc5c130 Apply the .PHONY attribute where appropriate.
lukem authored
188 postinstall-fix-obsolete: .NOTMAIN .PHONY
0eb2248 Add postinstall-fix-obsolete (to invoke "postinstall fix obsolete" -
lukem authored
189 @echo " === Removing obsolete files ==="
63b7628 Pull up following revision(s) (requested by sketch in ticket #536):
msaitoh authored
190 AWK=${TOOL_AWK:Q} MAKE=${MAKE:Q} ${HOST_SH} ${_POSTINSTALL} -s ${.CURDIR} -d ${DESTDIR}/ fix obsolete
0eb2248 Add postinstall-fix-obsolete (to invoke "postinstall fix obsolete" -
lukem authored
191 @echo " ==============================="
a8d4efa we might as well provide a handy "postinstall-fix" target whilst here
lukem authored
192
d40e55a Add a new target (infodir-meta:) that synthesizes the share/info/dir
perry authored
193
68a131d * Add two new (experimental) targets:
lukem authored
194 #
2146a04 Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
195 # Targets (in order!) called by "make build".
68a131d * Add two new (experimental) targets:
lukem authored
196 #
c7c63f0 Build pcc and pcc-based crtstuff if using pcc compiler.
gmcgarry authored
197 .if defined(HAVE_GCC)
f2feb00 remove support for building (with) GCC 2.95. also:
mrg authored
198 .if ${HAVE_GCC} == "3"
a554aa0 maybe build gnu/lib/libgcc3 instead of libgcc[2]
mrg authored
199 LIBGCC_EXT=3
200 .else
f2feb00 remove support for building (with) GCC 2.95. also:
mrg authored
201 LIBGCC_EXT=4
a554aa0 maybe build gnu/lib/libgcc3 instead of libgcc[2]
mrg authored
202 .endif
c7c63f0 Build pcc and pcc-based crtstuff if using pcc compiler.
gmcgarry authored
203 .endif
8039d65 If updating from a system which has a /usr/pkg/info/dir, move that to
tv authored
204
8f2ee77 Warn when "make build" is started with USE_NEW_TOOLCHAIN on a platfor…
tv authored
205 BUILDTARGETS+= check-tools
4daee47 Add MKUNPRIVED; if not no has the same semantics as if UNPRIVED was d…
lukem authored
206 .if ${MKUPDATE} == "no" && !defined(NOCLEANDIR)
2146a04 Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
207 BUILDTARGETS+= cleandir
d4d2c94 Put do-make-tools before creating distrib-dirs (as binstall has to be
tv authored
208 .endif
2a716d6 Add a do-top-obj target, which builds the top-level obj directory.
apb authored
209 .if ${MKOBJDIRS} != "no"
210 BUILDTARGETS+= do-top-obj
211 .endif
212 .if ${USETOOLS} == "yes" # {
200c6a8 Reverse the order of "make cleandir" and "make obj" back to the way they
tv authored
213 .if ${MKOBJDIRS} != "no"
4c7d1d2 Defer the "make obj" step until after tools are built and installed.
apb authored
214 BUILDTARGETS+= do-tools-obj
200c6a8 Reverse the order of "make cleandir" and "make obj" back to the way they
tv authored
215 .endif
f319f65 Major overhaul of src/tools and host toolchain. Summary of changes:
tv authored
216 BUILDTARGETS+= do-tools
2a716d6 Add a do-top-obj target, which builds the top-level obj directory.
apb authored
217 .endif # USETOOLS # }
4c7d1d2 Defer the "make obj" step until after tools are built and installed.
apb authored
218 .if ${MKOBJDIRS} != "no"
219 BUILDTARGETS+= obj
220 .endif
2146a04 Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
221 .if !defined(NODISTRIBDIRS)
222 BUILDTARGETS+= do-distrib-dirs
d4d2c94 Put do-make-tools before creating distrib-dirs (as binstall has to be
tv authored
223 .endif
2146a04 Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
224 .if !defined(NOINCLUDES)
225 BUILDTARGETS+= includes
d4d2c94 Put do-make-tools before creating distrib-dirs (as binstall has to be
tv authored
226 .endif
b726ac1 Always build tools/compat, so that random host helper programs
thorpej authored
227 BUILDTARGETS+= do-tools-compat
df22423 Be more gcc like in the way we deal with libgcc so that sh3/hppa mill…
skrll authored
228 BUILDTARGETS+= do-lib-csu
1889e8f build libgcc early, if at all
drochner authored
229 .if ${MKGCC} != "no"
4523b5b Provide 'do-libgcc' to build gnu/lib/crtstuff${LIBGCC_EXT} (if necess…
lukem authored
230 BUILDTARGETS+= do-libgcc
1889e8f build libgcc early, if at all
drochner authored
231 .endif
c7c63f0 Build pcc and pcc-based crtstuff if using pcc compiler.
gmcgarry authored
232 .if ${MKPCC} != "no"
233 BUILDTARGET+= do-libpcc
234 .endif
df22423 Be more gcc like in the way we deal with libgcc so that sh3/hppa mill…
skrll authored
235 BUILDTARGETS+= do-lib-libc
b7dc2f3 Descend into external.
lukem authored
236 BUILDTARGETS+= do-lib do-gnu-lib do-external-lib
a4aabc0 add do-sys-rump-net-lib
pooka authored
237 BUILDTARGETS+= do-sys-rump-fs-lib do-sys-rump-net-lib
4616dc3 - enable 32-bit library builds on amd64 and sparc64
mrg authored
238 .if ${MKCOMPAT} != "no"
239 BUILDTARGETS+= do-compat-lib-csu
240 BUILDTARGETS+= do-compat-libgcc
241 BUILDTARGETS+= do-compat-lib-libc
242 .endif
1a63075 only build do-lib-libdes if ${MKCRYPTO}!=no
lukem authored
243 BUILDTARGETS+= do-ld.so
244 BUILDTARGETS+= do-build
c1430da Pull up following revision(s) (requested by mrg in ticket #64):
snj authored
245 .if ${MKX11} != "no"
3e603ff Implement do-x11, to run "make build" in ./x11/
lukem authored
246 BUILDTARGETS+= do-x11
247 .endif
9ec650d all:
lukem authored
248 BUILDTARGETS+= do-obsolete
d4d2c94 Put do-make-tools before creating distrib-dirs (as binstall has to be
tv authored
249
68a131d * Add two new (experimental) targets:
lukem authored
250 #
2146a04 Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
251 # Enforce proper ordering of some rules.
68a131d * Add two new (experimental) targets:
lukem authored
252 #
080807c fix PR#12832: split `make build' up into these steps (from new the
mrg authored
253
2146a04 Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
254 .ORDER: ${BUILDTARGETS}
fc5c130 Apply the .PHONY attribute where appropriate.
lukem authored
255 includes-lib: .PHONY includes-include includes-sys
256 includes-gnu: .PHONY includes-lib
080807c fix PR#12832: split `make build' up into these steps (from new the
mrg authored
257
68a131d * Add two new (experimental) targets:
lukem authored
258 #
2146a04 Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
259 # Build the system and install into DESTDIR.
68a131d * Add two new (experimental) targets:
lukem authored
260 #
c95f25e The final step -- hook src/tools into the main build. If USE_NEW_TOOL…
tv authored
261
14e5273 show the start time at the end of the build as well.
lukem authored
262 START_TIME!= date
263
dd2689d Add .MAKE to all targets that use ${MAKEDIRTARGET} otherwise make closes
dsl authored
264 build: .PHONY .MAKE
2146a04 Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
265 .if defined(BUILD_DONE)
266 @echo "Build already installed into ${DESTDIR}"
267 .else
14e5273 show the start time at the end of the build as well.
lukem authored
268 @echo "Build started at: ${START_TIME}"
9694162 Work around parallelism lossage, because .ORDER doesn't work yet
tv authored
269 .for tgt in ${BUILDTARGETS}
c5a364e Convert lines of the form
lukem authored
270 ${MAKEDIRTARGET} . ${tgt}
9694162 Work around parallelism lossage, because .ORDER doesn't work yet
tv authored
271 .endfor
c5a364e Convert lines of the form
lukem authored
272 ${MAKEDIRTARGET} etc install-etc-release
14e5273 show the start time at the end of the build as well.
lukem authored
273 @echo "Build started at: ${START_TIME}"
d199a81 Use printf rather than echo -n, since the former works on all POSIX s…
bjh21 authored
274 @printf "Build finished at: " && date
8ec0ae1 Do not build libgcc 3 times.
mycroft authored
275 .endif
080807c fix PR#12832: split `make build' up into these steps (from new the
mrg authored
276
68a131d * Add two new (experimental) targets:
lukem authored
277 #
5fff7ce Add a wrapper for the "distribution" target, similar to the wrapper
thorpej authored
278 # Build a full distribution, but not a release (i.e. no sets into
68a131d * Add two new (experimental) targets:
lukem authored
279 # ${RELEASEDIR}). "buildworld" enforces a build to ${DESTDIR} != /
280 #
5fff7ce Add a wrapper for the "distribution" target, similar to the wrapper
thorpej authored
281
dd2689d Add .MAKE to all targets that use ${MAKEDIRTARGET} otherwise make closes
dsl authored
282 distribution buildworld: .PHONY .MAKE
8563563 fix DESTDIR checks if !defined(DESTDIR)
lukem authored
283 .if make(buildworld) && \
284 (!defined(DESTDIR) || ${DESTDIR} == "" || ${DESTDIR} == "/")
68a131d * Add two new (experimental) targets:
lukem authored
285 @echo "Won't make ${.TARGET} with DESTDIR=/"
286 @false
287 .endif
c5a364e Convert lines of the form
lukem authored
288 ${MAKEDIRTARGET} . build NOPOSTINSTALL=1
289 ${MAKEDIRTARGET} etc distribution INSTALL_DONE=1
333440b After running the body of the "distribution" target, do a "checkflist…
thorpej authored
290 .if defined(DESTDIR) && ${DESTDIR} != "" && ${DESTDIR} != "/"
c5a364e Convert lines of the form
lukem authored
291 ${MAKEDIRTARGET} . postinstall-fix-obsolete
292 ${MAKEDIRTARGET} distrib/sets checkflist
333440b After running the body of the "distribution" target, do a "checkflist…
thorpej authored
293 .endif
7d6d7d5 improve previous; show times at end of distribution/release/snapshot …
lukem authored
294 @echo "make ${.TARGET} started at: ${START_TIME}"
eabfc5d print date when make {distribution,release,snapshot} finished
lukem authored
295 @printf "make ${.TARGET} finished at: " && date
5fff7ce Add a wrapper for the "distribution" target, similar to the wrapper
thorpej authored
296
68a131d * Add two new (experimental) targets:
lukem authored
297 #
298 # Install the distribution from $DESTDIR to $INSTALLWORLDDIR (defaults to `/')
299 # If installing to /, ensures that the host's operating system is NetBSD and
300 # the host's `uname -m` == ${MACHINE}.
301 #
302
303 HOST_UNAME_S!= uname -s
304 HOST_UNAME_M!= uname -m
305
dd2689d Add .MAKE to all targets that use ${MAKEDIRTARGET} otherwise make closes
dsl authored
306 installworld: .PHONY .MAKE
8563563 fix DESTDIR checks if !defined(DESTDIR)
lukem authored
307 .if (!defined(DESTDIR) || ${DESTDIR} == "" || ${DESTDIR} == "/")
68a131d * Add two new (experimental) targets:
lukem authored
308 @echo "Can't make ${.TARGET} to DESTDIR=/"
309 @false
310 .endif
311 .if !defined(INSTALLWORLDDIR) || \
312 ${INSTALLWORLDDIR} == "" || ${INSTALLWORLDDIR} == "/"
313 .if (${HOST_UNAME_S} != "NetBSD")
314 @echo "Won't cross-make ${.TARGET} from ${HOST_UNAME_S} to NetBSD with INSTALLWORLDDIR=/"
315 @false
316 .endif
317 .if (${HOST_UNAME_M} != ${MACHINE})
318 @echo "Won't cross-make ${.TARGET} from ${HOST_UNAME_M} to ${MACHINE} with INSTALLWORLDDIR=/"
319 @false
320 .endif
321 .endif
c5a364e Convert lines of the form
lukem authored
322 ${MAKEDIRTARGET} distrib/sets installsets \
f9f0565 Pull up following revision(s) (requested by jym in ticket #1565):
riz authored
323 INSTALLDIR=${INSTALLWORLDDIR:U/} INSTALLSETS=${INSTALLSETS:Q}
c5a364e Convert lines of the form
lukem authored
324 ${MAKEDIRTARGET} . postinstall-check DESTDIR=${INSTALLWORLDDIR}
68a131d * Add two new (experimental) targets:
lukem authored
325 @echo "make ${.TARGET} started at: ${START_TIME}"
326 @printf "make ${.TARGET} finished at: " && date
327
328 #
7677b64 Add "sourcesets" argument/target, which builds source sets into
lukem authored
329 # Create sets from $DESTDIR or $NETBSDSRCDIR into $RELEASEDIR
30a629a - Add "sets" top-level Makefile target and build.sh operation.
lukem authored
330 #
331
574d936 Add a new "syspkgs" target, which simply chains to the "syspkgs" target
apb authored
332 .for tgt in sets sourcesets syspkgs
dd2689d Add .MAKE to all targets that use ${MAKEDIRTARGET} otherwise make closes
dsl authored
333 ${tgt}: .PHONY .MAKE
c5a364e Convert lines of the form
lukem authored
334 ${MAKEDIRTARGET} distrib/sets ${tgt}
7677b64 Add "sourcesets" argument/target, which builds source sets into
lukem authored
335 .endfor
30a629a - Add "sets" top-level Makefile target and build.sh operation.
lukem authored
336
337 #
4d11576 Modify "release" to invoke "make distribution" instead of "make build",
lukem authored
338 # Build a release or snapshot (implies "make distribution"). Note that
333440b After running the body of the "distribution" target, do a "checkflist…
thorpej authored
339 # in this case, the set lists will be checked before the tar files
340 # are made.
68a131d * Add two new (experimental) targets:
lukem authored
341 #
080807c fix PR#12832: split `make build' up into these steps (from new the
mrg authored
342
dd2689d Add .MAKE to all targets that use ${MAKEDIRTARGET} otherwise make closes
dsl authored
343 release snapshot: .PHONY .MAKE
4d11576 Modify "release" to invoke "make distribution" instead of "make build",
lukem authored
344 ${MAKEDIRTARGET} . distribution
345 ${MAKEDIRTARGET} etc release DISTRIBUTION_DONE=1
7d6d7d5 improve previous; show times at end of distribution/release/snapshot …
lukem authored
346 @echo "make ${.TARGET} started at: ${START_TIME}"
eabfc5d print date when make {distribution,release,snapshot} finished
lukem authored
347 @printf "make ${.TARGET} finished at: " && date
080807c fix PR#12832: split `make build' up into these steps (from new the
mrg authored
348
68a131d * Add two new (experimental) targets:
lukem authored
349 #
ffb1de3 * Add an "iso-image" target in the top level Makefile,
apb authored
350 # Create a CD-ROM image.
351 #
352
353 iso-image: .PHONY
0a87530 Add an iso_image target (iso-image as a target name doesn't play well…
bouyer authored
354 ${MAKEDIRTARGET} distrib iso_image
ffb1de3 * Add an "iso-image" target in the top level Makefile,
apb authored
355 ${MAKEDIRTARGET} etc iso-image
356 @echo "make ${.TARGET} started at: ${START_TIME}"
357 @printf "make ${.TARGET} finished at: " && date
358
71b5d76 Add an iso-image-source option which does the same thing as iso-image…
jnemeth authored
359 iso-image-source: .PHONY
360 ${MAKEDIRTARGET} distrib iso_image CDSOURCE=true
361 ${MAKEDIRTARGET} etc iso-image
362 @echo "make ${.TARGET} started at: ${START_TIME}"
363 @printf "make ${.TARGET} finished at: " && date
364
ffb1de3 * Add an "iso-image" target in the top level Makefile,
apb authored
365 #
2146a04 Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
366 # Special components of the "make build" process.
68a131d * Add two new (experimental) targets:
lukem authored
367 #
080807c fix PR#12832: split `make build' up into these steps (from new the
mrg authored
368
fc5c130 Apply the .PHONY attribute where appropriate.
lukem authored
369 check-tools: .PHONY
d0049d7 Consistently check ${TOOLCHAIN_MISSING} against "no".
lukem authored
370 .if ${TOOLCHAIN_MISSING} != "no" && !defined(EXTERNAL_TOOLCHAIN)
be7931b * Eliminate the USE_NEW_TOOLCHAIN variable. Instead, split it into
thorpej authored
371 @echo '*** WARNING: Building on MACHINE=${MACHINE} with missing toolchain.'
372 @echo '*** May result in a failed build or corrupt binaries!'
373 .elif defined(EXTERNAL_TOOLCHAIN)
374 @echo '*** Using external toolchain rooted at ${EXTERNAL_TOOLCHAIN}.'
8f2ee77 Warn when "make build" is started with USE_NEW_TOOLCHAIN on a platfor…
tv authored
375 .endif
e20e132 Correct BUGS in BUILDING.mdoc now that most ports are USE_NEW_TOOLCHAIN
sommerfeld authored
376 .if defined(NBUILDJOBS)
377 @echo '*** WARNING: NBUILDJOBS is obsolete; use -j directly instead!'
378 .endif
8f2ee77 Warn when "make build" is started with USE_NEW_TOOLCHAIN on a platfor…
tv authored
379
dd2689d Add .MAKE to all targets that use ${MAKEDIRTARGET} otherwise make closes
dsl authored
380 do-distrib-dirs: .PHONY .MAKE
643657c Add back logic which forces DESTDIR=/ for the distrib-dirs rule if it…
jmc authored
381 .if !defined(DESTDIR) || ${DESTDIR} == ""
c5a364e Convert lines of the form
lukem authored
382 ${MAKEDIRTARGET} etc distrib-dirs DESTDIR=/
643657c Add back logic which forces DESTDIR=/ for the distrib-dirs rule if it…
jmc authored
383 .else
c5a364e Convert lines of the form
lukem authored
384 ${MAKEDIRTARGET} etc distrib-dirs DESTDIR=${DESTDIR}
643657c Add back logic which forces DESTDIR=/ for the distrib-dirs rule if it…
jmc authored
385 .endif
080807c fix PR#12832: split `make build' up into these steps (from new the
mrg authored
386
d5fa963 Add do-{target} aliases for: cleandir obj includes
lukem authored
387 .for targ in cleandir obj includes
fc5c130 Apply the .PHONY attribute where appropriate.
lukem authored
388 do-${targ}: .PHONY ${targ}
d5fa963 Add do-{target} aliases for: cleandir obj includes
lukem authored
389 @true
390 .endfor
391
c7c63f0 Build pcc and pcc-based crtstuff if using pcc compiler.
gmcgarry authored
392 .if defined(HAVE_GCC)
393 BUILD_CC_LIB= gnu/lib/crtstuff${LIBGCC_EXT}
394 BUILD_CC_LIB+= gnu/lib/libgcc${LIBGCC_EXT}
395 .elif defined(HAVE_PCC)
396 BUILD_CC_LIB+= external/bsd/pcc/crtstuff
397 BUILD_CC_LIB+= external/bsd/pcc/libpcc
398 .endif
399
2a637e3 Apply patch (requested by mrg in ticket #1499):
riz authored
400 .for dir in tools tools/compat lib/csu ${BUILD_CC_LIB} lib/libc lib/libdes lib gnu/lib external/lib sys/rump/fs/lib sys/rump/net/lib
dd2689d Add .MAKE to all targets that use ${MAKEDIRTARGET} otherwise make closes
dsl authored
401 do-${dir:S/\//-/g}: .PHONY .MAKE
2146a04 Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
402 .for targ in dependall install
c5a364e Convert lines of the form
lukem authored
403 ${MAKEDIRTARGET} ${dir} ${targ}
2146a04 Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
404 .endfor
405 .endfor
9795940 Re-add intermediate dependall/install targets (do-lib-csu, do-lib,
tv authored
406
2a637e3 Apply patch (requested by mrg in ticket #1499):
riz authored
407 .if ${MKCOMPAT} != "no"
408 COMPAT_SUBDIR_LIST=lib/csu ${BUILD_CC_LIB} lib/libc
409 .for dir in ${COMPAT_SUBDIR_LIST}
410 do-compat-${dir:S/\//-/g}: .PHONY .MAKE
411 .for targ in obj dependall install
412 ${MAKEDIRTARGET} compat ${targ} BOOTSTRAP_SUBDIRS="../../../${dir}"
413 .endfor
414 .endfor
415 .endif
416
2a716d6 Add a do-top-obj target, which builds the top-level obj directory.
apb authored
417 do-top-obj: .PHONY .MAKE
418 ${MAKEDIRTARGET} . obj NOSUBDIR=
419
4c7d1d2 Defer the "make obj" step until after tools are built and installed.
apb authored
420 do-tools-obj: .PHONY .MAKE
421 ${MAKEDIRTARGET} tools obj
422
4523b5b Provide 'do-libgcc' to build gnu/lib/crtstuff${LIBGCC_EXT} (if necess…
lukem authored
423 do-libgcc: .PHONY .MAKE
c7c63f0 Build pcc and pcc-based crtstuff if using pcc compiler.
gmcgarry authored
424 .if defined(HAVE_GCC)
4523b5b Provide 'do-libgcc' to build gnu/lib/crtstuff${LIBGCC_EXT} (if necess…
lukem authored
425 .if ${MKGCC} != "no"
426 .if (${HAVE_GCC} == "3" || ${HAVE_GCC} == "4")
427 ${MAKEDIRTARGET} . do-gnu-lib-crtstuff${LIBGCC_EXT}
428 .endif
429 ${MAKEDIRTARGET} . do-gnu-lib-libgcc${LIBGCC_EXT}
430 .endif
c7c63f0 Build pcc and pcc-based crtstuff if using pcc compiler.
gmcgarry authored
431 .endif
432
4616dc3 - enable 32-bit library builds on amd64 and sparc64
mrg authored
433 do-compat-libgcc: .PHONY .MAKE
434 .if defined(HAVE_GCC)
435 .if ${MKGCC} != "no"
436 ${MAKEDIRTARGET} . do-compat-gnu-lib-crtstuff${LIBGCC_EXT}
437 ${MAKEDIRTARGET} . do-compat-gnu-lib-libgcc${LIBGCC_EXT}
438 .endif
439 .endif
440
c7c63f0 Build pcc and pcc-based crtstuff if using pcc compiler.
gmcgarry authored
441 do-libpcc: .PHONY .MAKE
442 .if defined(HAVE_PCC)
443 .if ${MKPCC} != "no"
444 ${MAKEDIRTARGET} . do-pcc-lib-crtstuff
445 ${MAKEDIRTARGET} . do-pcc-lib-libpcc
446 .endif
447 .endif
4523b5b Provide 'do-libgcc' to build gnu/lib/crtstuff${LIBGCC_EXT} (if necess…
lukem authored
448
dd2689d Add .MAKE to all targets that use ${MAKEDIRTARGET} otherwise make closes
dsl authored
449 do-ld.so: .PHONY .MAKE
e28725e add "do-ld.elf_so" target, which builds & installs libexec/ld.elf_so.
lukem authored
450 .for targ in dependall install
6573b61 MKDYNAMICROOT for a.out
itohy authored
451 .if (${OBJECT_FMT} == "a.out")
c5a364e Convert lines of the form
lukem authored
452 ${MAKEDIRTARGET} libexec/ld.aout_so ${targ}
6573b61 MKDYNAMICROOT for a.out
itohy authored
453 .endif
454 .if (${OBJECT_FMT} == "ELF")
c5a364e Convert lines of the form
lukem authored
455 ${MAKEDIRTARGET} libexec/ld.elf_so ${targ}
6573b61 MKDYNAMICROOT for a.out
itohy authored
456 .endif
e28725e add "do-ld.elf_so" target, which builds & installs libexec/ld.elf_so.
lukem authored
457 .endfor
458
dd2689d Add .MAKE to all targets that use ${MAKEDIRTARGET} otherwise make closes
dsl authored
459 do-build: .PHONY .MAKE
2f93f83 Rather than build in `tools' and `lib' twice, build `tools' and `lib'
tv authored
460 .for targ in dependall install
c5a364e Convert lines of the form
lukem authored
461 ${MAKEDIRTARGET} . ${targ} BUILD_tools=no BUILD_lib=no
2f93f83 Rather than build in `tools' and `lib' twice, build `tools' and `lib'
tv authored
462 .endfor
a86f71c add some new targets to DTRT when installing/building
cgd authored
463
dd2689d Add .MAKE to all targets that use ${MAKEDIRTARGET} otherwise make closes
dsl authored
464 do-x11: .PHONY .MAKE
c1430da Pull up following revision(s) (requested by mrg in ticket #64):
snj authored
465 .if ${MKX11} != "no"
466 .if ${X11FLAVOUR} == "Xorg"
ad70e2a if MKXORG != no, use external/mit/xorg subdir instead of x11 subdir for
mrg authored
467 ${MAKEDIRTARGET} external/mit/xorg build
c1430da Pull up following revision(s) (requested by mrg in ticket #64):
snj authored
468 .else
c5a364e Convert lines of the form
lukem authored
469 ${MAKEDIRTARGET} x11 build
c1430da Pull up following revision(s) (requested by mrg in ticket #64):
snj authored
470 .endif
1c80dfa Improve support for MKXORG!=no to enable builds into external/mit/xorg.
lukem authored
471 .else
c1430da Pull up following revision(s) (requested by mrg in ticket #64):
snj authored
472 @echo "MKX11 is not enabled"
1c80dfa Improve support for MKXORG!=no to enable builds into external/mit/xorg.
lukem authored
473 @false
ad70e2a if MKXORG != no, use external/mit/xorg subdir instead of x11 subdir for
mrg authored
474 .endif
3e603ff Implement do-x11, to run "make build" in ./x11/
lukem authored
475
dd2689d Add .MAKE to all targets that use ${MAKEDIRTARGET} otherwise make closes
dsl authored
476 do-obsolete: .PHONY .MAKE
c5a364e Convert lines of the form
lukem authored
477 ${MAKEDIRTARGET} etc install-obsolete-lists
9ec650d all:
lukem authored
478
68a131d * Add two new (experimental) targets:
lukem authored
479 #
2146a04 Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
480 # Speedup stubs for some subtrees that don't need to run these rules.
481 # (Tells <bsd.subdir.mk> not to recurse for them.)
68a131d * Add two new (experimental) targets:
lukem authored
482 #
eded244 Add release and snapshot targets. (They do the same thing.)
cjs authored
483
f319f65 Major overhaul of src/tools and host toolchain. Summary of changes:
tv authored
484 .for dir in bin etc distrib games libexec regress sbin usr.sbin tools
fc5c130 Apply the .PHONY attribute where appropriate.
lukem authored
485 includes-${dir}: .PHONY
f319f65 Major overhaul of src/tools and host toolchain. Summary of changes:
tv authored
486 @true
487 .endfor
488 .for dir in etc distrib regress
fc5c130 Apply the .PHONY attribute where appropriate.
lukem authored
489 install-${dir}: .PHONY
f319f65 Major overhaul of src/tools and host toolchain. Summary of changes:
tv authored
490 @true
491 .endfor
492
68a131d * Add two new (experimental) targets:
lukem authored
493 #
f319f65 Major overhaul of src/tools and host toolchain. Summary of changes:
tv authored
494 # XXX this needs to change when distrib Makefiles are recursion compliant
68a131d * Add two new (experimental) targets:
lukem authored
495 # XXX many distrib subdirs need "cd etc && make snap_pre snap_kern" first...
496 #
fc5c130 Apply the .PHONY attribute where appropriate.
lukem authored
497 dependall-distrib depend-distrib all-distrib: .PHONY
27f5b1e Use @true instead of @${TRUE} in includes-foo targets, since there is no
nathanw authored
498 @true
c8301d9 - Remove the include of Makefile.tools; this will be done elsewhere.
tv authored
499
9c3550f Rename a large chunk of the make(1) variables which refer to a
lukem authored
500 .include <bsd.sys.mk>
6f93870 Create an objdir here for storage of timestamps, build-wide data, and so
tv authored
501 .include <bsd.obj.mk>
6e84ec2 Add "params" target, to display the value of various variables.
lukem authored
502 .include <bsd.kernobj.mk>
80b70b9 * Always descend into "tools" regardless of USETOOLS setting. Instead,
tv authored
503 .include <bsd.subdir.mk>
542ae27 Add rules for generating plaintext and HTML versions of the "BUILDING"
tv authored
504
fc5c130 Apply the .PHONY attribute where appropriate.
lukem authored
505 build-docs: .PHONY ${.CURDIR}/BUILDING
35418f5 move BUILDING.mdoc -> doc/BUILDING.mdoc
lukem authored
506 ${.CURDIR}/BUILDING: doc/BUILDING.mdoc
1742381 MAKEVERBOSE support for build-docs
lukem authored
507 ${_MKMSG_CREATE} ${.TARGET}
dbf7b4c redo previous (functionality rollback of 1.213) to retain the style o…
lukem authored
508 ${TOOL_GROFF} -mdoc -Tascii -P-bou $> >$@
6e84ec2 Add "params" target, to display the value of various variables.
lukem authored
509
510
511 #
512 # Display current make(1) parameters
513 #
dd2689d Add .MAKE to all targets that use ${MAKEDIRTARGET} otherwise make closes
dsl authored
514 params: .PHONY .MAKE
c5a364e Convert lines of the form
lukem authored
515 ${MAKEDIRTARGET} etc params
Something went wrong with that request. Please try again.