Makefile revision 2883
1177548Scsjp#
2177548Scsjp#	$Id: Makefile,v 1.18 1994/09/16 20:24:15 wollman Exp $
3177548Scsjp#
4177548Scsjp# Make command line options:
5234969Seadler#	-DCLOBBER will remove /usr/include and MOST of /usr/lib 
6177548Scsjp#	-DMAKE_LOCAL to add ./local to the SUBDIR list
7177548Scsjp#	-DMAKE_PORTS to add ./ports to the SUBDIR list
8177548Scsjp#	-DNOCLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir
9177548Scsjp#	-DNOCRYPT will prevent building of crypt versions
10177548Scsjp# XXX2	-DNOKERBEROS do not build Kerberos
11177548Scsjp#	-DNOLKM do not build loadable kernel modules
12177548Scsjp#	-DNOOBJDIR do not run ``${MAKE} obj''
13177548Scsjp#	-DNOPROFILE do not build profiled libraries
14177548Scsjp#	-DNOSECURE do not go into secure subdir
15177548Scsjp#	-DNOEBONES do not make eBones (kerberosIV)
16177548Scsjp#
17177548Scsjp# XXX2	Mandatory, and Kerberos will not build sucessfully yet
18177548Scsjp
19177548Scsjp# Put initial settings here.
20177548ScsjpNOKERBEROS=	yes
21177548ScsjpSUBDIR=
22177548Scsjp
23177548Scsjp.if exists(bin)
24177548ScsjpSUBDIR+= bin
25177548Scsjp.endif
26177548Scsjp.if exists(contrib)
27177548ScsjpSUBDIR+= contrib
28177548Scsjp.endif
29177548Scsjp.if exists(etc)
30177548ScsjpSUBDIR+= etc
31177548Scsjp.endif
32177548Scsjp.if exists(games)
33177548ScsjpSUBDIR+= games
34177548Scsjp.endif
35177548Scsjp.if exists(gnu)
36177548ScsjpSUBDIR+= gnu
37177548Scsjp.endif
38177548Scsjp.if exists(include)
39177548ScsjpSUBDIR+= include
40177548Scsjp.endif
41177548Scsjp.if exists(lib)
42177548ScsjpSUBDIR+= lib
43177548Scsjp.endif
44177548Scsjp.if exists(kerberosIV) && !defined(NOCRYPT) && !defined(NOKERBEROS)
45177548ScsjpSUBDIR+= kerberosIV
46177548Scsjp.endif
47177548Scsjp.if exists(eBones) && !defined(NOCRYPT) && defined(NOKERBEROS) \
48177548Scsjp			&& !defined(NOEBONES)
49177548ScsjpSUBDIR+= eBones
50177548Scsjp.endif
51177548Scsjp.if exists(libexec)
52177548ScsjpSUBDIR+= libexec
53177548Scsjp.endif
54177548Scsjp.if exists(sbin)
55177548ScsjpSUBDIR+= sbin
56177548Scsjp.endif
57177548Scsjp.if exists(share)
58177548ScsjpSUBDIR+= share
59177548Scsjp.endif
60177548Scsjp.if exists(sys)
61177548ScsjpSUBDIR+= sys
62177548Scsjp.endif
63177548Scsjp.if exists(usr.bin)
64177548ScsjpSUBDIR+= usr.bin
65177548Scsjp.endif
66177548Scsjp.if exists(usr.sbin)
67177548ScsjpSUBDIR+= usr.sbin
68177548Scsjp.endif
69177548Scsjp.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE)
70177548ScsjpSUBDIR+= secure
71177548Scsjp.endif
72177548Scsjp.if exists(lkm) && !defined(NOLKM)
73177548ScsjpSUBDIR+= lkm
74177548Scsjp.endif
75177548Scsjp
76177548Scsjp# These are last, since it is nice to at least get the base system
77177548Scsjp# rebuilt before you do them.
78177548Scsjp.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile)
79177548ScsjpSUBDIR+= local
80177548Scsjp.endif
81177548Scsjp.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile)
82251756SghelmerSUBDIR+= ports
83251756Sghelmer.endif
84177548Scsjp
85177548Scsjp# Handle the -DNOOBJDIR and -DNOCLEANDIR
86177548Scsjp.if defined(NOOBJDIR)
87177548ScsjpOBJDIR=
88177548Scsjp.else
89177548ScsjpOBJDIR=		obj
90177548Scsjp.endif
91177548Scsjp.if defined(NOCLEANDIR)
92177548ScsjpCLEANDIR=	clean
93215792Smaxim.else 
94177548ScsjpCLEANDIR=	cleandir
95177548Scsjp.endif
96215792Smaxim
97177548Scsjpworld:	directories cleandist mk includes libraries tools
98177548Scsjp	@echo "--------------------------------------------------------------"
99177548Scsjp	@echo " Rebuilding ${DESTDIR} The whole thing"
100177548Scsjp	@echo "--------------------------------------------------------------"
101177548Scsjp	@echo
102177548Scsjp	${MAKE} depend all install
103177548Scsjp	cd ${.CURDIR}/share/man &&		${MAKE} makedb
104177548Scsjp
105177548Scsjp
106177548Scsjpdirectories:
107177548Scsjp	@echo "--------------------------------------------------------------"
108177548Scsjp	@echo " Making directories"
109177548Scsjp	@echo "--------------------------------------------------------------"
110177548Scsjp	cd ${.CURDIR}/etc &&			${MAKE} distrib-dirs
111177548Scsjp
112177548Scsjpupdate:
113177548Scsjp.if defined(SUP_UPDATE)
114177548Scsjp	@echo "--------------------------------------------------------------"
115177548Scsjp	@echo "Running sup"
116177548Scsjp	@echo "--------------------------------------------------------------"
117177548Scsjp	@sup -v ${SUPFILE}
118177548Scsjp.endif
119177548Scsjp.if defined(CVS_UPDATE)
120177548Scsjp	@echo "--------------------------------------------------------------"
121177548Scsjp	@echo "Updating /usr/src from cvs repository" ${CVSROOT}
122177548Scsjp	@echo "--------------------------------------------------------------"
123177548Scsjp	cd ${.CURDIR} &&  cvs update -P -d
124177548Scsjp.endif
125177548Scsjp
126177548Scsjpcleandist:
127177548Scsjp.if !defined(NOCLEANDIR)
128177548Scsjp	@echo "--------------------------------------------------------------"
129177548Scsjp	@echo " Cleaning up the source tree, and rebuilding the obj tree"
130177548Scsjp	@echo "--------------------------------------------------------------"
131177548Scsjp	@echo
132177548Scsjp	here=`pwd`; dest=/usr/obj`echo $$here | sed 's,^/usr/src,,'`; \
133177548Scsjp	if test -d /usr/obj -a ! -d $$dest; then \
134177548Scsjp		mkdir -p $$dest; \
135177548Scsjp	else \
136177548Scsjp		true; \
137177548Scsjp	fi; \
138177548Scsjp	cd $$dest && rm -rf ${SUBDIR}
139177548Scsjp	find . -name obj | xargs rm -rf
140177548Scsjp.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile)
141177548Scsjp	# The cd is done as local may well be a symbolic link
142177548Scsjp	-cd local && find . -name obj | xargs rm -rf
143177548Scsjp.endif
144177548Scsjp.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile)
145177548Scsjp	# The cd is done as local may well be a symbolic link
146177548Scsjp	-cd ports && find . -name obj | xargs rm -rf
147177548Scsjp.endif
148177548Scsjp	${MAKE} cleandir
149177548Scsjp	${MAKE} obj
150177548Scsjp.endif
151177548Scsjp
152177548Scsjpmk:
153177548Scsjp	@echo "--------------------------------------------------------------"
154177548Scsjp	@echo " Rebuilding ${DESTDIR}/usr/share/mk"
155177548Scsjp	@echo "--------------------------------------------------------------"
156177548Scsjp	cd ${.CURDIR}/share/mk &&		${MAKE} install
157177548Scsjp
158177548Scsjpincludes:
159177548Scsjp	@echo "--------------------------------------------------------------"
160177548Scsjp	@echo " Rebuilding ${DESTDIR}/usr/include"
161177548Scsjp	@echo "--------------------------------------------------------------"
162177548Scsjp	@echo
163177548Scsjp.if defined(CLOBBER)
164177548Scsjp	rm -rf ${DESTDIR}/usr/include
165177548Scsjp	mkdir ${DESTDIR}/usr/include
166177548Scsjp	chown ${BINOWN}.${BINGRP} ${DESTDIR}/usr/include
167177548Scsjp	chmod 755 ${DESTDIR}/usr/include
168177548Scsjp.endif
169177548Scsjp	cd ${.CURDIR}/include &&		${MAKE} install
170177548Scsjp	cd ${.CURDIR}/gnu/lib/libreadline &&	${MAKE} beforeinstall
171177548Scsjp	cd ${.CURDIR}/gnu/lib/libg++ &&         ${MAKE} beforeinstall
172177548Scsjp.if exists(kerberosIV) && !defined(NOCRYPT) && !defined(NOKERBEROS)
173247629Smelifaro	cd ${.CURDIR}/kerberosIV/include &&	${MAKE} install
174177548Scsjp.endif
175247629Smelifaro	cd ${.CURDIR}/lib/libc &&		${MAKE} beforeinstall
176247629Smelifaro	cd ${.CURDIR}/lib/libcurses &&		${MAKE} beforeinstall
177247629Smelifaro	cd ${.CURDIR}/lib/libedit &&		${MAKE} beforeinstall
178247629Smelifaro	cd ${.CURDIR}/lib/libmd &&		${MAKE} beforeinstall
179247629Smelifaro	cd ${.CURDIR}/lib/librpcsvc &&		${MAKE} beforeinstall
180247629Smelifaro.if exists(eBones) && !defined(NOCRYPT) && defined(NOKERBEROS) && \
181247629Smelifaro			!defined(NOEBONES)
182247629Smelifaro	cd ${.CURDIR}/eBones/include &&		${MAKE} beforeinstall
183247629Smelifaro.endif
184247629Smelifaro
185177548Scsjplibraries:
186177548Scsjp	@echo "--------------------------------------------------------------"
187247629Smelifaro	@echo " Rebuilding ${DESTDIR}/usr/lib"
188177548Scsjp	@echo "--------------------------------------------------------------"
189247629Smelifaro	@echo
190247629Smelifaro.if defined(CLOBBER)
191177548Scsjp	find ${DESTDIR}/usr/lib \! -name '*.s[ao].*' -a \! -type d | \
192177548Scsjp		xargs rm -rf
193247629Smelifaro.endif
194251756Sghelmer	cd ${.CURDIR}/gnu/lib && \
195251756Sghelmer		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
196251756Sghelmer	cd ${.CURDIR}/gnu/usr.bin/cc/libgcc && \
197247629Smelifaro		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
198247629Smelifaro.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE)
199247629Smelifaro	cd ${.CURDIR}/secure/lib && \
200247629Smelifaro		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
201247629Smelifaro.endif
202247629Smelifaro.if exists(lib)
203247629Smelifaro	cd ${.CURDIR}/lib && \
204177548Scsjp		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
205247629Smelifaro.endif
206247629Smelifaro	cd ${.CURDIR}/usr.bin/lex/lib && \
207247629Smelifaro		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
208247629Smelifaro.if exists(kerberosIV) && !defined(NOCRYPT) && !defined(NOKERBEROS)
209247629Smelifaro	cd ${.CURDIR}/kerberosIV/acl && \
210247629Smelifaro		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
211247629Smelifaro	cd ${.CURDIR}/kerberosIV/des && \
212177548Scsjp		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
213177548Scsjp	cd ${.CURDIR}/kerberosIV/kdb && \
214177548Scsjp		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
215177548Scsjp	cd ${.CURDIR}/kerberosIV/krb && \
216177548Scsjp		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
217177548Scsjp.endif
218177548Scsjp.if exists(eBones) && !defined(NOCRYPT) && defined(NOKERBEROS) && \
219177548Scsjp			!defined(NOEBONES)
220177548Scsjp	cd ${.CURDIR}/eBones/des && \
221177548Scsjp		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
222177548Scsjp	cd ${.CURDIR}/eBones/acl && \
223177548Scsjp		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
224177548Scsjp	cd ${.CURDIR}/eBones/kdb && \
225		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
226	cd ${.CURDIR}/eBones/krb && \
227		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
228.endif
229
230tools:
231	@echo "--------------------------------------------------------------"
232	@echo " Rebuilding ${DESTDIR} Compiler and Make"
233	@echo "--------------------------------------------------------------"
234	@echo
235	cd ${.CURDIR}/gnu/usr.bin/cc && \
236		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
237	cd ${.CURDIR}/usr.bin/make && \
238		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
239
240.include <bsd.subdir.mk>
241