Makefile revision 5749
197403Sobrien#
297403Sobrien#	$Id: Makefile,v 1.35 1995/01/19 22:41:25 wollman Exp $
3169691Skan#
497403Sobrien# Make command line options:
597403Sobrien#	-DCLOBBER will remove /usr/include and MOST of /usr/lib 
697403Sobrien#	-DMAKE_LOCAL to add ./local to the SUBDIR list
797403Sobrien#	-DMAKE_PORTS to add ./ports to the SUBDIR list
897403Sobrien#	-DMAKE_EBONES to build eBones (KerberosIV)
997403Sobrien#
1097403Sobrien#	-DNOCLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir
1197403Sobrien#	-DNOCRYPT will prevent building of crypt versions
1297403Sobrien#	-DNOLKM do not build loadable kernel modules
1397403Sobrien#	-DNOOBJDIR do not run ``${MAKE} obj''
1497403Sobrien#	-DNOPROFILE do not build profiled libraries
1597403Sobrien#	-DNOSECURE do not go into secure subdir
1697403Sobrien
1797403Sobrien# Put initial settings here.
1897403SobrienSUBDIR=
19169691Skan
2097403Sobrien# Must be first for "distribute" to work
2197403Sobrien.if exists(release)
2297403SobrienSUBDIR+= release
2397403Sobrien.endif
2497403Sobrien
2597403Sobrien.if exists(bin)
2697403SobrienSUBDIR+= bin
2797403Sobrien.endif
2897403Sobrien.if exists(contrib)
2997403SobrienSUBDIR+= contrib
3097403Sobrien.endif
31169691Skan.if exists(games)
3297403SobrienSUBDIR+= games
3397403Sobrien.endif
3497403Sobrien.if exists(gnu)
3597403SobrienSUBDIR+= gnu
3697403Sobrien.endif
37169691Skan.if exists(include)
38169691SkanSUBDIR+= include
3997403Sobrien.endif
4097403Sobrien.if exists(lib)
41169691SkanSUBDIR+= lib
42169691Skan.endif
43169691Skan.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES)
44169691SkanSUBDIR+= eBones
45132720Skan.endif
46132720Skan.if exists(libexec)
4797403SobrienSUBDIR+= libexec
4897403Sobrien.endif
4997403Sobrien.if exists(sbin)
5097403SobrienSUBDIR+= sbin
5197403Sobrien.endif
5297403Sobrien.if exists(share)
53169691SkanSUBDIR+= share
54169691Skan.endif
55169691Skan.if exists(sys)
56169691SkanSUBDIR+= sys
57169691Skan.endif
58169691Skan.if exists(usr.bin)
59169691SkanSUBDIR+= usr.bin
60169691Skan.endif
61169691Skan.if exists(usr.sbin)
62169691SkanSUBDIR+= usr.sbin
63169691Skan.endif
64169691Skan.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE)
65169691SkanSUBDIR+= secure
66169691Skan.endif
67169691Skan.if exists(lkm) && !defined(NOLKM)
68169691SkanSUBDIR+= lkm
69169691Skan.endif
70169691Skan
71169691Skan# etc must be last for "distribute" to work
7297403Sobrien.if exists(etc) && make(distribute)
7397403SobrienSUBDIR+= etc
7497403Sobrien.endif
7597403Sobrien
7697403Sobrien# These are last, since it is nice to at least get the base system
7797403Sobrien# rebuilt before you do them.
7897403Sobrien.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile)
7997403SobrienSUBDIR+= local
8097403Sobrien.endif
8197403Sobrien.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile)
8297403SobrienSUBDIR+= ports
8397403Sobrien.endif
8497403Sobrien
8597403Sobrien# Handle the -DNOOBJDIR and -DNOCLEANDIR
8697403Sobrien.if defined(NOOBJDIR)
8797403SobrienOBJDIR=
8897403Sobrien.else
8997403SobrienOBJDIR=		obj
9097403Sobrien.endif
9197403Sobrien.if defined(NOCLEANDIR)
9297403SobrienCLEANDIR=	clean
9397403Sobrien.else 
9497403SobrienCLEANDIR=	cleandir
9597403Sobrien.endif
9697403Sobrien
9797403Sobrienworld:	hierarchy mk cleandist includes lib-tools libraries tools
9897403Sobrien	@echo "--------------------------------------------------------------"
9997403Sobrien	@echo " Rebuilding ${DESTDIR} The whole thing"
10097403Sobrien	@echo "--------------------------------------------------------------"
10197403Sobrien	@echo
10297403Sobrien	${MAKE} depend all install
10397403Sobrien	cd ${.CURDIR}/share/man &&		${MAKE} makedb
104169691Skan
105169691Skan
10697403Sobrienhierarchy:
10797403Sobrien	@echo "--------------------------------------------------------------"
10897403Sobrien	@echo " Making hierarchy"
10997403Sobrien	@echo "--------------------------------------------------------------"
11097403Sobrien	cd ${.CURDIR}/release &&		${MAKE} hierarchy
11197403Sobrien
11297403Sobrienupdate:
11397403Sobrien.if defined(SUP_UPDATE)
11497403Sobrien	@echo "--------------------------------------------------------------"
11597403Sobrien	@echo "Running sup"
11697403Sobrien	@echo "--------------------------------------------------------------"
11797403Sobrien	@sup -v ${SUPFILE}
11897403Sobrien.endif
11997403Sobrien.if defined(CVS_UPDATE)
12097403Sobrien	@echo "--------------------------------------------------------------"
12197403Sobrien	@echo "Updating /usr/src from cvs repository" ${CVSROOT}
12297403Sobrien	@echo "--------------------------------------------------------------"
12397403Sobrien	cd ${.CURDIR} &&  cvs update -P -d
124132720Skan.endif
12597403Sobrien
12697403Sobriencleandist:
12797403Sobrien.if !defined(NOCLEANDIR)
128132720Skan	@echo "--------------------------------------------------------------"
12997403Sobrien	@echo " Cleaning up the source tree, and rebuilding the obj tree"
13097403Sobrien	@echo "--------------------------------------------------------------"
13197403Sobrien	@echo
13297403Sobrien	here=`pwd`; dest=/usr/obj`echo $$here | sed 's,^/usr/src,,'`; \
13397403Sobrien	if test -d /usr/obj -a ! -d $$dest; then \
13497403Sobrien		mkdir -p $$dest; \
13597403Sobrien	else \
13697403Sobrien		true; \
137132720Skan	fi; \
13897403Sobrien	cd $$dest && rm -rf ${SUBDIR}
13997403Sobrien	find . -name obj | xargs rm -rf
140132720Skan.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile)
14197403Sobrien	# The cd is done as local may well be a symbolic link
142132720Skan	-cd local && find . -name obj | xargs rm -rf
14397403Sobrien.endif
14497403Sobrien.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile)
14597403Sobrien	# The cd is done as local may well be a symbolic link
14697403Sobrien	-cd ports && find . -name obj | xargs rm -rf
14797403Sobrien.endif
148169691Skan	${MAKE} cleandir
149169691Skan	${MAKE} obj
150132720Skan.endif
15197403Sobrien
15297403Sobrieninstallmost:
15397403Sobrien	@echo "--------------------------------------------------------------"
15497403Sobrien	@echo " Installing programs only"
15597403Sobrien	@echo "--------------------------------------------------------------"
15697403Sobrien	cd ${.CURDIR}/bin	&&	${MAKE} ${.MAKEFLAGS} install
15797403Sobrien	cd ${.CURDIR}/sbin	&&	${MAKE} ${.MAKEFLAGS} install
15897403Sobrien	cd ${.CURDIR}/libexec	&&	${MAKE} ${.MAKEFLAGS} install
15997403Sobrien	cd ${.CURDIR}/usr.bin	&&	${MAKE} ${.MAKEFLAGS} install
16097403Sobrien	cd ${.CURDIR}/usr.sbin	&&	${MAKE} ${.MAKEFLAGS} install
161169691Skan	cd ${.CURDIR}/gnu/libexec &&	${MAKE} ${.MAKEFLAGS} install
162169691Skan	cd ${.CURDIR}/gnu/usr.bin &&	${MAKE} ${.MAKEFLAGS} install
163132720Skan#.if defined(MAKE_EBONES) && !defined(NOCRYPT)
16497403Sobrien#	cd ${.CURDIR}/eBones	&&	${MAKE} ${.MAKEFLAGS} installmost
165117397Skan#.endif
166132720Skan#.if !defined(NOSECURE) && !defined(NOCRYPT)
167117397Skan#	cd ${.CURDIR}/secure	&&	${MAKE} ${.MAKEFLAGS} installmost
168117397Skan#.endif
169132720Skan
17097403Sobrienmost:
171117397Skan	@echo "--------------------------------------------------------------"
17297403Sobrien	@echo " Building programs only"
173132720Skan	@echo "--------------------------------------------------------------"
17497403Sobrien	cd ${.CURDIR}/bin	&&	${MAKE} ${.MAKEFLAGS} all
17597403Sobrien	cd ${.CURDIR}/sbin	&&	${MAKE} ${.MAKEFLAGS} all
176169691Skan	cd ${.CURDIR}/libexec	&&	${MAKE} ${.MAKEFLAGS} all
177169691Skan	cd ${.CURDIR}/usr.bin	&&	${MAKE} ${.MAKEFLAGS} all
17897403Sobrien	cd ${.CURDIR}/usr.sbin	&&	${MAKE} ${.MAKEFLAGS} all
179132720Skan	cd ${.CURDIR}/gnu/libexec &&	${MAKE} ${.MAKEFLAGS} all
18097403Sobrien	cd ${.CURDIR}/gnu/usr.bin &&	${MAKE} ${.MAKEFLAGS} all
18197403Sobrien#.if defined(MAKE_EBONES) && !defined(NOCRYPT)
18297403Sobrien#	cd ${.CURDIR}/eBones	&&	${MAKE} ${.MAKEFLAGS} most
183169691Skan#.endif
184117397Skan#.if !defined(NOSECURE) && !defined(NOCRYPT)
18597403Sobrien#	cd ${.CURDIR}/secure	&&	${MAKE} ${.MAKEFLAGS} most
186132720Skan#.endif
187117397Skan
188117397Skanmk:
189117397Skan	@echo "--------------------------------------------------------------"
190117397Skan	@echo " Rebuilding ${DESTDIR}/usr/share/mk"
191117397Skan	@echo "--------------------------------------------------------------"
192117397Skan	cd ${.CURDIR}/share/mk &&		${MAKE} install
193132720Skan
19497403Sobrienincludes:
19597403Sobrien	@echo "--------------------------------------------------------------"
19697403Sobrien	@echo " Rebuilding ${DESTDIR}/usr/include"
197117397Skan	@echo "--------------------------------------------------------------"
198117397Skan	@echo
199132720Skan.if defined(CLOBBER)
20097403Sobrien	rm -rf ${DESTDIR}/usr/include
201169691Skan	mkdir ${DESTDIR}/usr/include
202169691Skan	chown ${BINOWN}.${BINGRP} ${DESTDIR}/usr/include
203169691Skan	chmod 755 ${DESTDIR}/usr/include
204169691Skan.endif
205132720Skan	cd ${.CURDIR}/include &&		${MAKE} install
206169691Skan	cd ${.CURDIR}/gnu/include &&		${MAKE}	install
207117397Skan	cd ${.CURDIR}/gnu/lib/libreadline &&	${MAKE} beforeinstall
208169691Skan	cd ${.CURDIR}/gnu/lib/libg++ &&         ${MAKE} beforeinstall
209169691Skan	cd ${.CURDIR}/gnu/lib/libdialog &&      ${MAKE} beforeinstall
210132720Skan.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES)
211169691Skan	cd ${.CURDIR}/eBones/include &&		${MAKE} beforeinstall
212169691Skan.endif
213169691Skan	cd ${.CURDIR}/lib/libc &&		${MAKE} beforeinstall
214117397Skan	cd ${.CURDIR}/lib/libcurses &&		${MAKE} beforeinstall
215169691Skan	cd ${.CURDIR}/lib/libedit &&		${MAKE} beforeinstall
216169691Skan	cd ${.CURDIR}/lib/libmd &&		${MAKE} beforeinstall
217169691Skan	cd ${.CURDIR}/lib/libmytinfo &&		${MAKE}	beforeinstall
218169691Skan	cd ${.CURDIR}/lib/libncurses &&		${MAKE}	beforeinstall
219169691Skan.if defined(WANT_MSUN)
22097403Sobrien	cd ${.CURDIR}/lib/msun &&		${MAKE} beforeinstall
221169691Skan.endif
222169691Skan	cd ${.CURDIR}/lib/librpcsvc &&		${MAKE} beforeinstall
223169691Skan	cd ${.CURDIR}/lib/libskey &&		${MAKE} beforeinstall
224169691Skan	cd ${.CURDIR}/lib/libtermcap &&		${MAKE}	beforeinstall
225169691Skan	cd ${.CURDIR}/lib/libcom_err &&		${MAKE} beforeinstall
226169691Skan
227132720Skanlib-tools:
228	@echo "--------------------------------------------------------------"
229	@echo " Rebuilding tools needed to build the libraries
230	@echo "--------------------------------------------------------------"
231	@echo
232	cd ${.CURDIR}/usr.bin/ar && \
233		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
234	cd ${.CURDIR}/usr.bin/ranlib && \
235		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
236	cd ${.CURDIR}/usr.bin/nm && \
237		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
238	cd ${.CURDIR}/usr.bin/compile_et && \
239		${MAKE} depend all install ${CLEANDIR} ${OBJDIR} && \
240		rm -f /usr/sbin/compile_et
241	cd ${.CURDIR}/usr.bin/mk_cmds && \
242		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
243
244libraries:
245	@echo "--------------------------------------------------------------"
246	@echo " Rebuilding ${DESTDIR}/usr/lib"
247	@echo "--------------------------------------------------------------"
248	@echo
249.if defined(CLOBBER)
250	find ${DESTDIR}/usr/lib \! -name '*.s[ao].*' -a \! -type d | \
251		xargs rm -rf
252.endif
253	cd ${.CURDIR}/gnu/lib && \
254		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
255	cd ${.CURDIR}/gnu/usr.bin/cc/libgcc && \
256		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
257.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE)
258	cd ${.CURDIR}/secure/lib && \
259		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
260.endif
261.if exists(lib)
262	cd ${.CURDIR}/lib/csu/i386 && \
263		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
264	cd ${.CURDIR}/lib && \
265		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
266.endif
267	cd ${.CURDIR}/usr.bin/lex/lib && \
268		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
269.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES)
270	cd ${.CURDIR}/eBones/des && \
271		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
272	cd ${.CURDIR}/eBones/acl && \
273		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
274	cd ${.CURDIR}/eBones/kdb && \
275		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
276	cd ${.CURDIR}/eBones/krb && \
277		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
278.endif
279
280tools:
281	@echo "--------------------------------------------------------------"
282	@echo " Rebuilding ${DESTDIR} Compiler and Make"
283	@echo "--------------------------------------------------------------"
284	@echo
285	cd ${.CURDIR}/gnu/usr.bin/cc && \
286		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
287	cd ${.CURDIR}/usr.bin/make && \
288		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
289
290.include <bsd.subdir.mk>
291