Makefile revision 21586
1130803Smarcel#
2130803Smarcel#	$Id: Makefile,v 1.113 1997/01/11 10:53:01 jmacd Exp $
3130803Smarcel#
4130803Smarcel# Make command line options:
5130803Smarcel#	-DCLOBBER will remove /usr/include
6130803Smarcel#	-DMAKE_LOCAL to add ./local to the SUBDIR list
7130803Smarcel#	-DMAKE_PORTS to add ./ports to the SUBDIR list
8130803Smarcel#	-DMAKE_EBONES to build eBones (KerberosIV)
9130803Smarcel#	-DALLLANG to build documentation for all languages
10130803Smarcel#	  (where available -- see share/doc/Makefile)
11130803Smarcel#
12130803Smarcel#	-DNOCLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir
13130803Smarcel#	-DNOCLEAN do not clean at all
14130803Smarcel#	-DNOCRYPT will prevent building of crypt versions
15130803Smarcel#	-DNOLKM do not build loadable kernel modules
16130803Smarcel#	-DNOOBJDIR do not run ``${MAKE} obj''
17130803Smarcel#	-DNOPROFILE do not build profiled libraries
18130803Smarcel#	-DNOSECURE do not go into secure subdir
19130803Smarcel#	-DNOGAMES do not go into games subdir
20130803Smarcel#	-DNOSHARE do not go into share subdir
21130803Smarcel#       -DNOINFO do not make or install info files
22130803Smarcel
23130803Smarcel#
24130803Smarcel# The intended user-driven targets are:
25130803Smarcel# world       - rebuild *everything*, including glue to help do upgrades.
26130803Smarcel# reinstall   - use an existing (eg: NFS mounted) build to do an update.
27130803Smarcel# update      - convenient way to update your source tree (eg: sup/cvs)
28130803Smarcel# most        - build user commands, no libraries or include files
29130803Smarcel# installmost - install user commands, no libraries or include files
30130803Smarcel#
31130803Smarcel# Standard targets (not defined here) are documented in the makefiles in
32130803Smarcel# /usr/share/mk.  These include:
33130803Smarcel#		obj depend all install clean cleandepend cleanobj
34130803Smarcel
35130803Smarcel
36130803Smarcel# Put initial settings here.
37130803SmarcelSUBDIR=
38130803Smarcel
39130803Smarcel# We must do include and lib first so that the perl *.ph generation
40130803Smarcel# works correctly as it uses the header files installed by this.
41130803Smarcel.if exists(include)
42130803SmarcelSUBDIR+= include
43130803Smarcel.endif
44130803Smarcel.if exists(lib)
45130803SmarcelSUBDIR+= lib
46130803Smarcel.endif
47130803Smarcel
48130803Smarcel.if exists(bin)
49130803SmarcelSUBDIR+= bin
50130803Smarcel.endif
51130803Smarcel.if exists(games) && !defined(NOGAMES)
52130803SmarcelSUBDIR+= games
53130803Smarcel.endif
54130803Smarcel.if exists(gnu)
55130803SmarcelSUBDIR+= gnu
56130803Smarcel.endif
57130803Smarcel.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES)
58130803SmarcelSUBDIR+= eBones
59130803Smarcel.endif
60130803Smarcel.if exists(libexec)
61130803SmarcelSUBDIR+= libexec
62130803Smarcel.endif
63130803Smarcel.if exists(sbin)
64130803SmarcelSUBDIR+= sbin
65130803Smarcel.endif
66130803Smarcel.if exists(share) && !defined(NOSHARE)
67130803SmarcelSUBDIR+= share
68130803Smarcel.endif
69130803Smarcel.if exists(sys)
70130803SmarcelSUBDIR+= sys
71130803Smarcel.endif
72130803Smarcel.if exists(usr.bin)
73130803SmarcelSUBDIR+= usr.bin
74130803Smarcel.endif
75130803Smarcel.if exists(usr.sbin)
76130803SmarcelSUBDIR+= usr.sbin
77130803Smarcel.endif
78130803Smarcel.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE)
79130803SmarcelSUBDIR+= secure
80130803Smarcel.endif
81130803Smarcel.if exists(lkm) && !defined(NOLKM)
82130803SmarcelSUBDIR+= lkm
83130803Smarcel.endif
84130803Smarcel
85130803Smarcel# etc must be last for "distribute" to work
86130803Smarcel.if exists(etc) && make(distribute)
87130803SmarcelSUBDIR+= etc
88130803Smarcel.endif
89130803Smarcel
90130803Smarcel# These are last, since it is nice to at least get the base system
91130803Smarcel# rebuilt before you do them.
92130803Smarcel.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile)
93130803SmarcelSUBDIR+= local
94130803Smarcel.endif
95130803Smarcel.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile)
96130803SmarcelSUBDIR+= ports
97130803Smarcel.endif
98130803Smarcel
99130803Smarcel# Handle -DNOOBJDIR, -DNOCLEAN and -DNOCLEANDIR
100130803Smarcel.if defined(NOOBJDIR)
101130803SmarcelOBJDIR=
102130803Smarcel.else
103130803SmarcelOBJDIR=		obj
104130803Smarcel.endif
105130803Smarcel
106130803Smarcel.if defined(NOCLEAN)
107130803SmarcelCLEANDIR=
108130803Smarcel.else
109130803Smarcel.if defined(NOCLEANDIR)
110CLEANDIR=	clean
111.else
112CLEANDIR=	cleandir
113.endif
114.endif
115
116SUP?=           sup
117SUPFLAGS?=      -v
118
119#
120# While building tools for bootstrapping, we dont need to waste time on
121# profiled libraries or man pages.  This speeds things up somewhat.
122#
123MK_FLAGS=	-DNOINFO -DNOMAN -DNOPROFILE
124
125#
126# world
127#
128# Attempt to rebuild and reinstall *everything*, with reasonable chance of
129# success, regardless of how old your existing system is.
130#
131# >> Beware, it overwrites the local build environment! <<
132#
133world:
134	@echo "--------------------------------------------------------------"
135	@echo "make world started on `LC_TIME=C date`"
136	@echo "--------------------------------------------------------------"
137.if target(pre-world)
138	@echo "--------------------------------------------------------------"
139	@echo " Making 'pre-world' target"
140	@echo "--------------------------------------------------------------"
141	cd ${.CURDIR} && ${MAKE} pre-world
142	@echo
143.endif
144	@echo "--------------------------------------------------------------"
145	@echo " Making hierarchy"
146	@echo "--------------------------------------------------------------"
147	cd ${.CURDIR} && ${MAKE} hierarchy
148	@echo
149	@echo "--------------------------------------------------------------"
150	@echo " Rebuilding /usr/share/mk"
151	@echo "--------------------------------------------------------------"
152	cd ${.CURDIR} && ${MAKE} mk
153	@echo
154	@echo "--------------------------------------------------------------"
155	@echo " Cleaning up the source tree"
156	@echo "--------------------------------------------------------------"
157.if defined(NOCLEAN)
158	@echo "Not cleaning anything! I sure hope you know what you are doing!"
159.else
160	cd ${.CURDIR} && ${MAKE} ${CLEANDIR}
161.endif
162	@echo
163.if !defined(NOOBJDIR)
164	@echo "--------------------------------------------------------------"
165	@echo " Rebuilding the obj tree"
166	@echo "--------------------------------------------------------------"
167	cd ${.CURDIR} && ${MAKE} obj
168	@echo
169.endif
170	@echo "--------------------------------------------------------------"
171	@echo " Rebuilding bootstrap tools"
172	@echo "--------------------------------------------------------------"
173	cd ${.CURDIR} && ${MAKE} bootstrap
174	@echo
175	@echo "--------------------------------------------------------------"
176	@echo " Rebuilding tools necessary to build the include files"
177	@echo "--------------------------------------------------------------"
178	cd ${.CURDIR} && ${MAKE} include-tools
179	@echo
180	@echo "--------------------------------------------------------------"
181	@echo " Rebuilding /usr/include"
182	@echo "--------------------------------------------------------------"
183	cd ${.CURDIR} && ${MAKE} includes
184	@echo
185	@echo "--------------------------------------------------------------"
186	@echo " Rebuilding tools needed to build the libraries"
187	@echo "--------------------------------------------------------------"
188	cd ${.CURDIR} && ${MAKE} lib-tools
189	@echo
190	@echo "--------------------------------------------------------------"
191	@echo " Rebuilding /usr/lib"
192	@echo "--------------------------------------------------------------"
193	cd ${.CURDIR} && ${MAKE} libraries
194	@echo
195	@echo "--------------------------------------------------------------"
196	@echo " Rebuilding sgml tools, symorder, groff and zic(8)"
197	@echo "--------------------------------------------------------------"
198	cd ${.CURDIR} && ${MAKE} build-tools
199	@echo
200	@echo "--------------------------------------------------------------"
201	@echo " Rebuilding dependencies"
202	@echo "--------------------------------------------------------------"
203	cd ${.CURDIR} && ${MAKE} depend
204	@echo
205	@echo "--------------------------------------------------------------"
206	@echo " Building everything.."
207	@echo "--------------------------------------------------------------"
208	cd ${.CURDIR} && ${MAKE} all
209	@echo
210	@echo "--------------------------------------------------------------"
211	@echo " Installing everything.."
212	@echo "--------------------------------------------------------------"
213	cd ${.CURDIR} && ${MAKE} install
214	@echo
215	@echo "--------------------------------------------------------------"
216	@echo " Rebuilding man page indexes"
217	@echo "--------------------------------------------------------------"
218	cd ${.CURDIR}/share/man && ${MAKE} makedb
219.if target(post-world)
220	@echo
221	@echo "--------------------------------------------------------------"
222	@echo " Making 'post-world' target"
223	@echo "--------------------------------------------------------------"
224	cd ${.CURDIR} && ${MAKE} post-world
225.endif
226	@echo
227	@echo "--------------------------------------------------------------"
228	@echo "make world completed on `LC_TIME=C date`"
229	@echo "--------------------------------------------------------------"
230
231#
232# reinstall
233#
234# If you have a build server, you can NFS mount the source and obj directories
235# and do a 'make reinstall' on the *client* to install new binaries from the
236# most recent server build.
237#
238reinstall:
239	@echo "--------------------------------------------------------------"
240	@echo " Making hierarchy"
241	@echo "--------------------------------------------------------------"
242	cd ${.CURDIR} && ${MAKE} hierarchy
243	@echo
244	@echo "--------------------------------------------------------------"
245	@echo " Rebuilding /usr/share/mk"
246	@echo "--------------------------------------------------------------"
247	cd ${.CURDIR} && ${MAKE} mk
248	@echo
249	@echo "--------------------------------------------------------------"
250	@echo " Installing everything.."
251	@echo "--------------------------------------------------------------"
252	cd ${.CURDIR} && ${MAKE} install
253	@echo
254	@echo "--------------------------------------------------------------"
255	@echo " Rebuilding man page indexes"
256	@echo "--------------------------------------------------------------"
257	cd ${.CURDIR}/share/man && ${MAKE} makedb
258
259
260#
261# update
262#
263# Update the source tree, by running sup and/or running cvs to update to the
264# latest copy.
265#
266update:
267.if defined(SUP_UPDATE)
268	@echo "--------------------------------------------------------------"
269	@echo "Running sup"
270	@echo "--------------------------------------------------------------"
271	@${SUP} ${SUPFLAGS} ${SUPFILE}
272.if defined(SUPFILE1)
273	@${SUP} ${SUPFLAGS} ${SUPFILE1}
274.endif
275.if defined(SUPFILE2)
276	@${SUP} ${SUPFLAGS} ${SUPFILE2}
277.endif
278.endif
279.if defined(CVS_UPDATE)
280	@echo "--------------------------------------------------------------"
281	@echo "Updating /usr/src from cvs repository" ${CVSROOT}
282	@echo "--------------------------------------------------------------"
283	cd ${.CURDIR} &&  cvs -q update -P -d
284.endif
285
286
287#
288# most
289#
290# Build most of the user binaries on the existing system libs and includes.
291#
292most:
293	@echo "--------------------------------------------------------------"
294	@echo " Building programs only"
295	@echo "--------------------------------------------------------------"
296	cd ${.CURDIR}/bin	&&	${MAKE} ${.MAKEFLAGS} all
297	cd ${.CURDIR}/sbin	&&	${MAKE} ${.MAKEFLAGS} all
298	cd ${.CURDIR}/libexec	&&	${MAKE} ${.MAKEFLAGS} all
299	cd ${.CURDIR}/usr.bin	&&	${MAKE} ${.MAKEFLAGS} all
300	cd ${.CURDIR}/usr.sbin	&&	${MAKE} ${.MAKEFLAGS} all
301	cd ${.CURDIR}/gnu/libexec &&	${MAKE} ${.MAKEFLAGS} all
302	cd ${.CURDIR}/gnu/usr.bin &&	${MAKE} ${.MAKEFLAGS} all
303	cd ${.CURDIR}/gnu/usr.sbin &&	${MAKE} ${.MAKEFLAGS} all
304#.if defined(MAKE_EBONES) && !defined(NOCRYPT)
305#	cd ${.CURDIR}/eBones	&&	${MAKE} ${.MAKEFLAGS} most
306#.endif
307#.if !defined(NOSECURE) && !defined(NOCRYPT)
308#	cd ${.CURDIR}/secure	&&	${MAKE} ${.MAKEFLAGS} most
309#.endif
310
311#
312# installmost
313#
314# Install the binaries built by the 'most' target.  This does not include
315# libraries or include files.
316#
317installmost:
318	@echo "--------------------------------------------------------------"
319	@echo " Installing programs only"
320	@echo "--------------------------------------------------------------"
321	cd ${.CURDIR}/bin	&&	${MAKE} ${.MAKEFLAGS} install
322	cd ${.CURDIR}/sbin	&&	${MAKE} ${.MAKEFLAGS} install
323	cd ${.CURDIR}/libexec	&&	${MAKE} ${.MAKEFLAGS} install
324	cd ${.CURDIR}/usr.bin	&&	${MAKE} ${.MAKEFLAGS} install
325	cd ${.CURDIR}/usr.sbin	&&	${MAKE} ${.MAKEFLAGS} install
326	cd ${.CURDIR}/gnu/libexec &&	${MAKE} ${.MAKEFLAGS} install
327	cd ${.CURDIR}/gnu/usr.bin &&	${MAKE} ${.MAKEFLAGS} install
328	cd ${.CURDIR}/gnu/usr.sbin &&	${MAKE} ${.MAKEFLAGS} install
329#.if defined(MAKE_EBONES) && !defined(NOCRYPT)
330#	cd ${.CURDIR}/eBones	&&	${MAKE} ${.MAKEFLAGS} installmost
331#.endif
332#.if !defined(NOSECURE) && !defined(NOCRYPT)
333#	cd ${.CURDIR}/secure	&&	${MAKE} ${.MAKEFLAGS} installmost
334#.endif
335
336#
337# ------------------------------------------------------------------------
338#
339# From here onwards are utility targets used by the 'make world' and
340# related targets.  If your 'world' breaks, you may like to try to fix
341# the problem and manually run the following targets to attempt to
342# complete the build.  Beware, this is *not* guaranteed to work, you
343# need to have a pretty good grip on the current state of the system
344# to attempt to manually finish it.  If in doubt, 'make world' again.
345#
346
347#
348# heirarchy - ensure that all the needed directories are present
349#
350hierarchy:
351	cd ${.CURDIR}/etc &&		${MAKE} distrib-dirs
352
353#
354# mk - update the /usr/share/mk makefiles.
355#
356mk:
357	cd ${.CURDIR}/share/mk &&	${MAKE} install
358
359#
360# bootstrap - [re]build tools needed to run the actual build, this includes
361# tools needed by 'make depend', as some tools are needed to generate source
362# for the dependency information to be gathered from.
363#
364bootstrap:
365	cd ${.CURDIR}/usr.bin/make && ${MAKE} depend && \
366		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
367	cd ${.CURDIR}/usr.bin/xinstall && ${MAKE} depend && \
368		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
369	cd ${.CURDIR}/usr.bin/lex && ${MAKE} bootstrap && ${MAKE} depend && \
370		${MAKE} ${MK_FLAGS} -DNOLIB all install ${CLEANDIR} ${OBJDIR}
371
372#
373# include-tools - generally the same as 'bootstrap', except that it's for
374# things that are specifically needed to generate include files.
375#
376# XXX should be merged with bootstrap, it's not worth keeeping them seperate
377#
378include-tools:
379	cd ${.CURDIR}/usr.bin/rpcgen && ${MAKE} depend && \
380		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
381
382#
383# includes - possibly generate and install the include files.
384#
385includes:
386.if defined(CLOBBER)
387	rm -rf ${DESTDIR}/usr/include/*
388	mtree -deU -f ${.CURDIR}/etc/mtree/BSD.include.dist \
389		-p ${DESTDIR}/usr/include
390.endif
391	cd ${.CURDIR}/include/rpcsvc &&		${MAKE} all
392	cd ${.CURDIR}/include &&		${MAKE} install
393	cd ${.CURDIR}/gnu/include &&		${MAKE} install
394	cd ${.CURDIR}/gnu/lib/libreadline &&	${MAKE} beforeinstall
395	cd ${.CURDIR}/gnu/lib/libregex &&	${MAKE} beforeinstall
396	cd ${.CURDIR}/gnu/lib/libstdc++ &&      ${MAKE} beforeinstall
397	cd ${.CURDIR}/gnu/lib/libg++ &&         ${MAKE} beforeinstall
398	cd ${.CURDIR}/gnu/lib/libdialog &&      ${MAKE} beforeinstall
399.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES)
400	cd ${.CURDIR}/eBones/include &&		${MAKE} beforeinstall
401	cd ${.CURDIR}/eBones/lib/libkrb &&	${MAKE} beforeinstall
402	cd ${.CURDIR}/eBones/lib/libkadm &&	${MAKE} beforeinstall
403.endif
404	cd ${.CURDIR}/lib/libc &&		${MAKE} beforeinstall
405	cd ${.CURDIR}/lib/libcurses &&		${MAKE} beforeinstall
406	cd ${.CURDIR}/lib/libedit &&		${MAKE} beforeinstall
407	cd ${.CURDIR}/lib/libftpio &&		${MAKE} beforeinstall
408	cd ${.CURDIR}/lib/libmd &&		${MAKE} beforeinstall
409	cd ${.CURDIR}/lib/libmytinfo &&         ${MAKE} beforeinstall
410	cd ${.CURDIR}/lib/libncurses &&		${MAKE} beforeinstall
411.if !defined(WANT_CSRG_LIBM)
412	cd ${.CURDIR}/lib/msun &&		${MAKE} beforeinstall
413.endif
414	cd ${.CURDIR}/lib/libpcap &&		${MAKE} beforeinstall
415	cd ${.CURDIR}/lib/librpcsvc &&		${MAKE} beforeinstall
416	cd ${.CURDIR}/lib/libskey &&		${MAKE} beforeinstall
417	cd ${.CURDIR}/lib/libtcl &&		${MAKE} beforeinstall
418	cd ${.CURDIR}/lib/libtermcap &&		${MAKE} beforeinstall
419	cd ${.CURDIR}/lib/libcom_err &&		${MAKE} beforeinstall
420	cd ${.CURDIR}/lib/libss &&		${MAKE} beforeinstall
421	cd ${.CURDIR}/lib/libscsi &&		${MAKE} beforeinstall
422	cd ${.CURDIR}/lib/libutil &&		${MAKE} beforeinstall
423
424#
425# lib-tools - build tools to compile and install the libraries.
426#
427lib-tools:
428	cd ${.CURDIR}/usr.bin/tsort && ${MAKE} depend && \
429		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
430	cd ${.CURDIR}/gnu/usr.bin/ld && ${MAKE} depend && \
431		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
432	cd ${.CURDIR}/gnu/usr.bin/as && ${MAKE} depend && \
433		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
434	cd ${.CURDIR}/usr.bin/ar && ${MAKE} depend && \
435		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
436	cd ${.CURDIR}/usr.bin/ranlib && ${MAKE} depend && \
437		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
438	cd ${.CURDIR}/usr.bin/nm && ${MAKE} depend && \
439		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
440	cd ${.CURDIR}/usr.bin/lex/lib && ${MAKE} depend && \
441		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
442	cd ${.CURDIR}/usr.bin/compile_et && ${MAKE} depend && \
443		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR} && \
444		rm -f /usr/sbin/compile_et
445	cd ${.CURDIR}/usr.bin/mk_cmds && ${MAKE} depend && \
446		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
447	cd ${.CURDIR}/gnu/usr.bin/bison && ${MAKE} depend && \
448		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
449	cd ${.CURDIR}/gnu/usr.bin/gperf && ${MAKE} depend && \
450		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
451	cd ${.CURDIR}/gnu/usr.bin/cc && ${MAKE} depend && \
452		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
453
454#
455# libraries - build and install the libraries
456#
457libraries:
458.if exists(lib/libcompat)
459	cd ${.CURDIR}/lib/libcompat && ${MAKE} depend && \
460		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
461.endif
462.if exists(lib/libncurses)
463	cd ${.CURDIR}/lib/libncurses && ${MAKE} depend && \
464		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
465.endif
466.if exists(lib/libtermcap)
467	cd ${.CURDIR}/lib/libtermcap && ${MAKE} depend && \
468		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
469.endif
470.if exists(lib)
471	cd ${.CURDIR}/lib/csu/i386 && ${MAKE} depend && \
472		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
473.endif
474.if exists(gnu)
475	cd ${.CURDIR}/gnu/lib && ${MAKE} depend && \
476		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
477.endif
478.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE)
479	cd ${.CURDIR}/secure/lib && ${MAKE} depend && \
480		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
481.endif
482.if exists(lib)
483	cd ${.CURDIR}/lib && ${MAKE} depend && \
484		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
485.endif
486.if exists(usr.bin/lex/lib)
487	cd ${.CURDIR}/usr.bin/lex/lib && ${MAKE} depend && \
488		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
489.endif
490.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES)
491	cd ${.CURDIR}/eBones/lib && ${MAKE} depend && \
492		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
493.endif
494.if exists(usr.sbin/pcvt/keycap)
495	cd ${.CURDIR}/usr.sbin/pcvt/keycap && ${MAKE} depend && \
496		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
497.endif
498
499#
500# build-tools - build and install any other tools needed to complete the
501# compile and install.
502#
503build-tools:
504.for d in				\
505		gnu/usr.bin/texinfo     \
506		usr.bin/symorder	\
507		usr.bin/sgmls		\
508		usr.bin/sgmlfmt		\
509		share/sgml		\
510		usr.sbin/zic		\
511		gnu/usr.bin/awk		\
512		gnu/usr.bin/groff
513	cd ${.CURDIR}/$d && ${MAKE} depend && \
514		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
515.endfor
516
517.include <bsd.subdir.mk>
518