Makefile revision 4249
1#
2#	$Id: Makefile,v 1.28 1994/11/01 19:52:38 pst Exp $
3#
4# Make command line options:
5#	-DCLOBBER will remove /usr/include and MOST of /usr/lib 
6#	-DMAKE_LOCAL to add ./local to the SUBDIR list
7#	-DMAKE_PORTS to add ./ports to the SUBDIR list
8# XXX1	-DMAKE_KERBEROS to build KerberosIV
9#	-DMAKE_EBONES to build eBones (KerberosIV)
10#
11#	-DNOCLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir
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#
18#
19# XXX1	The kerberos IV off the 4.4-Lite tape (src/kerberosIV)
20#	will not build successfully yet.  MAKE_KERBEROS should not be
21#	defined.
22
23# Put initial settings here.
24SUBDIR=
25
26.if exists(bin)
27SUBDIR+= bin
28.endif
29.if exists(contrib)
30SUBDIR+= contrib
31.endif
32.if exists(etc)
33# XXX until etc vs release conversion is done
34# SUBDIR+= etc
35.endif
36.if exists(games)
37SUBDIR+= games
38.endif
39.if exists(gnu)
40SUBDIR+= gnu
41.endif
42.if exists(include)
43SUBDIR+= include
44.endif
45.if exists(lib)
46SUBDIR+= lib
47.endif
48.if exists(kerberosIV) && !defined(NOCRYPT) && defined(MAKE_KERBEROS)
49SUBDIR+= kerberosIV
50.endif
51.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES)
52SUBDIR+= eBones
53.endif
54.if exists(libexec)
55SUBDIR+= libexec
56.endif
57.if exists(sbin)
58SUBDIR+= sbin
59.endif
60.if exists(share)
61SUBDIR+= share
62.endif
63.if exists(sys)
64SUBDIR+= sys
65.endif
66.if exists(usr.bin)
67SUBDIR+= usr.bin
68.endif
69.if exists(usr.sbin)
70SUBDIR+= usr.sbin
71.endif
72.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE)
73SUBDIR+= secure
74.endif
75.if exists(lkm) && !defined(NOLKM)
76SUBDIR+= lkm
77.endif
78
79# These are last, since it is nice to at least get the base system
80# rebuilt before you do them.
81.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile)
82SUBDIR+= local
83.endif
84.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile)
85SUBDIR+= ports
86.endif
87
88# Handle the -DNOOBJDIR and -DNOCLEANDIR
89.if defined(NOOBJDIR)
90OBJDIR=
91.else
92OBJDIR=		obj
93.endif
94.if defined(NOCLEANDIR)
95CLEANDIR=	clean
96.else 
97CLEANDIR=	cleandir
98.endif
99
100world:	hierarchy cleandist mk includes libraries tools
101	@echo "--------------------------------------------------------------"
102	@echo " Rebuilding ${DESTDIR} The whole thing"
103	@echo "--------------------------------------------------------------"
104	@echo
105	${MAKE} depend all install
106	cd ${.CURDIR}/share/man &&		${MAKE} makedb
107
108
109hierarchy:
110	@echo "--------------------------------------------------------------"
111	@echo " Making hierarchy"
112	@echo "--------------------------------------------------------------"
113	cd ${.CURDIR}/release &&		${MAKE} hierarchy
114
115update:
116.if defined(SUP_UPDATE)
117	@echo "--------------------------------------------------------------"
118	@echo "Running sup"
119	@echo "--------------------------------------------------------------"
120	@sup -v ${SUPFILE}
121.endif
122.if defined(CVS_UPDATE)
123	@echo "--------------------------------------------------------------"
124	@echo "Updating /usr/src from cvs repository" ${CVSROOT}
125	@echo "--------------------------------------------------------------"
126	cd ${.CURDIR} &&  cvs update -P -d
127.endif
128
129cleandist:
130.if !defined(NOCLEANDIR)
131	@echo "--------------------------------------------------------------"
132	@echo " Cleaning up the source tree, and rebuilding the obj tree"
133	@echo "--------------------------------------------------------------"
134	@echo
135	here=`pwd`; dest=/usr/obj`echo $$here | sed 's,^/usr/src,,'`; \
136	if test -d /usr/obj -a ! -d $$dest; then \
137		mkdir -p $$dest; \
138	else \
139		true; \
140	fi; \
141	cd $$dest && rm -rf ${SUBDIR}
142	find . -name obj | xargs rm -rf
143.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile)
144	# The cd is done as local may well be a symbolic link
145	-cd local && find . -name obj | xargs rm -rf
146.endif
147.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile)
148	# The cd is done as local may well be a symbolic link
149	-cd ports && find . -name obj | xargs rm -rf
150.endif
151	${MAKE} cleandir
152	${MAKE} obj
153.endif
154
155installmost:
156	@echo "--------------------------------------------------------------"
157	@echo " Installing programs only"
158	@echo "--------------------------------------------------------------"
159	cd ${.CURDIR}/bin	&&	${MAKE} ${.MAKEFLAGS} install
160	cd ${.CURDIR}/sbin	&&	${MAKE} ${.MAKEFLAGS} install
161	cd ${.CURDIR}/libexec	&&	${MAKE} ${.MAKEFLAGS} install
162	cd ${.CURDIR}/usr.bin	&&	${MAKE} ${.MAKEFLAGS} install
163	cd ${.CURDIR}/usr.sbin	&&	${MAKE} ${.MAKEFLAGS} install
164	cd ${.CURDIR}/gnu/libexec &&	${MAKE} ${.MAKEFLAGS} install
165	cd ${.CURDIR}/gnu/usr.bin &&	${MAKE} ${.MAKEFLAGS} install
166#.if defined(MAKE_EBONES) && !defined(NOCRYPT)
167#	cd ${.CURDIR}/eBones	&&	${MAKE} ${.MAKEFLAGS} installmost
168#.endif
169#.if !defined(NOSECURE) && !defined(NOCRYPT)
170#	cd ${.CURDIR}/secure	&&	${MAKE} ${.MAKEFLAGS} installmost
171#.endif
172
173most:
174	@echo "--------------------------------------------------------------"
175	@echo " Building programs only"
176	@echo "--------------------------------------------------------------"
177	cd ${.CURDIR}/bin	&&	${MAKE} ${.MAKEFLAGS} all
178	cd ${.CURDIR}/sbin	&&	${MAKE} ${.MAKEFLAGS} all
179	cd ${.CURDIR}/libexec	&&	${MAKE} ${.MAKEFLAGS} all
180	cd ${.CURDIR}/usr.bin	&&	${MAKE} ${.MAKEFLAGS} all
181	cd ${.CURDIR}/usr.sbin	&&	${MAKE} ${.MAKEFLAGS} all
182	cd ${.CURDIR}/gnu/libexec &&	${MAKE} ${.MAKEFLAGS} all
183	cd ${.CURDIR}/gnu/usr.bin &&	${MAKE} ${.MAKEFLAGS} all
184#.if defined(MAKE_EBONES) && !defined(NOCRYPT)
185#	cd ${.CURDIR}/eBones	&&	${MAKE} ${.MAKEFLAGS} most
186#.endif
187#.if !defined(NOSECURE) && !defined(NOCRYPT)
188#	cd ${.CURDIR}/secure	&&	${MAKE} ${.MAKEFLAGS} most
189#.endif
190
191mk:
192	@echo "--------------------------------------------------------------"
193	@echo " Rebuilding ${DESTDIR}/usr/share/mk"
194	@echo "--------------------------------------------------------------"
195	cd ${.CURDIR}/share/mk &&		${MAKE} install
196
197includes:
198	@echo "--------------------------------------------------------------"
199	@echo " Rebuilding ${DESTDIR}/usr/include"
200	@echo "--------------------------------------------------------------"
201	@echo
202.if defined(CLOBBER)
203	rm -rf ${DESTDIR}/usr/include
204	mkdir ${DESTDIR}/usr/include
205	chown ${BINOWN}.${BINGRP} ${DESTDIR}/usr/include
206	chmod 755 ${DESTDIR}/usr/include
207.endif
208	cd ${.CURDIR}/include &&		${MAKE} install
209	cd ${.CURDIR}/gnu/include &&		${MAKE}	install
210	cd ${.CURDIR}/gnu/lib/libreadline &&	${MAKE} beforeinstall
211	cd ${.CURDIR}/gnu/lib/libg++ &&         ${MAKE} beforeinstall
212	cd ${.CURDIR}/gnu/lib/libdialog &&      ${MAKE} beforeinstall
213.if exists(kerberosIV) && !defined(NOCRYPT) && defined(MAKE_KERBEROS)
214	cd ${.CURDIR}/kerberosIV/include &&	${MAKE} install
215.endif
216.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES)
217	cd ${.CURDIR}/eBones/include &&		${MAKE} beforeinstall
218.endif
219	cd ${.CURDIR}/lib/libc &&		${MAKE} beforeinstall
220	cd ${.CURDIR}/lib/libcurses &&		${MAKE} beforeinstall
221	cd ${.CURDIR}/lib/libedit &&		${MAKE} beforeinstall
222	cd ${.CURDIR}/lib/libmd &&		${MAKE} beforeinstall
223	cd ${.CURDIR}/lib/libmytinfo &&		${MAKE}	beforeinstall
224	cd ${.CURDIR}/lib/libncurses &&		${MAKE}	beforeinstall
225.if defined(WANT_MSUN)
226	cd ${.CURDIR}/lib/msun &&		${MAKE} beforeinstall
227.endif
228	cd ${.CURDIR}/lib/librpcsvc &&		${MAKE} beforeinstall
229	cd ${.CURDIR}/lib/libskey &&		${MAKE} beforeinstall
230
231libraries:
232	@echo "--------------------------------------------------------------"
233	@echo " Rebuilding ${DESTDIR}/usr/lib"
234	@echo "--------------------------------------------------------------"
235	@echo
236.if defined(CLOBBER)
237	find ${DESTDIR}/usr/lib \! -name '*.s[ao].*' -a \! -type d | \
238		xargs rm -rf
239.endif
240	cd ${.CURDIR}/gnu/lib && \
241		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
242	cd ${.CURDIR}/gnu/usr.bin/cc/libgcc && \
243		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
244.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE)
245	cd ${.CURDIR}/secure/lib && \
246		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
247.endif
248.if exists(lib)
249	cd ${.CURDIR}/lib/csu/i386 && \
250		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
251	cd ${.CURDIR}/lib && \
252		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
253.endif
254	cd ${.CURDIR}/usr.bin/lex/lib && \
255		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
256.if exists(kerberosIV) && !defined(NOCRYPT) && defined(MAKE_KERBEROS)
257	cd ${.CURDIR}/kerberosIV/acl && \
258		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
259	cd ${.CURDIR}/kerberosIV/des && \
260		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
261	cd ${.CURDIR}/kerberosIV/kdb && \
262		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
263	cd ${.CURDIR}/kerberosIV/krb && \
264		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
265.endif
266.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES)
267	cd ${.CURDIR}/eBones/des && \
268		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
269	cd ${.CURDIR}/eBones/acl && \
270		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
271	cd ${.CURDIR}/eBones/kdb && \
272		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
273	cd ${.CURDIR}/eBones/krb && \
274		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
275.endif
276
277tools:
278	@echo "--------------------------------------------------------------"
279	@echo " Rebuilding ${DESTDIR} Compiler and Make"
280	@echo "--------------------------------------------------------------"
281	@echo
282	cd ${.CURDIR}/gnu/usr.bin/cc && \
283		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
284	cd ${.CURDIR}/usr.bin/make && \
285		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
286
287.include <bsd.subdir.mk>
288