2 # You will usually NOT need to edit this file at all: instead, edit the
3 # Make-common file. See the LDAP INSTALL file for more information.
5 #-----------------------------------------------------------------------------
6 # Copyright (c) 1994 Regents of the University of Michigan.
9 # Redistribution and use in source and binary forms are permitted
10 # provided that this notice is preserved and that due credit is given
11 # to the University of Michigan at Ann Arbor. The name of the University
12 # may not be used to endorse or promote products derived from this
13 # software without specific prior written permission. This software
14 # is provided ``as is'' without express or implied warranty.
16 # LDAP lightweight X.500 Directory access top level makefile
18 #-----------------------------------------------------------------------------
20 ############################################################################
22 # Usually you will not need to edit anything in this file #
24 ############################################################################
26 # Note that these definitions of standard Unix utilities are only used
27 # in this Makefile. The Make-common (and .make-platform) files have a
28 # similar set of definitions that are used in all the other LDAP Makefiles.
50 SRCDIRS= include libraries clients servers doc
54 # LDAPSRC is used by the links rule
60 # rules to make the software
65 @for i in $(SRCDIRS); do \
66 echo; echo " cd $$i; $(MAKE) $(MFLAGS) all"; \
67 ( cd $$i; $(MAKE) $(MFLAGS) all ); \
71 @echo "making libraries only"
72 @echo " cd include; $(MAKE) $(MFLAGS) all"; \
73 cd include; $(MAKE) $(MFLAGS) all
74 @echo " cd libraries; $(MAKE) $(MFLAGS) all"; \
75 cd libraries; $(MAKE) $(MFLAGS) all
79 # rules to install the software
83 @for i in $(SRCDIRS); do \
84 echo; echo "cd $$i; $(MAKE) $(MFLAGS) install"; \
85 ( cd $$i; $(MAKE) $(MFLAGS) install ); \
89 @echo "cd libraries; $(MAKE) $(MFLAGS) install"
90 @( cd libraries; $(MAKE) $(MFLAGS) install )
94 # rules to test the LDAP software
97 @echo " cd $(TESTDIR); $(MAKE) $(MFLAGS) all"; \
98 ( cd $(TESTDIR); $(MAKE) $(MFLAGS) all );
101 # rules to make clean
105 @if [ -f .makefiles ]; then \
106 for i in $(SRCDIRS) $(TESTDIR); do \
107 echo; echo "cd $$i; $(MAKE) $(MFLAGS) clean"; \
108 ( cd $$i; $(MAKE) $(MFLAGS) clean ); \
111 ( for d in ./obj-*; do \
112 if [ $$d != "./obj-*" ]; then \
113 ( echo "making clean in $$d..."; \
114 cd $$d; $(MAKE) $(MFLAGS) clean; ) \
121 @echo; echo "cd build; $(MAKE) $(MFLAGS) -f Make-template veryclean"; \
122 ( cd build; $(MAKE) $(MFLAGS) -f Make-template veryclean ); \
123 if [ -f .makefiles ]; then \
124 for i in $(SRCDIRS) $(TESTDIR); do \
125 echo; echo "cd $$i; $(MAKE) $(MFLAGS) veryclean"; \
126 ( cd $$i; $(MAKE) $(MFLAGS) veryclean ); \
128 echo "finding and removing Makefiles..."; \
129 for i in `$(FIND) . -type d -print`; do \
130 if [ -f $$i/Make-template ]; then \
131 echo "removing file $$i/Makefile"; \
132 $(RM) $$i/Makefile; \
135 echo "removing file .makefiles"; \
138 ( for d in ./obj-*; do \
139 if [ $$d != "./obj-*" ]; then \
140 echo "removing $$d..."; $(RM) -r $$d; \
145 if [ -f .make-platform ]; then \
146 echo "removing link .make-platform"; \
147 $(RM) .make-platform; \
154 # rules to make depend
158 @echo "making depend everywhere"; \
159 echo " cd include; $(MAKE) $(MFLAGS) all"; \
160 ( cd include; $(MAKE) $(MFLAGS) all ); \
161 for i in $(SRCDIRS); do \
162 echo; echo "cd $$i; $(MAKE) $(MFLAGS) depend"; \
163 ( cd $$i; $(MAKE) $(MFLAGS) depend ); \
165 $(MAKE) $(MFLAGS) makefiles
168 # rules to check out and in Make-template files
171 @echo "checking out Make-template files..."; \
172 for mkfile in `$(FIND) . -name Make-template -type f -print`; do \
177 @echo "enter a one-word log message:"; \
179 echo "checking in Make-template files..."; \
180 for mkfile in `$(FIND) . -name Make-template -type f -print`; do \
181 $(CI) -m$$logmsg -u $$mkfile; \
185 lib-depend: makeconfig
186 @echo "cd libraries; $(MAKE) $(MFLAGS) depend"
187 @( cd libraries; $(MAKE) $(MFLAGS) depend )"
190 # rules to cut a new ldap distribution
192 distribution: makeconfig checkin tar
195 @-VERSION=V`cat ./build/version | $(SED) -e 's/\.//'` ; \
196 echo "Checking in version $$VERSION"; \
197 for i in `$(FIND) . -name \*,v -print | \
198 $(SED) -e 's%RCS/%%' -e 's%,v%%'`; \
200 ci -m"pre-version $$VERSION check-in" -u $$i; \
201 rcs -N$$VERSION: $$i ) \
205 # $(RM) ./Make-common; \
206 # $(CP) ./Make-common.dist ./Make-common; \
207 # $(CHMOD) 644 ./Make-common; \
208 # $(RM) ./include/ldapconfig.h.edit; \
209 # $(CP) ./include/ldapconfig.h.dist ./include/ldapconfig.h.edit; \
210 # $(CHMOD) 644 ./include/ldapconfig.h.edit;
212 BASE=`$(BASENAME) $$PWD`; XFILE=/tmp/ldap-x.$$$$; \
213 ( cd .. ; $(CAT) $$BASE/exclude >$$XFILE; \
214 $(FIND) $$BASE -name RCS -print >> $$XFILE ; \
215 $(FIND) $$BASE -name CVS -print >> $$XFILE ; \
216 $(FIND) $$BASE -name obj-\* -print >> $$XFILE ; \
217 $(FIND) $$BASE -name tags -print >> $$XFILE ; \
218 $(TAR) cvfX ./$$BASE.tar $$XFILE $$BASE; \
221 echo "compressing ../$$BASE.tar..."; \
222 $(COMPRESS) ../$$BASE.tar
225 # rule to force check for change of platform
228 @if [ -f .make-platform ]; then \
229 echo "removing old link .make-platform"; \
230 $(RM) .make-platform; \
232 $(MAKE) $(MFLAGS) .make-platform
235 makeconfig: .makefiles buildtools
238 @if [ -f /usr/bin/swconfig ]; then \
239 UNAME=./build/uname.sh; \
240 elif [ -f /bin/uname ]; then \
242 elif [ -f /usr/bin/uname ]; then \
243 UNAME=/usr/bin/uname; \
245 UNAME=./build/uname.sh; \
247 if [ -z "$$UNAME" ]; then \
248 echo "unknown platform (no $$UNAME or /usr/bin/uname)"; \
249 echo "see the file build/PORTS for more information."; \
252 OS=`$$UNAME -s` ; OSRELEASE=`$$UNAME -r` ; \
253 OSVERSION=`$$UNAME -v` ; \
256 if [ $$OSRELEASE -gt "5" -o $$OSRELEASE -lt "4" ]; then \
257 echo "SunOS release $$OSRELEASE unknown..."; exit 1; \
259 if [ $$OSRELEASE -ge "5" ]; then \
260 MINORVER=`echo $$OSRELEASE|sed 's/^.*\.//'` ; \
261 if [ $$MINORVER -ge "6" ]; then \
262 PLATFORM="sunos56" ; \
292 PLATFORM="nextstep" \
300 *) echo "unknown platform ($$OS $$OSVERSION $$OSRELEASE)..."; \
301 echo "see the file build/PORTS for more information."; \
309 for dir in $$PATH; do \
310 if [ -f $$dir/gcc ]; then \
316 $(LN) ./build/platforms/$$PLATFORM-$$CC/Make-platform .make-platform; \
318 echo "** Set platform to $$PLATFORM with compiler $$CC..."; \
321 Make-common: Make-common.dist
322 @if [ -f Make-common ]; then \
323 echo "Make-common.dist newer than Make-common, check for new options" ;\
324 echo "or touch Make-common to ignore."; \
327 cp Make-common.dist Make-common; \
328 echo "Make-common installed from distribution." ; \
329 echo " Edit as needed before making!" ; \
332 # rule to build Makefiles by concatenating Make-template file in each
333 # subdirectory with global Make-common, .make-platform, and
334 # build/Make-append files
336 .makefiles: Make-common .make-platform build/Make-append
337 @echo "making Makefiles..."; \
338 HDRFILE=/tmp/Makehdr.$$$$; \
339 DEFSFILE=/tmp/Makedefs.$$$$; \
340 $(CAT) build/Make-append ./.make-platform ./Make-common > $$DEFSFILE; \
341 echo "# --------------------------------------------------------" > $$HDRFILE; \
342 echo "# This file was automatically generated. Do not edit it." >> $$HDRFILE; \
343 echo "# Instead, edit the Make-common file (located in the root" >> $$HDRFILE; \
344 echo "# (of the LDAP distribution). See the LDAP INSTALL file" >> $$HDRFILE; \
345 echo "# for more information." >> $$HDRFILE; \
346 echo "# --------------------------------------------------------" >> $$HDRFILE; \
347 echo "#" >> $$HDRFILE; \
348 for i in `$(FIND) . -type d -print`; do \
349 if [ -f $$i/Make-template ]; then \
350 echo " creating $$i/Makefile"; \
351 $(RM) $$i/Makefile; \
352 $(CAT) $$HDRFILE $$i/Make-template $$DEFSFILE > $$i/Makefile; \
353 $(CHMOD) 444 $$i/Makefile; \
358 $(RM) $$HDRFILE $$DEFSFILE
361 # rule to always build makefiles
365 $(MAKE) $(MFLAGS) .makefiles
368 # rule to create any tools we need to build everything else
371 @echo "making buildtools"
372 @echo " cd build; $(MAKE) $(MFLAGS)"
373 @( cd build; $(MAKE) $(MFLAGS) )
376 # rule to make a shadow (linked) build area
379 @if [ -f /usr/bin/swconfig ]; then \
380 UNAME=./build/uname.sh; \
381 elif [ -f /bin/uname ]; then \
383 elif [ -f /usr/bin/uname ]; then \
384 UNAME=/usr/bin/uname; \
386 UNAME=./build/uname.sh; \
388 if [ ! -z "$(DEST)" ]; then \
391 DEST=./obj-`$$UNAME -s`-`$$UNAME -r` ; \
393 echo "making links in $$DEST..."; \
394 LINKLIST=/tmp/ldaplinklist.$$$$; \
397 cd $$DEST; $(LN) $(LDAPSRC) .src; \
398 $(LN) .src/Makefile . ; \
399 $(CP) .src/Make-common . ; $(CHMOD) 644 ./Make-common; \
400 for d in build $(SRCDIRS) $(TESTDIR); do \
401 ( $(MKDIR) $$d; cd $$d; $(LN) ../.src/$$d .src; \
402 $(LN) .src/Make-template . ; \
403 $(MAKE) $(MFLAGS) MKDIR="$(MKDIR)" LN="$(LN)" \
404 -f Make-template links ) ; \
406 echo ""; echo "Now type:"; echo " cd $$DEST"; echo "and make there"