]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - Makefile
This commit was generated by cvs2svn to compensate for changes in r28896,
[FreeBSD/FreeBSD.git] / Makefile
1 #
2 #       $Id: Makefile,v 1.140 1997/08/25 19:40:53 bde Exp $
3 #
4 # Make command line options:
5 #       -DCLOBBER will remove /usr/include
6 #       -DMAKE_EBONES to build eBones (KerberosIV)
7 #       -DALLLANG to build documentation for all languages
8 #         (where available -- see share/doc/Makefile)
9 #
10 #       -DNOCLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir
11 #       -DNOCLEAN do not clean at all
12 #       -DNOCRYPT will prevent building of crypt versions
13 #       -DNOLKM do not build loadable kernel modules
14 #       -DNOOBJDIR do not run ``${MAKE} obj''
15 #       -DNOPROFILE do not build profiled libraries
16 #       -DNOSECURE do not go into secure subdir
17 #       -DNOGAMES do not go into games subdir
18 #       -DNOSHARE do not go into share subdir
19 #       -DNOINFO do not make or install info files
20 #       -DNOLIBC_R do not build libc_r.
21 #       LOCAL_DIRS="list of dirs" to add additional dirs to the SUBDIR list
22
23 #
24 # The intended user-driven targets are:
25 # buildworld  - rebuild *everything*, including glue to help do upgrades
26 # installworld- install everything built by "buildworld"
27 # world       - buildworld + installworld
28 # update      - convenient way to update your source tree (eg: sup/cvs)
29 # most        - build user commands, no libraries or include files
30 # installmost - install user commands, no libraries or include files
31 #
32 # Standard targets (not defined here) are documented in the makefiles in
33 # /usr/share/mk.  These include:
34 #               obj depend all install clean cleandepend cleanobj
35
36 .if (!make(world)) && (!make(buildworld)) && (!make(installworld))
37 .MAKEFLAGS:=    ${.MAKEFLAGS} -m ${.CURDIR}/share/mk
38 .endif
39
40 # Put initial settings here.
41 SUBDIR=
42
43 # We must do share/info early so that installation of info `dir'
44 # entries works correctly.  Do it first since it is less likely to
45 # grow dependencies on include and lib than vice versa.
46 .if exists(share/info)
47 SUBDIR+= share/info
48 .endif
49
50 # We must do include and lib early so that the perl *.ph generation
51 # works correctly as it uses the header files installed by this.
52 .if exists(include)
53 SUBDIR+= include
54 .endif
55 .if exists(lib)
56 SUBDIR+= lib
57 .endif
58
59 .if exists(bin)
60 SUBDIR+= bin
61 .endif
62 .if exists(games) && !defined(NOGAMES)
63 SUBDIR+= games
64 .endif
65 .if exists(gnu)
66 SUBDIR+= gnu
67 .endif
68 .if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES)
69 SUBDIR+= eBones
70 .endif
71 .if exists(libexec)
72 SUBDIR+= libexec
73 .endif
74 .if exists(sbin)
75 SUBDIR+= sbin
76 .endif
77 .if exists(share) && !defined(NOSHARE)
78 SUBDIR+= share
79 .endif
80 .if exists(sys)
81 SUBDIR+= sys
82 .endif
83 .if exists(usr.bin)
84 SUBDIR+= usr.bin
85 .endif
86 .if exists(usr.sbin)
87 SUBDIR+= usr.sbin
88 .endif
89 .if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE)
90 SUBDIR+= secure
91 .endif
92 .if exists(lkm) && !defined(NOLKM)
93 SUBDIR+= lkm
94 .endif
95
96 # etc must be last for "distribute" to work
97 .if exists(etc) && make(distribute)
98 SUBDIR+= etc
99 .endif
100
101 # These are last, since it is nice to at least get the base system
102 # rebuilt before you do them.
103 .if defined(LOCAL_DIRS)
104 .for _DIR in ${LOCAL_DIRS}
105 .if exists(${_DIR}) & exists(${_DIR}/Makefile)
106 SUBDIR+= ${_DIR}
107 .endif
108 .endfor
109 .endif
110
111 # Handle -DNOOBJDIR, -DNOCLEAN and -DNOCLEANDIR
112 .if defined(NOOBJDIR)
113 OBJDIR=
114 .else
115 OBJDIR=         obj
116 .endif
117
118 .if defined(NOCLEAN)
119 CLEANDIR=
120 .else
121 .if defined(NOCLEANDIR)
122 CLEANDIR=       clean
123 .else
124 CLEANDIR=       cleandir
125 .endif
126 .endif
127
128 SUP?=           sup
129 SUPFLAGS?=      -v
130
131 #
132 # While building tools for bootstrapping, we dont need to waste time on
133 # profiled libraries or man pages.  This speeds things up somewhat.
134 #
135 MK_FLAGS=       -DNOINFO -DNOMAN -DNOPROFILE
136
137 #
138 # world
139 #
140 # Attempt to rebuild and reinstall *everything*, with reasonable chance of
141 # success, regardless of how old your existing system is.
142 #
143 # >> Beware, it overwrites the local build environment! <<
144 #
145 world:
146         @echo "--------------------------------------------------------------"
147         @echo "make world started on `LC_TIME=C date`"
148         @echo "--------------------------------------------------------------"
149 .if target(pre-world)
150         @echo
151         @echo "--------------------------------------------------------------"
152         @echo " Making 'pre-world' target"
153         @echo "--------------------------------------------------------------"
154         cd ${.CURDIR} && ${MAKE} pre-world
155 .endif
156         cd ${.CURDIR} && ${MAKE} buildworld
157         cd ${.CURDIR} && ${MAKE} installworld
158 .if target(post-world)
159         @echo
160         @echo "--------------------------------------------------------------"
161         @echo " Making 'post-world' target"
162         @echo "--------------------------------------------------------------"
163         cd ${.CURDIR} && ${MAKE} post-world
164 .endif
165         @echo
166         @echo "--------------------------------------------------------------"
167         @echo "make world completed on `LC_TIME=C date`"
168         @echo "--------------------------------------------------------------"
169
170 .if defined(MAKEOBJDIRPREFIX)
171 WORLDTMP=       ${MAKEOBJDIRPREFIX}${.CURDIR}/tmp
172 .else
173 WORLDTMP=       /usr/obj${.CURDIR}/tmp
174 .endif
175 STRICTTMPPATH=  ${WORLDTMP}/sbin:${WORLDTMP}/usr/sbin:${WORLDTMP}/bin:${WORLDTMP}/usr/bin
176 TMPPATH=        ${STRICTTMPPATH}:${PATH}
177
178 # XXX COMPILER_PATH is needed for finding cc1, ld and as
179 # XXX GCC_EXEC_PREFIX is for *crt.o.  It is probably unnecssary now
180 #       tbat LIBRARY_PATH is set.  We still can't use -nostdlib, since gcc
181 #       wouldn't link *crt.o or libgcc if it were used.
182 # XXX LD_LIBRARY_PATH is for ld.so.  It is also used by ld, although we don't
183 #       want that - all compile-time library paths should be resolved by gcc.
184 #       It fails for set[ug]id executables (are any used?).
185 COMPILER_ENV=   BISON_SIMPLE=${WORLDTMP}/usr/share/misc/bison.simple \
186                 COMPILER_PATH=${WORLDTMP}/usr/libexec:${WORLDTMP}/usr/bin \
187                 GCC_EXEC_PREFIX=${WORLDTMP}/usr/lib/ \
188                 LD_LIBRARY_PATH=${WORLDTMP}${SHLIBDIR} \
189                 LIBRARY_PATH=${WORLDTMP}${SHLIBDIR}:${WORLDTMP}/usr/lib
190
191 BMAKEENV=       PATH=${TMPPATH} ${COMPILER_ENV} NOEXTRADEPEND=t
192 XMAKEENV=       PATH=${STRICTTMPPATH} ${COMPILER_ENV} \
193                 CC='cc -nostdinc'       # XXX -nostdlib
194
195 # used to compile and install 'make' in temporary build tree
196 IBMAKE= ${BMAKEENV} ${MAKE} DESTDIR=${WORLDTMP}
197 # bootstrap make
198 BMAKE=  ${BMAKEENV} ${WORLDTMP}/usr/bin/${MAKE} DESTDIR=${WORLDTMP}
199 # cross make used for compilation
200 XMAKE=  ${XMAKEENV} ${WORLDTMP}/usr/bin/${MAKE} DESTDIR=${WORLDTMP}
201 # cross make used for final installation
202 IXMAKE= ${XMAKEENV} ${WORLDTMP}/usr/bin/${MAKE}
203
204 #
205 # buildworld
206 #
207 # Attempt to rebuild the entire system, with reasonable chance of
208 # success, regardless of how old your existing system is.
209 #
210 buildworld:
211 .if !defined(NOCLEAN)
212         @echo
213         @echo "--------------------------------------------------------------"
214         @echo " Cleaning up the temporary build tree"
215         @echo "--------------------------------------------------------------"
216         mkdir -p ${WORLDTMP}
217         chflags -R noschg ${WORLDTMP}/
218         rm -rf ${WORLDTMP}
219 .endif
220         @echo
221         @echo "--------------------------------------------------------------"
222         @echo " Making make"
223         @echo "--------------------------------------------------------------"
224         mkdir -p ${WORLDTMP}/usr/bin
225         cd ${.CURDIR}/usr.bin/make && \
226                 ${IBMAKE} -I${.CURDIR}/share/mk \
227                         ${OBJDIR} clean cleandepend depend && \
228                 ${IBMAKE} -I${.CURDIR}/share/mk ${MK_FLAGS} \
229                         all install clean cleandepend
230         @echo
231         @echo "--------------------------------------------------------------"
232         @echo " Making hierarchy"
233         @echo "--------------------------------------------------------------"
234         cd ${.CURDIR} && ${BMAKE} hierarchy
235 .if !defined(NOCLEAN)
236         @echo
237         @echo "--------------------------------------------------------------"
238         @echo " Cleaning up the obj tree"
239         @echo "--------------------------------------------------------------"
240         cd ${.CURDIR} && ${BMAKE} ${CLEANDIR}
241 .endif
242 .if !defined(NOOBJDIR)
243         @echo
244         @echo "--------------------------------------------------------------"
245         @echo " Rebuilding the obj tree"
246         @echo "--------------------------------------------------------------"
247         cd ${.CURDIR} && ${BMAKE} obj
248 .endif
249         @echo
250         @echo "--------------------------------------------------------------"
251         @echo " Rebuilding bootstrap tools"
252         @echo "--------------------------------------------------------------"
253         cd ${.CURDIR} && ${BMAKE} bootstrap
254         @echo
255         @echo "--------------------------------------------------------------"
256         @echo " Rebuilding tools necessary to build the include files"
257         @echo "--------------------------------------------------------------"
258         cd ${.CURDIR} && ${BMAKE} include-tools
259         @echo
260         @echo "--------------------------------------------------------------"
261         @echo " Rebuilding /usr/include"
262         @echo "--------------------------------------------------------------"
263         cd ${.CURDIR} && ${BMAKE} includes
264         @echo
265         @echo "--------------------------------------------------------------"
266         @echo " Rebuilding tools needed to build the libraries"
267         @echo "--------------------------------------------------------------"
268         cd ${.CURDIR} && ${BMAKE} lib-tools
269         @echo
270         @echo "--------------------------------------------------------------"
271         @echo " Rebuilding /usr/lib"
272         @echo "--------------------------------------------------------------"
273         cd ${.CURDIR} && ${BMAKE} libraries
274         @echo
275         @echo "--------------------------------------------------------------"
276         @echo " Rebuilding all other tools needed to build the world"
277         @echo "--------------------------------------------------------------"
278         cd ${.CURDIR} && ${BMAKE} build-tools
279         @echo
280         @echo "--------------------------------------------------------------"
281         @echo " Rebuilding dependencies"
282         @echo "--------------------------------------------------------------"
283         cd ${.CURDIR} && ${XMAKE} depend
284         @echo
285         @echo "--------------------------------------------------------------"
286         @echo " Building everything.."
287         @echo "--------------------------------------------------------------"
288         cd ${.CURDIR} && ${XMAKE} all
289
290 #
291 # installworld
292 #
293 # Installs everything compiled by a 'buildworld'.
294 #
295 installworld:
296         cd ${.CURDIR} && ${IXMAKE} reinstall
297
298 #
299 # reinstall
300 #
301 # If you have a build server, you can NFS mount the source and obj directories
302 # and do a 'make reinstall' on the *client* to install new binaries from the
303 # most recent server build.
304 #
305 reinstall:
306         @echo "--------------------------------------------------------------"
307         @echo " Making hierarchy"
308         @echo "--------------------------------------------------------------"
309         cd ${.CURDIR} && ${MAKE} hierarchy
310         @echo
311         @echo "--------------------------------------------------------------"
312         @echo " Installing everything.."
313         @echo "--------------------------------------------------------------"
314         cd ${.CURDIR} && ${MAKE} install
315         @echo
316         @echo "--------------------------------------------------------------"
317         @echo " Rebuilding man page indexes"
318         @echo "--------------------------------------------------------------"
319         cd ${.CURDIR}/share/man && ${MAKE} makedb
320
321 #
322 # update
323 #
324 # Update the source tree, by running sup and/or running cvs to update to the
325 # latest copy.
326 #
327 update:
328 .if defined(SUP_UPDATE)
329         @echo "--------------------------------------------------------------"
330         @echo "Running sup"
331         @echo "--------------------------------------------------------------"
332         @${SUP} ${SUPFLAGS} ${SUPFILE}
333 .if defined(SUPFILE1)
334         @${SUP} ${SUPFLAGS} ${SUPFILE1}
335 .endif
336 .if defined(SUPFILE2)
337         @${SUP} ${SUPFLAGS} ${SUPFILE2}
338 .endif
339 .endif
340 .if defined(CVS_UPDATE)
341         @echo "--------------------------------------------------------------"
342         @echo "Updating /usr/src from cvs repository" ${CVSROOT}
343         @echo "--------------------------------------------------------------"
344         cd ${.CURDIR} && cvs -q update -P -d
345 .endif
346
347 #
348 # most
349 #
350 # Build most of the user binaries on the existing system libs and includes.
351 #
352 most:
353         @echo "--------------------------------------------------------------"
354         @echo " Building programs only"
355         @echo "--------------------------------------------------------------"
356         cd ${.CURDIR}/bin       &&      ${MAKE} all
357         cd ${.CURDIR}/sbin      &&      ${MAKE} all
358         cd ${.CURDIR}/libexec   &&      ${MAKE} all
359         cd ${.CURDIR}/usr.bin   &&      ${MAKE} all
360         cd ${.CURDIR}/usr.sbin  &&      ${MAKE} all
361         cd ${.CURDIR}/gnu/libexec &&    ${MAKE} all
362         cd ${.CURDIR}/gnu/usr.bin &&    ${MAKE} all
363         cd ${.CURDIR}/gnu/usr.sbin &&   ${MAKE} all
364 #.if defined(MAKE_EBONES) && !defined(NOCRYPT)
365 #       cd ${.CURDIR}/eBones    &&      ${MAKE} most
366 #.endif
367 #.if !defined(NOSECURE) && !defined(NOCRYPT)
368 #       cd ${.CURDIR}/secure    &&      ${MAKE} most
369 #.endif
370
371 #
372 # installmost
373 #
374 # Install the binaries built by the 'most' target.  This does not include
375 # libraries or include files.
376 #
377 installmost:
378         @echo "--------------------------------------------------------------"
379         @echo " Installing programs only"
380         @echo "--------------------------------------------------------------"
381         cd ${.CURDIR}/bin       &&      ${MAKE} install
382         cd ${.CURDIR}/sbin      &&      ${MAKE} install
383         cd ${.CURDIR}/libexec   &&      ${MAKE} install
384         cd ${.CURDIR}/usr.bin   &&      ${MAKE} install
385         cd ${.CURDIR}/usr.sbin  &&      ${MAKE} install
386         cd ${.CURDIR}/gnu/libexec &&    ${MAKE} install
387         cd ${.CURDIR}/gnu/usr.bin &&    ${MAKE} install
388         cd ${.CURDIR}/gnu/usr.sbin &&   ${MAKE} install
389 #.if defined(MAKE_EBONES) && !defined(NOCRYPT)
390 #       cd ${.CURDIR}/eBones    &&      ${MAKE} installmost
391 #.endif
392 #.if !defined(NOSECURE) && !defined(NOCRYPT)
393 #       cd ${.CURDIR}/secure    &&      ${MAKE} installmost
394 #.endif
395
396 #
397 # ------------------------------------------------------------------------
398 #
399 # From here onwards are utility targets used by the 'make world' and
400 # related targets.  If your 'world' breaks, you may like to try to fix
401 # the problem and manually run the following targets to attempt to
402 # complete the build.  Beware, this is *not* guaranteed to work, you
403 # need to have a pretty good grip on the current state of the system
404 # to attempt to manually finish it.  If in doubt, 'make world' again.
405 #
406
407 #
408 # heirarchy - ensure that all the needed directories are present
409 #
410 hierarchy:
411         cd ${.CURDIR}/etc &&            ${MAKE} distrib-dirs
412
413 #
414 # bootstrap - [re]build tools needed to run the actual build, this includes
415 # tools needed by 'make depend', as some tools are needed to generate source
416 # for the dependency information to be gathered from.
417 #
418 bootstrap:
419 .if defined(DESTDIR)
420         rm -f ${DESTDIR}/usr/src/sys
421         ln -s ${.CURDIR}/sys ${DESTDIR}/usr/src
422         cd ${.CURDIR}/include && find -dx . | cpio -dump ${DESTDIR}/usr/include
423         cd ${.CURDIR}/include && make symlinks
424 .endif
425         cd ${.CURDIR}/usr.bin/make && ${MAKE} depend && \
426                 ${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
427         cd ${.CURDIR}/usr.bin/xinstall && ${MAKE} depend && \
428                 ${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
429         cd ${.CURDIR}/usr.bin/lex && ${MAKE} bootstrap && ${MAKE} depend && \
430                 ${MAKE} ${MK_FLAGS} -DNOLIB all install ${CLEANDIR} ${OBJDIR}
431
432 #
433 # include-tools - generally the same as 'bootstrap', except that it's for
434 # things that are specifically needed to generate include files.
435 #
436 # XXX should be merged with bootstrap, it's not worth keeeping them separate.
437 # Well, maybe it is now.  We force 'cleandepend' here to avoid dependencies
438 # on cleaned away headers in ${WORLDTMP}.
439 #
440 include-tools:
441         cd ${.CURDIR}/usr.bin/rpcgen && ${MAKE} cleandepend depend && \
442                 ${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
443
444 #
445 # includes - possibly generate and install the include files.
446 #
447 includes:
448 .if defined(CLOBBER)
449         rm -rf ${DESTDIR}/usr/include/*
450         mtree -deU -f ${.CURDIR}/etc/mtree/BSD.include.dist \
451                 -p ${DESTDIR}/usr/include
452 .endif
453         cd ${.CURDIR}/include &&                ${MAKE} all installhdrs symlinks
454         cd ${.CURDIR}/gnu/include &&            ${MAKE} install
455         cd ${.CURDIR}/gnu/lib/libmp &&          ${MAKE} beforeinstall
456         cd ${.CURDIR}/gnu/lib/libobjc &&        ${MAKE} beforeinstall
457         cd ${.CURDIR}/gnu/lib/libreadline &&    ${MAKE} beforeinstall
458         cd ${.CURDIR}/gnu/lib/libregex &&       ${MAKE} beforeinstall
459         cd ${.CURDIR}/gnu/lib/libstdc++ &&      ${MAKE} beforeinstall
460         cd ${.CURDIR}/gnu/lib/libg++ &&         ${MAKE} beforeinstall
461         cd ${.CURDIR}/gnu/lib/libdialog &&      ${MAKE} beforeinstall
462         cd ${.CURDIR}/gnu/lib/libgmp &&         ${MAKE} beforeinstall
463 .if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES)
464         cd ${.CURDIR}/eBones/include &&         ${MAKE} beforeinstall
465         cd ${.CURDIR}/eBones/lib/libkrb &&      ${MAKE} beforeinstall
466         cd ${.CURDIR}/eBones/lib/libkadm &&     ${MAKE} beforeinstall
467 .endif
468         cd ${.CURDIR}/lib/csu/i386 &&           ${MAKE} beforeinstall
469         cd ${.CURDIR}/lib/libalias &&           ${MAKE} beforeinstall
470         cd ${.CURDIR}/lib/libc &&               ${MAKE} beforeinstall
471         cd ${.CURDIR}/lib/libcurses &&          ${MAKE} beforeinstall
472         cd ${.CURDIR}/lib/libdisk &&            ${MAKE} beforeinstall
473         cd ${.CURDIR}/lib/libedit &&            ${MAKE} beforeinstall
474         cd ${.CURDIR}/lib/libftpio &&           ${MAKE} beforeinstall
475         cd ${.CURDIR}/lib/libmd &&              ${MAKE} beforeinstall
476         cd ${.CURDIR}/lib/libmytinfo &&         ${MAKE} beforeinstall
477         cd ${.CURDIR}/lib/libncurses &&         ${MAKE} beforeinstall
478 .if !defined(WANT_CSRG_LIBM)
479         cd ${.CURDIR}/lib/msun &&               ${MAKE} beforeinstall
480 .endif
481         cd ${.CURDIR}/lib/libopie &&            ${MAKE} beforeinstall
482         cd ${.CURDIR}/lib/libpcap &&            ${MAKE} beforeinstall
483         cd ${.CURDIR}/lib/librpcsvc &&          ${MAKE} beforeinstall
484         cd ${.CURDIR}/lib/libskey &&            ${MAKE} beforeinstall
485 .if !defined(NOTCL) && exists (${.CURDIR}/contrib/tcl) && \
486         exists(${.CURDIR}/usr.bin/tclsh) && exists (${.CURDIR}/lib/libtcl)
487         cd ${.CURDIR}/lib/libtcl &&             ${MAKE} installhdrs
488 .endif
489         cd ${.CURDIR}/lib/libtermcap &&         ${MAKE} beforeinstall
490         cd ${.CURDIR}/lib/libcom_err &&         ${MAKE} beforeinstall
491         cd ${.CURDIR}/lib/libss &&              ${MAKE} beforeinstall
492         cd ${.CURDIR}/lib/libscsi &&            ${MAKE} beforeinstall
493         cd ${.CURDIR}/lib/libutil &&            ${MAKE} beforeinstall
494         cd ${.CURDIR}/lib/libvgl &&             ${MAKE} beforeinstall
495         cd ${.CURDIR}/lib/libz &&               ${MAKE} beforeinstall
496         cd ${.CURDIR}/usr.bin/f2c &&            ${MAKE} beforeinstall
497         cd ${.CURDIR}/usr.bin/lex &&            ${MAKE} beforeinstall
498
499 #
500 # lib-tools - build tools to compile and install the libraries.
501 #
502 # XXX gperf is required for cc
503 # XXX a new ld and tsort is required for cc
504 lib-tools:
505 .for d in                               \
506                 gnu/usr.bin/gperf       \
507                 gnu/usr.bin/ld          \
508                 usr.bin/tsort           \
509                 gnu/usr.bin/as          \
510                 gnu/usr.bin/bison       \
511                 gnu/usr.bin/cc          \
512                 usr.bin/ar              \
513                 usr.bin/compile_et      \
514                 usr.bin/lex/lib         \
515                 usr.bin/mk_cmds         \
516                 usr.bin/nm              \
517                 usr.bin/ranlib          \
518                 usr.bin/uudecode
519         cd ${.CURDIR}/$d && ${MAKE} depend && \
520                 ${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
521 .endfor
522
523 #
524 # libraries - build and install the libraries
525 #
526 libraries:
527 .if exists(lib/csu/i386)
528         cd ${.CURDIR}/lib/csu/i386 && ${MAKE} depend && \
529                 ${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
530 .endif
531 .if exists(lib/libcompat)
532         cd ${.CURDIR}/lib/libcompat && ${MAKE} depend && \
533                 ${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
534 .endif
535 .if exists(lib/libncurses)
536         cd ${.CURDIR}/lib/libncurses && ${MAKE} depend && \
537                 ${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
538 .endif
539 .if exists(lib/libtermcap)
540         cd ${.CURDIR}/lib/libtermcap && ${MAKE} depend && \
541                 ${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
542 .endif
543 .if exists(gnu)
544         cd ${.CURDIR}/gnu/lib && ${MAKE} depend && \
545                 ${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
546 .endif
547 .if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE)
548         cd ${.CURDIR}/secure/lib && ${MAKE} depend && \
549                 ${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
550 .endif
551 .if exists(lib)
552         cd ${.CURDIR}/lib && ${MAKE} depend && \
553                 ${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
554 .endif
555 .if exists(usr.bin/lex/lib)
556         cd ${.CURDIR}/usr.bin/lex/lib && ${MAKE} depend && \
557                 ${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
558 .endif
559 .if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES)
560         cd ${.CURDIR}/eBones/lib && ${MAKE} depend && \
561                 ${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
562 .endif
563 .if exists(usr.sbin/pcvt/keycap)
564         cd ${.CURDIR}/usr.sbin/pcvt/keycap && ${MAKE} depend && \
565                 ${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
566 .endif
567
568 #
569 # build-tools - build and install any other tools needed to complete the
570 # compile and install.
571 # ifdef stale
572 # bc and cpp are required to build groff.  Otherwise, the order here is
573 # mostly historical, i.e., bogus.
574 # chmod is used to build gcc's tmpmultilib[2] at obscure times.
575 # endif stale
576 # XXX uname is a bug - the target should not depend on the host.
577 #
578 build-tools:
579 .for d in                               \
580                 bin/cat                 \
581                 bin/chmod               \
582                 bin/cp                  \
583                 bin/date                \
584                 bin/dd                  \
585                 bin/echo                \
586                 bin/expr                \
587                 bin/hostname            \
588                 bin/ln                  \
589                 bin/ls                  \
590                 bin/mkdir               \
591                 bin/mv                  \
592                 bin/rm                  \
593                 bin/sh                  \
594                 bin/test                \
595                 gnu/usr.bin/awk         \
596                 gnu/usr.bin/bc          \
597                 gnu/usr.bin/grep        \
598                 gnu/usr.bin/groff       \
599                 gnu/usr.bin/gzip        \
600                 gnu/usr.bin/man/makewhatis      \
601                 gnu/usr.bin/sort        \
602                 gnu/usr.bin/texinfo     \
603                 share/info              \
604                 usr.bin/basename        \
605                 usr.bin/cap_mkdb        \
606                 usr.bin/chflags         \
607                 usr.bin/cmp             \
608                 usr.bin/col             \
609                 usr.bin/cpp             \
610                 usr.bin/expand          \
611                 usr.bin/file2c          \
612                 usr.bin/find            \
613                 usr.bin/gencat          \
614                 usr.bin/lorder          \
615                 usr.bin/m4              \
616                 usr.bin/mkdep           \
617                 usr.bin/paste           \
618                 usr.bin/sed             \
619                 usr.bin/size            \
620                 usr.bin/soelim          \
621                 usr.bin/strip           \
622                 usr.bin/symorder        \
623                 usr.bin/touch           \
624                 usr.bin/tr              \
625                 usr.bin/true            \
626                 usr.bin/uname           \
627                 usr.bin/uuencode        \
628                 usr.bin/vgrind          \
629                 usr.bin/vi              \
630                 usr.bin/wc              \
631                 usr.bin/yacc            \
632                 usr.sbin/chown          \
633                 usr.sbin/mtree          \
634                 usr.sbin/zic
635         cd ${.CURDIR}/$d && ${MAKE} depend && \
636                 ${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
637 .endfor
638
639 .include <bsd.subdir.mk>