]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - Makefile
Added an update target. It does nothing by default but you
[FreeBSD/FreeBSD.git] / Makefile
1 #
2 #       $Id: Makefile,v 1.12 1994/08/25 14:45:46 paul 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 #       -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
14 #
15 # XXX2  Mandatory, and Kerberos will not build sucessfully yet
16
17 # Put initial settings here.
18 NOKERBEROS=     yes
19 SUBDIR=
20
21 .if exists(bin)
22 SUBDIR+= bin
23 .endif
24 .if exists(contrib)
25 SUBDIR+= contrib
26 .endif
27 .if exists(etc)
28 SUBDIR+= etc
29 .endif
30 .if exists(games)
31 SUBDIR+= games
32 .endif
33 .if exists(gnu)
34 SUBDIR+= gnu
35 .endif
36 .if exists(include)
37 SUBDIR+= include
38 .endif
39 .if exists(lib)
40 SUBDIR+= lib
41 .endif
42 .if exists(kerberosIV) && !defined(NOCRYPT) && !defined(NOKERBEROS)
43 SUBDIR+= kerberosIV
44 .endif
45 .if exists(libexec)
46 SUBDIR+= libexec
47 .endif
48 .if exists(sbin)
49 SUBDIR+= sbin
50 .endif
51 .if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE)
52 SUBDIR+= secure
53 .endif
54 .if exists(share)
55 SUBDIR+= share
56 .endif
57 .if exists(sys)
58 SUBDIR+= sys
59 .endif
60 .if exists(usr.bin)
61 SUBDIR+= usr.bin
62 .endif
63 .if exists(usr.sbin)
64 SUBDIR+= usr.sbin
65 .endif
66
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)
70 SUBDIR+= local
71 .endif
72 .if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile)
73 SUBDIR+= ports
74 .endif
75
76 # Handle the -DNOOBJDIR and -DNOCLEANDIR
77 .if defined(NOOBJDIR)
78 OBJDIR=
79 .else
80 OBJDIR=         obj
81 .endif
82 .if defined(NOCLEANDIR)
83 CLEANDIR=       clean
84 .else 
85 CLEANDIR=       cleandir
86 .endif
87
88 world:  directories update cleandist mk includes libraries tools
89         @echo "--------------------------------------------------------------"
90         @echo " Rebuilding ${DESTDIR} The whole thing"
91         @echo "--------------------------------------------------------------"
92         @echo
93         ${MAKE} depend all install
94         cd ${.CURDIR}/share/man &&              ${MAKE} makedb
95
96
97 directories:
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
103
104 update:
105 .if defined(SUP_UPDATE)
106         @echo "--------------------------------------------------------------"
107         @echo "Running sup"
108         @echo "--------------------------------------------------------------"
109         @sup -v ${SUPFILE}
110 .endif
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
116 .endif
117
118 cleandist:
119 .if !defined(NOCLEANDIR)
120         @echo "--------------------------------------------------------------"
121         @echo " Cleaning up the source tree, and rebuilding the obj tree"
122         @echo "--------------------------------------------------------------"
123         @echo
124         here=`pwd`; dest=/usr/obj`echo $$here | sed 's,^/usr/src,,'`; \
125         if test -d /usr/obj -a ! -d $$dest; then \
126                 mkdir -p $$dest; \
127         else \
128                 true; \
129         fi; \
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
135 .endif
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
139 .endif
140         ${MAKE} cleandir
141         ${MAKE} obj
142 .endif
143
144 mk:
145         @echo "--------------------------------------------------------------"
146         @echo " Rebuilding ${DESTDIR}/usr/share/mk"
147         @echo "--------------------------------------------------------------"
148         cd ${.CURDIR}/share/mk &&               ${MAKE} install
149
150 includes:
151         @echo "--------------------------------------------------------------"
152         @echo " Rebuilding ${DESTDIR}/usr/include"
153         @echo "--------------------------------------------------------------"
154         @echo
155 .if defined(CLOBBER)
156         rm -rf ${DESTDIR}/usr/include
157         mkdir ${DESTDIR}/usr/include
158         chown ${BINOWN}.${BINGRP} ${DESTDIR}/usr/include
159         chmod 755 ${DESTDIR}/usr/include
160 .endif
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
166 .endif
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
171
172 libraries:
173         @echo "--------------------------------------------------------------"
174         @echo " Rebuilding ${DESTDIR}/usr/lib"
175         @echo "--------------------------------------------------------------"
176         @echo
177 .if defined(CLOBBER)
178         find ${DESTDIR}/usr/lib \! -name '*.s[ao].*' -a \! -type d | \
179                 xargs rm -rf
180 .endif
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}
195 .endif
196 .if exists(lib)
197         cd ${.CURDIR}/lib && \
198                 ${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
199 .endif
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}
213 .endif
214
215 tools:
216         @echo "--------------------------------------------------------------"
217         @echo " Rebuilding ${DESTDIR} Compiler and Make"
218         @echo "--------------------------------------------------------------"
219         @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}
224
225 .include <bsd.subdir.mk>