2 # $Id: Makefile,v 1.12 1994/08/25 14:45:46 paul Exp $
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 # -DNOCLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir
9 # -DNOCRYPT will prevent building of crypt versions
10 # XXX2 -DNOKERBEROS do not build Kerberos
11 # -DNOOBJDIR do not run ``${MAKE} obj''
12 # -DNOPROFILE do not build profiled libraries
13 # -DNOSECURE do not go into secure subdir
15 # XXX2 Mandatory, and Kerberos will not build sucessfully yet
17 # Put initial settings here.
42 .if exists(kerberosIV) && !defined(NOCRYPT) && !defined(NOKERBEROS)
51 .if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE)
67 # These are last, since it is nice to at least get the base system
68 # rebuilt before you do them.
69 .if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile)
72 .if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile)
76 # Handle the -DNOOBJDIR and -DNOCLEANDIR
82 .if defined(NOCLEANDIR)
88 world: directories update cleandist mk includes libraries tools
89 @echo "--------------------------------------------------------------"
90 @echo " Rebuilding ${DESTDIR} The whole thing"
91 @echo "--------------------------------------------------------------"
93 ${MAKE} depend all install
94 cd ${.CURDIR}/share/man && ${MAKE} makedb
98 @echo "--------------------------------------------------------------"
99 @echo " Making directories"
100 @echo "--------------------------------------------------------------"
101 @echo " XXX Not yet ready in 2.0.0"
102 cd ${.CURDIR}/etc && ${MAKE} distrib-dirs
105 .if defined(SUP_UPDATE)
106 @echo "--------------------------------------------------------------"
108 @echo "--------------------------------------------------------------"
111 .if defined(CVS_UPDATE)
112 @echo "--------------------------------------------------------------"
113 @echo "Updating /usr/src from cvs repository" ${CVSROOT}
114 @echo "--------------------------------------------------------------"
115 cd ${.CURDIR} && cvs update -P -d
119 .if !defined(NOCLEANDIR)
120 @echo "--------------------------------------------------------------"
121 @echo " Cleaning up the source tree, and rebuilding the obj tree"
122 @echo "--------------------------------------------------------------"
124 here=`pwd`; dest=/usr/obj`echo $$here | sed 's,^/usr/src,,'`; \
125 if test -d /usr/obj -a ! -d $$dest; then \
130 cd $$dest && rm -rf ${SUBDIR}
131 find . -name obj | xargs rm -rf
132 .if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile)
133 # The cd is done as local may well be a symbolic link
134 -cd local && find . -name obj | xargs rm -rf
136 .if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile)
137 # The cd is done as local may well be a symbolic link
138 -cd ports && find . -name obj | xargs rm -rf
145 @echo "--------------------------------------------------------------"
146 @echo " Rebuilding ${DESTDIR}/usr/share/mk"
147 @echo "--------------------------------------------------------------"
148 cd ${.CURDIR}/share/mk && ${MAKE} install
151 @echo "--------------------------------------------------------------"
152 @echo " Rebuilding ${DESTDIR}/usr/include"
153 @echo "--------------------------------------------------------------"
156 rm -rf ${DESTDIR}/usr/include
157 mkdir ${DESTDIR}/usr/include
158 chown ${BINOWN}.${BINGRP} ${DESTDIR}/usr/include
159 chmod 755 ${DESTDIR}/usr/include
161 cd ${.CURDIR}/include && ${MAKE} install
162 #XXX cd ${.CURDIR}/gnu/lib/libg++ && ${MAKE} beforeinstall
163 #XXX cd ${.CURDIR}/gnu/usr.bin/cc/libobjc && ${MAKE} beforeinstall
164 .if !defined(NOCRYPT) && !defined(NOKERBEROS)
165 cd ${.CURDIR}/kerberosIV/include && ${MAKE} install
167 cd ${.CURDIR}/lib/libc && ${MAKE} beforeinstall
168 cd ${.CURDIR}/lib/libcurses && ${MAKE} beforeinstall
169 cd ${.CURDIR}/lib/libedit && ${MAKE} beforeinstall
170 cd ${.CURDIR}/lib/librpcsvc && ${MAKE} beforeinstall
173 @echo "--------------------------------------------------------------"
174 @echo " Rebuilding ${DESTDIR}/usr/lib"
175 @echo "--------------------------------------------------------------"
178 find ${DESTDIR}/usr/lib \! -name '*.s[ao].*' -a \! -type d | \
181 # XXX The whole GNU block should be doable in one command, as soon # as libg++ works on FreeBSD 2.0 I will try that out
182 #XXX cd ${.CURDIR}/gnu/lib/libg++ && \
183 #XXX ${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
184 cd ${.CURDIR}/gnu/lib/libmalloc && \
185 ${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
186 cd ${.CURDIR}/gnu/lib/libreadline && \
187 ${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
188 cd ${.CURDIR}/gnu/lib/libregex && \
189 ${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
190 cd ${.CURDIR}/gnu/usr.bin/cc/libgcc && \
191 ${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
192 .if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE)
193 cd ${.CURDIR}/secure/lib && \
194 ${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
197 cd ${.CURDIR}/lib && \
198 ${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
200 # You need the lex lib before you can build kerberosIV
201 #XXX # We don't have lex in the 2.0 tree yet!
202 #XXX cd ${.CURDIR}/usr.bin/lex/lib && \
203 #XXX ${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
204 .if !defined(NOCRYPT) && !defined(NOKERBEROS)
205 cd ${.CURDIR}/kerberosIV/acl && \
206 ${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
207 cd ${.CURDIR}/kerberosIV/des && \
208 ${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
209 cd ${.CURDIR}/kerberosIV/kdb && \
210 ${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
211 cd ${.CURDIR}/kerberosIV/krb && \
212 ${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
216 @echo "--------------------------------------------------------------"
217 @echo " Rebuilding ${DESTDIR} Compiler and Make"
218 @echo "--------------------------------------------------------------"
220 cd ${.CURDIR}/gnu/usr.bin/cc && \
221 ${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
222 cd ${.CURDIR}/usr.bin/make && \
223 ${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
225 .include <bsd.subdir.mk>