Makefile revision 16591
1169689Skan#
2169689Skan#	$Id: Makefile,v 1.83 1996/06/20 18:47:04 jkh Exp $
3169689Skan#
4169689Skan# Make command line options:
5169689Skan#	-DCLOBBER will remove /usr/include
6169689Skan#	-DMAKE_LOCAL to add ./local to the SUBDIR list
7169689Skan#	-DMAKE_PORTS to add ./ports to the SUBDIR list
8169689Skan#	-DMAKE_EBONES to build eBones (KerberosIV)
9169689Skan#
10169689Skan#	-DNOCLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir
11169689Skan#	-DNOCLEAN do not clean at all
12169689Skan#	-DNOCRYPT will prevent building of crypt versions
13169689Skan#	-DNOLKM do not build loadable kernel modules
14169689Skan#	-DNOOBJDIR do not run ``${MAKE} obj''
15169689Skan#	-DNOPROFILE do not build profiled libraries
16169689Skan#	-DNOSECURE do not go into secure subdir
17169689Skan
18169689Skan# Put initial settings here.
19169689SkanSUBDIR=
20169689Skan
21169689Skan# We must do include and lib first so that the perl *.ph generation
22169689Skan# works correctly as it uses the header files installed by this.
23169689Skan.if exists(include)
24169689SkanSUBDIR+= include
25169689Skan.endif
26169689Skan.if exists(lib)
27169689SkanSUBDIR+= lib
28169689Skan.endif
29169689Skan
30169689Skan.if exists(bin)
31169689SkanSUBDIR+= bin
32169689Skan.endif
33169689Skan.if exists(contrib)
34169689SkanSUBDIR+= contrib
35169689Skan.endif
36169689Skan.if exists(games)
37169689SkanSUBDIR+= games
38169689Skan.endif
39169689Skan.if exists(gnu)
40169689SkanSUBDIR+= gnu
41169689Skan.endif
42169689Skan.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES)
43169689SkanSUBDIR+= eBones
44169689Skan.endif
45169689Skan.if exists(libexec)
46169689SkanSUBDIR+= libexec
47169689Skan.endif
48169689Skan.if exists(sbin)
49169689SkanSUBDIR+= sbin
50169689Skan.endif
51169689Skan.if exists(share)
52169689SkanSUBDIR+= share
53169689Skan.endif
54169689Skan.if exists(sys)
55169689SkanSUBDIR+= sys
56169689Skan.endif
57169689Skan.if exists(usr.bin)
58169689SkanSUBDIR+= usr.bin
59169689Skan.endif
60169689Skan.if exists(usr.sbin)
61169689SkanSUBDIR+= usr.sbin
62169689Skan.endif
63169689Skan.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE)
64169689SkanSUBDIR+= secure
65169689Skan.endif
66169689Skan.if exists(lkm) && !defined(NOLKM)
67169689SkanSUBDIR+= lkm
68169689Skan.endif
69169689Skan
70169689Skan# etc must be last for "distribute" to work
71169689Skan.if exists(etc) && make(distribute)
72169689SkanSUBDIR+= etc
73169689Skan.endif
74169689Skan
75169689Skan# These are last, since it is nice to at least get the base system
76169689Skan# rebuilt before you do them.
77169689Skan.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile)
78169689SkanSUBDIR+= local
79169689Skan.endif
80169689Skan.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile)
81169689SkanSUBDIR+= ports
82169689Skan.endif
83169689Skan
84169689Skan# Handle the -DNOOBJDIR and -DNOCLEANDIR
85169689Skan.if defined(NOOBJDIR)
86169689SkanOBJDIR=
87169689Skan.else
88169689SkanOBJDIR=		obj
89169689Skan.endif
90169689Skan
91169689Skan.if defined(NOCLEAN)
92169689SkanCLEANDIR=
93169689SkanWORLD_CLEANDIST=obj
94169689Skan.else
95169689SkanWORLD_CLEANDIST=cleandist
96169689Skan.if defined(NOCLEANDIR)
97169689SkanCLEANDIR=	clean
98169689Skan.else
99169689SkanCLEANDIR=	cleandir
100169689Skan.endif
101169689Skan.endif
102169689Skan
103169689SkanMK_FLAGS=	-DNOMAN -DNOPROFILE
104169689Skan
105169689Skan.if !target(pre-world)
106169689Skanpre-world:
107169689Skan	@/usr/bin/true
108169689Skan.endif
109169689Skan
110169689Skanworld:	pre-world hierarchy mk $(WORLD_CLEANDIST) bootstrap include-tools includes lib-tools libraries build-tools
111169689Skan	@echo "--------------------------------------------------------------"
112169689Skan	@echo " Rebuilding ${DESTDIR} The whole thing"
113169689Skan	@echo "--------------------------------------------------------------"
114169689Skan	@echo
115169689Skan	${MAKE} depend all install
116169689Skan	cd ${.CURDIR}/share/man &&		${MAKE} makedb
117169689Skan.if target(post-world)
118169689Skan	cd ${.CURDIR} && ${MAKE} post-world
119169689Skan.endif
120169689Skan	@echo "make world completed on `date`"
121169689Skan
122169689Skanbootstrap:
123169689Skan	cd ${.CURDIR}/usr.bin/xlint && ${MAKE} ${MK_FLAGS} lint1 lint2 xlint
124169689Skan	cd ${.CURDIR}/usr.bin/xlint/lint1 && ${MAKE} ${MK_FLAGS} install
125169689Skan	cd ${.CURDIR}/usr.bin/xlint/lint2 && ${MAKE} ${MK_FLAGS} install
126169689Skan	cd ${.CURDIR}/usr.bin/xlint/xlint && ${MAKE} ${MK_FLAGS} install
127169689Skan	cd ${.CURDIR}/usr.bin/lex && ${MAKE} ${MK_FLAGS} bootstrap && \
128169689Skan		${MAKE} ${MK_FLAGS} all install
129169689Skan
130169689Skanreinstall:	hierarchy mk includes
131169689Skan	@echo "--------------------------------------------------------------"
132169689Skan	@echo " Reinstall ${DESTDIR} The whole thing"
133169689Skan	@echo "--------------------------------------------------------------"
134169689Skan	@echo
135169689Skan	${MAKE} install
136169689Skan	cd ${.CURDIR}/share/man &&		${MAKE} makedb
137169689Skan
138169689Skanhierarchy:
139169689Skan	@echo "--------------------------------------------------------------"
140169689Skan	@echo " Making hierarchy"
141169689Skan	@echo "--------------------------------------------------------------"
142169689Skan	cd ${.CURDIR}/etc &&		${MAKE} distrib-dirs
143169689Skan
144169689Skanupdate:
145169689Skan.if defined(SUP_UPDATE)
146169689Skan	@echo "--------------------------------------------------------------"
147169689Skan	@echo "Running sup"
148169689Skan	@echo "--------------------------------------------------------------"
149169689Skan	@sup -v ${SUPFILE}
150169689Skan.if defined(SUPFILE1)
151169689Skan	@sup -v ${SUPFILE1}
152169689Skan.endif
153169689Skan.if defined(SUPFILE2)
154169689Skan	@sup -v ${SUPFILE2}
155169689Skan.endif
156169689Skan.endif
157169689Skan.if defined(CVS_UPDATE)
158169689Skan	@echo "--------------------------------------------------------------"
159169689Skan	@echo "Updating /usr/src from cvs repository" ${CVSROOT}
160169689Skan	@echo "--------------------------------------------------------------"
161169689Skan	cd ${.CURDIR} &&  cvs -q update -P -d
162169689Skan.endif
163169689Skan
164169689Skancleandist:
165169689Skan.if !defined(NOCLEANDIR)
166169689Skan	@echo "--------------------------------------------------------------"
167169689Skan	@echo " Cleaning up the source tree, and rebuilding the obj tree"
168169689Skan	@echo "--------------------------------------------------------------"
169169689Skan	@echo
170169689Skan	here=`pwd`; dest=/usr/obj`echo $$here | sed 's,^/usr/src,,'`; \
171169689Skan	if test -d /usr/obj -a ! -d $$dest; then \
172169689Skan		mkdir -p $$dest; \
173169689Skan	else \
174169689Skan		true; \
175169689Skan	fi; \
176169689Skan	cd $$dest && rm -rf ${SUBDIR}
177169689Skan	find . -name obj | xargs rm -rf
178169689Skan.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile)
179169689Skan	# The cd is done as local may well be a symbolic link
180169689Skan	-cd local && find . -name obj | xargs rm -rf
181169689Skan.endif
182169689Skan.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile)
183169689Skan	# The cd is done as local may well be a symbolic link
184169689Skan	-cd ports && find . -name obj | xargs rm -rf
185169689Skan.endif
186169689Skan	${MAKE} cleandir
187169689Skan	${MAKE} obj
188169689Skan.endif
189169689Skan
190169689Skaninstallmost:
191169689Skan	@echo "--------------------------------------------------------------"
192169689Skan	@echo " Installing programs only"
193169689Skan	@echo "--------------------------------------------------------------"
194169689Skan	cd ${.CURDIR}/bin	&&	${MAKE} ${.MAKEFLAGS} install
195169689Skan	cd ${.CURDIR}/sbin	&&	${MAKE} ${.MAKEFLAGS} install
196169689Skan	cd ${.CURDIR}/libexec	&&	${MAKE} ${.MAKEFLAGS} install
197169689Skan	cd ${.CURDIR}/usr.bin	&&	${MAKE} ${.MAKEFLAGS} install
198169689Skan	cd ${.CURDIR}/usr.sbin	&&	${MAKE} ${.MAKEFLAGS} install
199169689Skan	cd ${.CURDIR}/gnu/libexec &&	${MAKE} ${.MAKEFLAGS} install
200169689Skan	cd ${.CURDIR}/gnu/usr.bin &&	${MAKE} ${.MAKEFLAGS} install
201169689Skan	cd ${.CURDIR}/gnu/usr.sbin &&	${MAKE} ${.MAKEFLAGS} install
202169689Skan#.if defined(MAKE_EBONES) && !defined(NOCRYPT)
203169689Skan#	cd ${.CURDIR}/eBones	&&	${MAKE} ${.MAKEFLAGS} installmost
204169689Skan#.endif
205169689Skan#.if !defined(NOSECURE) && !defined(NOCRYPT)
206169689Skan#	cd ${.CURDIR}/secure	&&	${MAKE} ${.MAKEFLAGS} installmost
207169689Skan#.endif
208169689Skan
209169689Skanmost:
210169689Skan	@echo "--------------------------------------------------------------"
211169689Skan	@echo " Building programs only"
212169689Skan	@echo "--------------------------------------------------------------"
213169689Skan	cd ${.CURDIR}/bin	&&	${MAKE} ${.MAKEFLAGS} all
214169689Skan	cd ${.CURDIR}/sbin	&&	${MAKE} ${.MAKEFLAGS} all
215169689Skan	cd ${.CURDIR}/libexec	&&	${MAKE} ${.MAKEFLAGS} all
216169689Skan	cd ${.CURDIR}/usr.bin	&&	${MAKE} ${.MAKEFLAGS} all
217169689Skan	cd ${.CURDIR}/usr.sbin	&&	${MAKE} ${.MAKEFLAGS} all
218169689Skan	cd ${.CURDIR}/gnu/libexec &&	${MAKE} ${.MAKEFLAGS} all
219169689Skan	cd ${.CURDIR}/gnu/usr.bin &&	${MAKE} ${.MAKEFLAGS} all
220169689Skan	cd ${.CURDIR}/gnu/usr.sbin &&	${MAKE} ${.MAKEFLAGS} all
221169689Skan#.if defined(MAKE_EBONES) && !defined(NOCRYPT)
222169689Skan#	cd ${.CURDIR}/eBones	&&	${MAKE} ${.MAKEFLAGS} most
223169689Skan#.endif
224169689Skan#.if !defined(NOSECURE) && !defined(NOCRYPT)
225169689Skan#	cd ${.CURDIR}/secure	&&	${MAKE} ${.MAKEFLAGS} most
226169689Skan#.endif
227169689Skan
228169689Skanmk:
229169689Skan	@echo "--------------------------------------------------------------"
230169689Skan	@echo " Rebuilding ${DESTDIR}/usr/share/mk"
231169689Skan	@echo "--------------------------------------------------------------"
232169689Skan	cd ${.CURDIR}/share/mk &&		${MAKE} install
233169689Skan
234169689Skanincludes:
235169689Skan	@echo "--------------------------------------------------------------"
236169689Skan	@echo " Rebuilding ${DESTDIR}/usr/include"
237169689Skan	@echo "--------------------------------------------------------------"
238169689Skan	@echo
239169689Skan.if defined(CLOBBER)
240169689Skan	rm -rf ${DESTDIR}/usr/include/*
241169689Skan	mtree -deU -f ${.CURDIR}/etc/mtree/BSD.include.dist \
242169689Skan		-p ${DESTDIR}/usr/include
243169689Skan.endif
244169689Skan	cd ${.CURDIR}/include &&		${MAKE} install
245169689Skan	cd ${.CURDIR}/gnu/include &&		${MAKE}	install
246169689Skan	cd ${.CURDIR}/gnu/lib/libreadline &&	${MAKE} beforeinstall
247169689Skan	cd ${.CURDIR}/gnu/lib/libregex &&	${MAKE} beforeinstall
248169689Skan	cd ${.CURDIR}/gnu/lib/libg++ &&         ${MAKE} beforeinstall
249169689Skan	cd ${.CURDIR}/gnu/lib/libdialog &&      ${MAKE} beforeinstall
250169689Skan.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES)
251169689Skan	cd ${.CURDIR}/eBones/include &&		${MAKE} beforeinstall
252169689Skan	cd ${.CURDIR}/eBones/lib/libkrb &&	${MAKE} beforeinstall
253169689Skan	cd ${.CURDIR}/eBones/lib/libkadm &&	${MAKE} beforeinstall
254169689Skan.endif
255169689Skan	cd ${.CURDIR}/lib/libc &&		${MAKE} beforeinstall
256169689Skan	cd ${.CURDIR}/lib/libcurses &&		${MAKE} beforeinstall
257169689Skan	cd ${.CURDIR}/lib/libedit &&		${MAKE} beforeinstall
258169689Skan	cd ${.CURDIR}/lib/libmd &&		${MAKE} beforeinstall
259169689Skan	cd ${.CURDIR}/lib/libmytinfo &&		${MAKE}	beforeinstall
260169689Skan	cd ${.CURDIR}/lib/libncurses &&		${MAKE}	beforeinstall
261169689Skan.if !defined(WANT_CSRG_LIBM)
262169689Skan	cd ${.CURDIR}/lib/msun &&		${MAKE} beforeinstall
263169689Skan.endif
264169689Skan	cd ${.CURDIR}/lib/libpcap &&		${MAKE} beforeinstall
265169689Skan	cd ${.CURDIR}/lib/librpcsvc &&		${MAKE} beforeinstall
266169689Skan	cd ${.CURDIR}/lib/libskey &&		${MAKE} beforeinstall
267169689Skan	cd ${.CURDIR}/lib/libtermcap &&		${MAKE}	beforeinstall
268169689Skan	cd ${.CURDIR}/lib/libcom_err &&		${MAKE} beforeinstall
269169689Skan	cd ${.CURDIR}/lib/libss &&		${MAKE} beforeinstall
270169689Skan	cd ${.CURDIR}/lib/libscsi &&		${MAKE}	beforeinstall
271169689Skan	cd ${.CURDIR}/lib/libutil &&		${MAKE}	beforeinstall
272169689Skan
273169689Skanlib-tools:
274169689Skan	@echo "--------------------------------------------------------------"
275169689Skan	@echo " Rebuilding tools needed to build the libraries"
276169689Skan	@echo "--------------------------------------------------------------"
277169689Skan	@echo
278169689Skan	cd ${.CURDIR}/usr.bin/xinstall && \
279169689Skan		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
280169689Skan	cd ${.CURDIR}/gnu/usr.bin/ld && \
281169689Skan		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
282169689Skan	cd ${.CURDIR}/usr.bin/ar && \
283169689Skan		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
284169689Skan	cd ${.CURDIR}/usr.bin/ranlib && \
285169689Skan		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
286169689Skan	cd ${.CURDIR}/usr.bin/nm && \
287169689Skan		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
288169689Skan	cd ${.CURDIR}/usr.bin/lex/lib && \
289169689Skan		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
290169689Skan	cd ${.CURDIR}/usr.bin/compile_et && \
291169689Skan		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} && \
292169689Skan		rm -f /usr/sbin/compile_et
293169689Skan	cd ${.CURDIR}/usr.bin/mk_cmds && \
294169689Skan		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
295169689Skan
296169689Skanlibraries:
297169689Skan	@echo "--------------------------------------------------------------"
298169689Skan	@echo " Rebuilding ${DESTDIR}/usr/lib"
299169689Skan	@echo "--------------------------------------------------------------"
300169689Skan	@echo
301169689Skan.if exists(lib/libcompat)
302169689Skan	cd ${.CURDIR}/lib/libcompat && \
303169689Skan		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
304169689Skan.endif
305169689Skan.if exists(lib/libncurses)
306169689Skan	cd ${.CURDIR}/lib/libncurses && \
307169689Skan		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
308169689Skan.endif
309169689Skan.if exists(lib/libtermcap)
310169689Skan	cd ${.CURDIR}/lib/libtermcap && \
311169689Skan		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
312169689Skan.endif
313169689Skan.if exists(gnu)
314169689Skan	cd ${.CURDIR}/gnu/lib && \
315169689Skan		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
316169689Skan	cd ${.CURDIR}/gnu/usr.bin/cc/libgcc && \
317169689Skan		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
318169689Skan.endif
319169689Skan.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE)
320169689Skan	cd ${.CURDIR}/secure/lib && \
321169689Skan		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
322169689Skan.endif
323169689Skan.if exists(lib)
324169689Skan	cd ${.CURDIR}/lib/csu/i386 && \
325169689Skan		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
326169689Skan	cd ${.CURDIR}/lib && \
327169689Skan		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
328169689Skan.endif
329169689Skan.if exists(usr.sbin/lex/lib)
330169689Skan	cd ${.CURDIR}/usr.bin/lex/lib && \
331169689Skan		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
332169689Skan.endif
333169689Skan.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES)
334169689Skan	cd ${.CURDIR}/eBones/lib && \
335169689Skan		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
336169689Skan.endif
337169689Skan.if exists(usr.sbin/pcvt/keycap)
338169689Skan	cd ${.CURDIR}/usr.sbin/pcvt/keycap && \
339169689Skan		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
340169689Skan.endif
341169689Skan
342169689Skaninclude-tools:
343169689Skan	@echo "--------------------------------------------------------------"
344169689Skan	@echo " Rebuild tools necessary to build the include files"
345169689Skan	@echo "--------------------------------------------------------------"
346169689Skan	@echo
347169689Skan	cd ${.CURDIR}/usr.bin/xinstall && \
348169689Skan		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
349169689Skan	cd ${.CURDIR}/usr.bin/rpcgen && \
350169689Skan		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
351169689Skan
352169689Skanbuild-tools:
353169689Skan	@echo "--------------------------------------------------------------"
354169689Skan	@echo " Rebuilding ${DESTDIR} C compiler, make, symorder, sgmlfmt and zic(8)"
355169689Skan	@echo "--------------------------------------------------------------"
356169689Skan	@echo
357169689Skan	cd ${.CURDIR}/gnu/usr.bin/cc && \
358169689Skan		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
359169689Skan	cd ${.CURDIR}/usr.bin/make && \
360169689Skan		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
361169689Skan	cd ${.CURDIR}/usr.bin/symorder && \
362169689Skan		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
363169689Skan	cd ${.CURDIR}/usr.bin/sgmlfmt && \
364169689Skan		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 
365169689Skan	cd ${.CURDIR}/share/sgml && \
366169689Skan		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 
367169689Skan	cd ${.CURDIR}/usr.sbin/zic && \
368169689Skan		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
369169689Skan
370169689Skan.include <bsd.subdir.mk>
371169689Skan