Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 516 lines (457 sloc) 15.842 kB
84387fb 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 $
4693743 Improve documentation.
cjs authored
2
69d1160 * Add two new (experimental) targets:
lukem authored
3 #
4693743 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
4152b20 netbsd.org->NetBSD.org
salo authored
6 # information, see http://www.NetBSD.org/developers/releng/index.html
4693743 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:
f7a8ac6 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.
0f2c0be 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
f7a8ac6 Document MKOBJDIRS here, and sort the variable list in the comments
sommerfeld authored
24 # an appropriate point in a build.
0f2c0be 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
4693743 Improve documentation.
cjs authored
26 # anything in /usr/share.
0f2c0be 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
6485a5c Fix whitespace usage in comment.
enami authored
28 # `make build', as well as having the effects listed in
29 # /usr/share/mk/bsd.README.
f40352f clarify some variable documentation; from cagney
mrg authored
30 # NOCLEANDIR, if defined, will avoid a `make cleandir' at the start
6485a5c Fix whitespace usage in comment.
enami authored
31 # of the `make build'.
f979063 Document the cool NOCLEANDIR/NOINCLUDES options that somebody added.
toddpw authored
32 # NOINCLUDES will avoid the `make includes' usually done by `make build'.
4693743 Improve documentation.
cjs authored
33 #
0f2c0be 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 #
4693743 Improve documentation.
cjs authored
37 # Targets:
c210e5b Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
38 # build:
4626503 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.
c210e5b Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
52 # release:
4903b14 Modify "release" to invoke "make distribution" instead of "make build",
lukem authored
53 # Does a `make distribution', and then tars up the DESTDIR files
97b91fc Consistently document RELEASEDIR/RELEASEMACHINEDIR.
lukem authored
54 # into ${RELEASEDIR}/${RELEASEMACHINEDIR}, in release(7) format.
4626503 Install release files under "${RELEASEDIR}/${MACHINE}/..." instead of
lukem authored
55 # (See etc/Makefile for more information on this.)
c210e5b 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.
b31e270 Add "sourcesets" argument/target, which builds source sets into
lukem authored
58 # sets:
97b91fc Consistently document RELEASEDIR/RELEASEMACHINEDIR.
lukem authored
59 # Populate ${RELEASEDIR}/${RELEASEMACHINEDIR}/binary/sets
60 # from ${DESTDIR}
b31e270 Add "sourcesets" argument/target, which builds source sets into
lukem authored
61 # sourcesets:
62 # Populate ${RELEASEDIR}/source/sets from ${NETBSDSRCDIR}
0934a2e Add a new "syspkgs" target, which simply chains to the "syspkgs" target
apb authored
63 # syspkgs:
97b91fc Consistently document RELEASEDIR/RELEASEMACHINEDIR.
lukem authored
64 # Populate ${RELEASEDIR}/${RELEASEMACHINEDIR}/binary/syspkgs
65 # from ${DESTDIR}
468bd5d * Add an "iso-image" target in the top level Makefile,
apb authored
66 # iso-image:
82d4f8d Add an iso-image-source option which does the same thing as iso-image…
jnemeth authored
67 # Create CD-ROM image in RELEASEDIR/iso.
468bd5d * 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.
82d4f8d 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.
c76af6d fix PR#12832: split `make build' up into these steps (from new the
mrg authored
74 #
c210e5b 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.
5b60ec5 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.
07f4031 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.
85a68ff Major overhaul of src/tools and host toolchain. Summary of changes:
tv authored
79 # do-tools: builds host toolchain.
07f4031 Defer the "make obj" step until after tools are built and installed.
apb authored
80 # obj: creates object directories.
a7041f0 Put do-make-tools before creating distrib-dirs (as binstall has to be
tv authored
81 # do-distrib-dirs: creates the distribution directories.
c210e5b Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
82 # includes: installs include files.
be4d05d 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.
5b1b90c correct the comment describing the build order
lukem authored
85 # do-lib-csu: builds and installs prerequisites from lib/csu.
26b7b01 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}.
92539dc 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.
7c3b4fc 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.
b9e597f 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.
2e34956 Descend into external.
lukem authored
94 # do-external-lib: builds and installs prerequisites from external/lib.
c35eff1 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
770f682 MKDYNAMICROOT for a.out
itohy authored
97 # do-ld.so: builds and installs prerequisites from libexec/ld.*_so.
82ead09 - 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".
c210e5b Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
105 # do-build: builds and installs the entire system.
f5f7557 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
ed6f193 fix some comments
lukem authored
109 # do-obsolete: installs the obsolete sets (for the postinstall-* targets).
69d1160 * Add two new (experimental) targets:
lukem authored
110 #
448982f pull in bsd.own.mk earlier, to get configuration variables.
cgd authored
111
79154dd * 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
69d1160 * Add two new (experimental) targets:
lukem authored
116 #
9d29a4f 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}.
69d1160 * Add two new (experimental) targets:
lukem authored
121 #
9d29a4f If _SRC_TOP_OBJ_ gets set here, we will end up with a directory that may
tv authored
122 _SRC_TOP_OBJ_=
123
79154dd * 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
69d1160 * Add two new (experimental) targets:
lukem authored
126 #
c210e5b 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.
69d1160 * Add two new (experimental) targets:
lukem authored
129 #
c2e4e20 Fix the rebuild of libgcc:
tv authored
130
c210e5b 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
046845e Add a 'NBUILDJOBS' variable which control the number of jobs started in
bouyer authored
139 .endif
140
69d1160 * Add two new (experimental) targets:
lukem authored
141 #
5b60ec5 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.
69d1160 * Add two new (experimental) targets:
lukem authored
144 #
5b60ec5 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
82ead09 - enable 32-bit library builds on amd64 and sparc64
mrg authored
146 _SUBDIR+= usr.sbin share rescue sys etc tests compat .WAIT distrib regress
e2c2314 make sure include and include/sys are populated before starting to
assar authored
147
c210e5b Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
148 .for dir in ${_SUBDIR}
5b60ec5 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))
c210e5b Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
151 SUBDIR+= ${dir}
634e8c1 allow builds to work if directory games is missing. Closes pr misc/19…
explorer authored
152 .endif
c210e5b 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)
e636f08 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...
8993a70 Convert lines of the form
lukem authored
158 ${MAKEDIRTARGET} regress regress
bc33876 if not installing man pages, don't remake whatis db
cgd authored
159 .endif
7413e10 add some new targets to DTRT when installing/building
cgd authored
160
0f2c0be Add MKUNPRIVED; if not no has the same semantics as if UNPRIVED was d…
lukem authored
161 .if ${MKUNPRIVED} != "no"
62b3892 Fix what rev. 1.176 broke, in particular, doing a priv'd build into
thorpej authored
162 NOPOSTINSTALL= # defined
163 .endif
164
e636f08 Add .MAKE to all targets that use ${MAKEDIRTARGET} otherwise make closes
dsl authored
165 afterinstall: .PHONY .MAKE
a0e7536 Add a new target (infodir-meta:) that synthesizes the share/info/dir
perry authored
166 .if ${MKMAN} != "no"
8993a70 Convert lines of the form
lukem authored
167 ${MAKEDIRTARGET} share/man makedb
c210e5b Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
168 .endif
0f2c0be Add MKUNPRIVED; if not no has the same semantics as if UNPRIVED was d…
lukem authored
169 .if (${MKUNPRIVED} != "no" && ${MKINFO} != "no")
8993a70 Convert lines of the form
lukem authored
170 ${MAKEDIRTARGET} gnu/usr.bin/texinfo/install-info infodir-meta
a0e7536 Add a new target (infodir-meta:) that synthesizes the share/info/dir
perry authored
171 .endif
62b3892 Fix what rev. 1.176 broke, in particular, doing a priv'd build into
thorpej authored
172 .if !defined(NOPOSTINSTALL)
8993a70 Convert lines of the form
lukem authored
173 ${MAKEDIRTARGET} . postinstall-check
52b0450 In afterinstall, only run postinstall check if DESTDIR == / (or equiv…
lukem authored
174 .endif
6c495ae move postinstall from afterinstall to separate "postinstall-check" ta…
lukem authored
175
c39ab16 use usr.sbin/postinstall/postinstall instead of etc/postinstall
lukem authored
176 _POSTINSTALL= ${.CURDIR}/usr.sbin/postinstall/postinstall
177
f1173c1 Apply the .PHONY attribute where appropriate.
lukem authored
178 postinstall-check: .PHONY
ff9a5ba run "./etc/postinstall check" in afterinstall:
lukem authored
179 @echo " === Post installation checks ==="
999d2b7 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
ff9a5ba run "./etc/postinstall check" in afterinstall:
lukem authored
181 @echo " ================================"
182
f1173c1 Apply the .PHONY attribute where appropriate.
lukem authored
183 postinstall-fix: .NOTMAIN .PHONY
84bb4a2 we might as well provide a handy "postinstall-fix" target whilst here
lukem authored
184 @echo " === Post installation fixes ==="
999d2b7 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
6784880 Add postinstall-fix-obsolete (to invoke "postinstall fix obsolete" -
lukem authored
186 @echo " ==============================="
187
f1173c1 Apply the .PHONY attribute where appropriate.
lukem authored
188 postinstall-fix-obsolete: .NOTMAIN .PHONY
6784880 Add postinstall-fix-obsolete (to invoke "postinstall fix obsolete" -
lukem authored
189 @echo " === Removing obsolete files ==="
999d2b7 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
6784880 Add postinstall-fix-obsolete (to invoke "postinstall fix obsolete" -
lukem authored
191 @echo " ==============================="
84bb4a2 we might as well provide a handy "postinstall-fix" target whilst here
lukem authored
192
a0e7536 Add a new target (infodir-meta:) that synthesizes the share/info/dir
perry authored
193
69d1160 * Add two new (experimental) targets:
lukem authored
194 #
c210e5b Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
195 # Targets (in order!) called by "make build".
69d1160 * Add two new (experimental) targets:
lukem authored
196 #
92539dc Build pcc and pcc-based crtstuff if using pcc compiler.
gmcgarry authored
197 .if defined(HAVE_GCC)
5b803cb remove support for building (with) GCC 2.95. also:
mrg authored
198 .if ${HAVE_GCC} == "3"
f99f07d maybe build gnu/lib/libgcc3 instead of libgcc[2]
mrg authored
199 LIBGCC_EXT=3
200 .else
5b803cb remove support for building (with) GCC 2.95. also:
mrg authored
201 LIBGCC_EXT=4
f99f07d maybe build gnu/lib/libgcc3 instead of libgcc[2]
mrg authored
202 .endif
92539dc Build pcc and pcc-based crtstuff if using pcc compiler.
gmcgarry authored
203 .endif
a3028a2 If updating from a system which has a /usr/pkg/info/dir, move that to
tv authored
204
ca06aeb Warn when "make build" is started with USE_NEW_TOOLCHAIN on a platfor…
tv authored
205 BUILDTARGETS+= check-tools
0f2c0be Add MKUNPRIVED; if not no has the same semantics as if UNPRIVED was d…
lukem authored
206 .if ${MKUPDATE} == "no" && !defined(NOCLEANDIR)
c210e5b Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
207 BUILDTARGETS+= cleandir
a7041f0 Put do-make-tools before creating distrib-dirs (as binstall has to be
tv authored
208 .endif
5b60ec5 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" # {
c2c3d6f Reverse the order of "make cleandir" and "make obj" back to the way they
tv authored
213 .if ${MKOBJDIRS} != "no"
07f4031 Defer the "make obj" step until after tools are built and installed.
apb authored
214 BUILDTARGETS+= do-tools-obj
c2c3d6f Reverse the order of "make cleandir" and "make obj" back to the way they
tv authored
215 .endif
85a68ff Major overhaul of src/tools and host toolchain. Summary of changes:
tv authored
216 BUILDTARGETS+= do-tools
5b60ec5 Add a do-top-obj target, which builds the top-level obj directory.
apb authored
217 .endif # USETOOLS # }
07f4031 Defer the "make obj" step until after tools are built and installed.
apb authored
218 .if ${MKOBJDIRS} != "no"
219 BUILDTARGETS+= obj
220 .endif
c210e5b Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
221 .if !defined(NODISTRIBDIRS)
222 BUILDTARGETS+= do-distrib-dirs
a7041f0 Put do-make-tools before creating distrib-dirs (as binstall has to be
tv authored
223 .endif
c210e5b Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
224 .if !defined(NOINCLUDES)
225 BUILDTARGETS+= includes
a7041f0 Put do-make-tools before creating distrib-dirs (as binstall has to be
tv authored
226 .endif
b042d91 Always build tools/compat, so that random host helper programs
thorpej authored
227 BUILDTARGETS+= do-tools-compat
8988beb Be more gcc like in the way we deal with libgcc so that sh3/hppa mill…
skrll authored
228 BUILDTARGETS+= do-lib-csu
f0e2d90 build libgcc early, if at all
drochner authored
229 .if ${MKGCC} != "no"
26b7b01 Provide 'do-libgcc' to build gnu/lib/crtstuff${LIBGCC_EXT} (if necess…
lukem authored
230 BUILDTARGETS+= do-libgcc
f0e2d90 build libgcc early, if at all
drochner authored
231 .endif
92539dc Build pcc and pcc-based crtstuff if using pcc compiler.
gmcgarry authored
232 .if ${MKPCC} != "no"
233 BUILDTARGET+= do-libpcc
234 .endif
8988beb Be more gcc like in the way we deal with libgcc so that sh3/hppa mill…
skrll authored
235 BUILDTARGETS+= do-lib-libc
2e34956 Descend into external.
lukem authored
236 BUILDTARGETS+= do-lib do-gnu-lib do-external-lib
c35eff1 add do-sys-rump-net-lib
pooka authored
237 BUILDTARGETS+= do-sys-rump-fs-lib do-sys-rump-net-lib
82ead09 - 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
5767649 only build do-lib-libdes if ${MKCRYPTO}!=no
lukem authored
243 BUILDTARGETS+= do-ld.so
244 BUILDTARGETS+= do-build
f5f7557 Pull up following revision(s) (requested by mrg in ticket #64):
snj authored
245 .if ${MKX11} != "no"
19423fd Implement do-x11, to run "make build" in ./x11/
lukem authored
246 BUILDTARGETS+= do-x11
247 .endif
431157a all:
lukem authored
248 BUILDTARGETS+= do-obsolete
a7041f0 Put do-make-tools before creating distrib-dirs (as binstall has to be
tv authored
249
69d1160 * Add two new (experimental) targets:
lukem authored
250 #
c210e5b Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
251 # Enforce proper ordering of some rules.
69d1160 * Add two new (experimental) targets:
lukem authored
252 #
c76af6d fix PR#12832: split `make build' up into these steps (from new the
mrg authored
253
c210e5b Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
254 .ORDER: ${BUILDTARGETS}
f1173c1 Apply the .PHONY attribute where appropriate.
lukem authored
255 includes-lib: .PHONY includes-include includes-sys
256 includes-gnu: .PHONY includes-lib
c76af6d fix PR#12832: split `make build' up into these steps (from new the
mrg authored
257
69d1160 * Add two new (experimental) targets:
lukem authored
258 #
c210e5b Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
259 # Build the system and install into DESTDIR.
69d1160 * Add two new (experimental) targets:
lukem authored
260 #
ae121f5 The final step -- hook src/tools into the main build. If USE_NEW_TOO…
tv authored
261
a9a889a show the start time at the end of the build as well.
lukem authored
262 START_TIME!= date
263
e636f08 Add .MAKE to all targets that use ${MAKEDIRTARGET} otherwise make closes
dsl authored
264 build: .PHONY .MAKE
c210e5b 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
a9a889a show the start time at the end of the build as well.
lukem authored
268 @echo "Build started at: ${START_TIME}"
5d1bfa2 Work around parallelism lossage, because .ORDER doesn't work yet
tv authored
269 .for tgt in ${BUILDTARGETS}
8993a70 Convert lines of the form
lukem authored
270 ${MAKEDIRTARGET} . ${tgt}
5d1bfa2 Work around parallelism lossage, because .ORDER doesn't work yet
tv authored
271 .endfor
8993a70 Convert lines of the form
lukem authored
272 ${MAKEDIRTARGET} etc install-etc-release
a9a889a show the start time at the end of the build as well.
lukem authored
273 @echo "Build started at: ${START_TIME}"
63eda99 Use printf rather than echo -n, since the former works on all POSIX s…
bjh21 authored
274 @printf "Build finished at: " && date
3acd090 Do not build libgcc 3 times.
mycroft authored
275 .endif
c76af6d fix PR#12832: split `make build' up into these steps (from new the
mrg authored
276
69d1160 * Add two new (experimental) targets:
lukem authored
277 #
fa27277 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
69d1160 * Add two new (experimental) targets:
lukem authored
279 # ${RELEASEDIR}). "buildworld" enforces a build to ${DESTDIR} != /
280 #
fa27277 Add a wrapper for the "distribution" target, similar to the wrapper
thorpej authored
281
e636f08 Add .MAKE to all targets that use ${MAKEDIRTARGET} otherwise make closes
dsl authored
282 distribution buildworld: .PHONY .MAKE
364a133 fix DESTDIR checks if !defined(DESTDIR)
lukem authored
283 .if make(buildworld) && \
284 (!defined(DESTDIR) || ${DESTDIR} == "" || ${DESTDIR} == "/")
69d1160 * Add two new (experimental) targets:
lukem authored
285 @echo "Won't make ${.TARGET} with DESTDIR=/"
286 @false
287 .endif
8993a70 Convert lines of the form
lukem authored
288 ${MAKEDIRTARGET} . build NOPOSTINSTALL=1
289 ${MAKEDIRTARGET} etc distribution INSTALL_DONE=1
12ac6dc After running the body of the "distribution" target, do a "checkflist…
thorpej authored
290 .if defined(DESTDIR) && ${DESTDIR} != "" && ${DESTDIR} != "/"
8993a70 Convert lines of the form
lukem authored
291 ${MAKEDIRTARGET} . postinstall-fix-obsolete
292 ${MAKEDIRTARGET} distrib/sets checkflist
12ac6dc After running the body of the "distribution" target, do a "checkflist…
thorpej authored
293 .endif
092e768 improve previous; show times at end of distribution/release/snapshot …
lukem authored
294 @echo "make ${.TARGET} started at: ${START_TIME}"
cf09c55 print date when make {distribution,release,snapshot} finished
lukem authored
295 @printf "make ${.TARGET} finished at: " && date
fa27277 Add a wrapper for the "distribution" target, similar to the wrapper
thorpej authored
296
69d1160 * 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
e636f08 Add .MAKE to all targets that use ${MAKEDIRTARGET} otherwise make closes
dsl authored
306 installworld: .PHONY .MAKE
364a133 fix DESTDIR checks if !defined(DESTDIR)
lukem authored
307 .if (!defined(DESTDIR) || ${DESTDIR} == "" || ${DESTDIR} == "/")
69d1160 * 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
8993a70 Convert lines of the form
lukem authored
322 ${MAKEDIRTARGET} distrib/sets installsets \
84387fb Pull up following revision(s) (requested by jym in ticket #1565):
riz authored
323 INSTALLDIR=${INSTALLWORLDDIR:U/} INSTALLSETS=${INSTALLSETS:Q}
8993a70 Convert lines of the form
lukem authored
324 ${MAKEDIRTARGET} . postinstall-check DESTDIR=${INSTALLWORLDDIR}
69d1160 * Add two new (experimental) targets:
lukem authored
325 @echo "make ${.TARGET} started at: ${START_TIME}"
326 @printf "make ${.TARGET} finished at: " && date
327
328 #
b31e270 Add "sourcesets" argument/target, which builds source sets into
lukem authored
329 # Create sets from $DESTDIR or $NETBSDSRCDIR into $RELEASEDIR
ece364c - Add "sets" top-level Makefile target and build.sh operation.
lukem authored
330 #
331
0934a2e Add a new "syspkgs" target, which simply chains to the "syspkgs" target
apb authored
332 .for tgt in sets sourcesets syspkgs
e636f08 Add .MAKE to all targets that use ${MAKEDIRTARGET} otherwise make closes
dsl authored
333 ${tgt}: .PHONY .MAKE
8993a70 Convert lines of the form
lukem authored
334 ${MAKEDIRTARGET} distrib/sets ${tgt}
b31e270 Add "sourcesets" argument/target, which builds source sets into
lukem authored
335 .endfor
ece364c - Add "sets" top-level Makefile target and build.sh operation.
lukem authored
336
337 #
4903b14 Modify "release" to invoke "make distribution" instead of "make build",
lukem authored
338 # Build a release or snapshot (implies "make distribution"). Note that
12ac6dc 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.
69d1160 * Add two new (experimental) targets:
lukem authored
341 #
c76af6d fix PR#12832: split `make build' up into these steps (from new the
mrg authored
342
e636f08 Add .MAKE to all targets that use ${MAKEDIRTARGET} otherwise make closes
dsl authored
343 release snapshot: .PHONY .MAKE
4903b14 Modify "release" to invoke "make distribution" instead of "make build",
lukem authored
344 ${MAKEDIRTARGET} . distribution
345 ${MAKEDIRTARGET} etc release DISTRIBUTION_DONE=1
092e768 improve previous; show times at end of distribution/release/snapshot …
lukem authored
346 @echo "make ${.TARGET} started at: ${START_TIME}"
cf09c55 print date when make {distribution,release,snapshot} finished
lukem authored
347 @printf "make ${.TARGET} finished at: " && date
c76af6d fix PR#12832: split `make build' up into these steps (from new the
mrg authored
348
69d1160 * Add two new (experimental) targets:
lukem authored
349 #
468bd5d * Add an "iso-image" target in the top level Makefile,
apb authored
350 # Create a CD-ROM image.
351 #
352
353 iso-image: .PHONY
fd7849c Add an iso_image target (iso-image as a target name doesn't play well…
bouyer authored
354 ${MAKEDIRTARGET} distrib iso_image
468bd5d * 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
82d4f8d 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
468bd5d * Add an "iso-image" target in the top level Makefile,
apb authored
365 #
c210e5b Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
366 # Special components of the "make build" process.
69d1160 * Add two new (experimental) targets:
lukem authored
367 #
c76af6d fix PR#12832: split `make build' up into these steps (from new the
mrg authored
368
f1173c1 Apply the .PHONY attribute where appropriate.
lukem authored
369 check-tools: .PHONY
b97d965 Consistently check ${TOOLCHAIN_MISSING} against "no".
lukem authored
370 .if ${TOOLCHAIN_MISSING} != "no" && !defined(EXTERNAL_TOOLCHAIN)
b645c30 * 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}.'
ca06aeb Warn when "make build" is started with USE_NEW_TOOLCHAIN on a platfor…
tv authored
375 .endif
c74b501 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
ca06aeb Warn when "make build" is started with USE_NEW_TOOLCHAIN on a platfor…
tv authored
379
e636f08 Add .MAKE to all targets that use ${MAKEDIRTARGET} otherwise make closes
dsl authored
380 do-distrib-dirs: .PHONY .MAKE
bb154af Add back logic which forces DESTDIR=/ for the distrib-dirs rule if it…
jmc authored
381 .if !defined(DESTDIR) || ${DESTDIR} == ""
8993a70 Convert lines of the form
lukem authored
382 ${MAKEDIRTARGET} etc distrib-dirs DESTDIR=/
bb154af Add back logic which forces DESTDIR=/ for the distrib-dirs rule if it…
jmc authored
383 .else
8993a70 Convert lines of the form
lukem authored
384 ${MAKEDIRTARGET} etc distrib-dirs DESTDIR=${DESTDIR}
bb154af Add back logic which forces DESTDIR=/ for the distrib-dirs rule if it…
jmc authored
385 .endif
c76af6d fix PR#12832: split `make build' up into these steps (from new the
mrg authored
386
2205992 Add do-{target} aliases for: cleandir obj includes
lukem authored
387 .for targ in cleandir obj includes
f1173c1 Apply the .PHONY attribute where appropriate.
lukem authored
388 do-${targ}: .PHONY ${targ}
2205992 Add do-{target} aliases for: cleandir obj includes
lukem authored
389 @true
390 .endfor
391
92539dc 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
69664b7 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
e636f08 Add .MAKE to all targets that use ${MAKEDIRTARGET} otherwise make closes
dsl authored
401 do-${dir:S/\//-/g}: .PHONY .MAKE
c210e5b Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
402 .for targ in dependall install
8993a70 Convert lines of the form
lukem authored
403 ${MAKEDIRTARGET} ${dir} ${targ}
c210e5b Overhaul and simplify the top level Makefile, and add some sanity che…
tv authored
404 .endfor
405 .endfor
b9e597f Re-add intermediate dependall/install targets (do-lib-csu, do-lib,
tv authored
406
69664b7 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
5b60ec5 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
07f4031 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
26b7b01 Provide 'do-libgcc' to build gnu/lib/crtstuff${LIBGCC_EXT} (if necess…
lukem authored
423 do-libgcc: .PHONY .MAKE
92539dc Build pcc and pcc-based crtstuff if using pcc compiler.
gmcgarry authored
424 .if defined(HAVE_GCC)
26b7b01 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
92539dc Build pcc and pcc-based crtstuff if using pcc compiler.
gmcgarry authored
431 .endif
432
82ead09 - 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
92539dc 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
26b7b01 Provide 'do-libgcc' to build gnu/lib/crtstuff${LIBGCC_EXT} (if necess…
lukem authored
448
e636f08 Add .MAKE to all targets that use ${MAKEDIRTARGET} otherwise make closes
dsl authored
449 do-ld.so: .PHONY .MAKE
1d3f1b5 add "do-ld.elf_so" target, which builds & installs libexec/ld.elf_so.
lukem authored
450 .for targ in dependall install
770f682 MKDYNAMICROOT for a.out
itohy authored
451 .if (${OBJECT_FMT} == "a.out")
8993a70 Convert lines of the form
lukem authored
452 ${MAKEDIRTARGET} libexec/ld.aout_so ${targ}
770f682 MKDYNAMICROOT for a.out
itohy authored
453 .endif
454 .if (${OBJECT_FMT} == "ELF")
8993a70 Convert lines of the form
lukem authored
455 ${MAKEDIRTARGET} libexec/ld.elf_so ${targ}
770f682 MKDYNAMICROOT for a.out
itohy authored
456 .endif
1d3f1b5 add "do-ld.elf_so" target, which builds & installs libexec/ld.elf_so.
lukem authored
457 .endfor
458
e636f08 Add .MAKE to all targets that use ${MAKEDIRTARGET} otherwise make closes
dsl authored
459 do-build: .PHONY .MAKE
c46e0aa Rather than build in `tools' and `lib' twice, build `tools' and `lib'
tv authored
460 .for targ in dependall install
8993a70 Convert lines of the form
lukem authored
461 ${MAKEDIRTARGET} . ${targ} BUILD_tools=no BUILD_lib=no
c46e0aa Rather than build in `tools' and `lib' twice, build `tools' and `lib'
tv authored
462 .endfor
7413e10 add some new targets to DTRT when installing/building
cgd authored
463
e636f08 Add .MAKE to all targets that use ${MAKEDIRTARGET} otherwise make closes
dsl authored
464 do-x11: .PHONY .MAKE
f5f7557 Pull up following revision(s) (requested by mrg in ticket #64):
snj authored
465 .if ${MKX11} != "no"
466 .if ${X11FLAVOUR} == "Xorg"
b58283f if MKXORG != no, use external/mit/xorg subdir instead of x11 subdir for
mrg authored
467 ${MAKEDIRTARGET} external/mit/xorg build
f5f7557 Pull up following revision(s) (requested by mrg in ticket #64):
snj authored
468 .else
8993a70 Convert lines of the form
lukem authored
469 ${MAKEDIRTARGET} x11 build
f5f7557 Pull up following revision(s) (requested by mrg in ticket #64):
snj authored
470 .endif
a0a02de Improve support for MKXORG!=no to enable builds into external/mit/xorg.
lukem authored
471 .else
f5f7557 Pull up following revision(s) (requested by mrg in ticket #64):
snj authored
472 @echo "MKX11 is not enabled"
a0a02de Improve support for MKXORG!=no to enable builds into external/mit/xorg.
lukem authored
473 @false
b58283f if MKXORG != no, use external/mit/xorg subdir instead of x11 subdir for
mrg authored
474 .endif
19423fd Implement do-x11, to run "make build" in ./x11/
lukem authored
475
e636f08 Add .MAKE to all targets that use ${MAKEDIRTARGET} otherwise make closes
dsl authored
476 do-obsolete: .PHONY .MAKE
8993a70 Convert lines of the form
lukem authored
477 ${MAKEDIRTARGET} etc install-obsolete-lists
431157a all:
lukem authored
478
69d1160 * Add two new (experimental) targets:
lukem authored
479 #
c210e5b 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.)
69d1160 * Add two new (experimental) targets:
lukem authored
482 #
f03f6b1 Add release and snapshot targets. (They do the same thing.)
cjs authored
483
85a68ff 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
f1173c1 Apply the .PHONY attribute where appropriate.
lukem authored
485 includes-${dir}: .PHONY
85a68ff Major overhaul of src/tools and host toolchain. Summary of changes:
tv authored
486 @true
487 .endfor
488 .for dir in etc distrib regress
f1173c1 Apply the .PHONY attribute where appropriate.
lukem authored
489 install-${dir}: .PHONY
85a68ff Major overhaul of src/tools and host toolchain. Summary of changes:
tv authored
490 @true
491 .endfor
492
69d1160 * Add two new (experimental) targets:
lukem authored
493 #
85a68ff 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
69d1160 * Add two new (experimental) targets:
lukem authored
495 # XXX many distrib subdirs need "cd etc && make snap_pre snap_kern" first...
496 #
f1173c1 Apply the .PHONY attribute where appropriate.
lukem authored
497 dependall-distrib depend-distrib all-distrib: .PHONY
6f15fa2 Use @true instead of @${TRUE} in includes-foo targets, since there is no
nathanw authored
498 @true
8626600 - Remove the include of Makefile.tools; this will be done elsewhere.
tv authored
499
919514d Rename a large chunk of the make(1) variables which refer to a
lukem authored
500 .include <bsd.sys.mk>
4fc1f4e Create an objdir here for storage of timestamps, build-wide data, and so
tv authored
501 .include <bsd.obj.mk>
e496a61 Add "params" target, to display the value of various variables.
lukem authored
502 .include <bsd.kernobj.mk>
79154dd * Always descend into "tools" regardless of USETOOLS setting. Instead,
tv authored
503 .include <bsd.subdir.mk>
45e2272 Add rules for generating plaintext and HTML versions of the "BUILDING"
tv authored
504
f1173c1 Apply the .PHONY attribute where appropriate.
lukem authored
505 build-docs: .PHONY ${.CURDIR}/BUILDING
60f23ab move BUILDING.mdoc -> doc/BUILDING.mdoc
lukem authored
506 ${.CURDIR}/BUILDING: doc/BUILDING.mdoc
17f2dd7 MAKEVERBOSE support for build-docs
lukem authored
507 ${_MKMSG_CREATE} ${.TARGET}
7645298 redo previous (functionality rollback of 1.213) to retain the style o…
lukem authored
508 ${TOOL_GROFF} -mdoc -Tascii -P-bou $> >$@
e496a61 Add "params" target, to display the value of various variables.
lukem authored
509
510
511 #
512 # Display current make(1) parameters
513 #
e636f08 Add .MAKE to all targets that use ${MAKEDIRTARGET} otherwise make closes
dsl authored
514 params: .PHONY .MAKE
8993a70 Convert lines of the form
lukem authored
515 ${MAKEDIRTARGET} etc params
Something went wrong with that request. Please try again.