Makefile.in 15.4 KB
Newer Older
Kurt Zeilenga's avatar
Kurt Zeilenga committed
1
## Makefile.in for slapd
Kurt Zeilenga's avatar
Kurt Zeilenga committed
2
# $OpenLDAP$
Kurt Zeilenga's avatar
Kurt Zeilenga committed
3
4
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
Kurt Zeilenga's avatar
Kurt Zeilenga committed
5
## Copyright 1998-2005 The OpenLDAP Foundation.
Kurt Zeilenga's avatar
Kurt Zeilenga committed
6
## All rights reserved.
Kurt Zeilenga's avatar
Kurt Zeilenga committed
7
##
Kurt Zeilenga's avatar
Kurt Zeilenga committed
8
9
10
## Redistribution and use in source and binary forms, with or without
## modification, are permitted only as authorized by the OpenLDAP
## Public License.
Kurt Zeilenga's avatar
Kurt Zeilenga committed
11
##
Kurt Zeilenga's avatar
Kurt Zeilenga committed
12
13
14
15
## A copy of this license is available in the file LICENSE in the
## top-level directory of the distribution or, alternatively, at
## <http://www.OpenLDAP.org/license.html>.

Pierangelo Masarati's avatar
Pierangelo Masarati committed
16
SLAPTOOLS=slapadd slapcat slapdn slapindex slappasswd slaptest slapauth slapacl
17
PROGRAMS=slapd $(SLAPTOOLS)
18
XPROGRAMS=sslapd libbackends.a .backend liboverlays.a
19
XSRCS=version.c
20

21
SUBDIRS=back-* shell-backends slapi overlays
Howard Chu's avatar
Howard Chu committed
22

23
24
25
NT_SRCS = nt_svc.c
NT_OBJS = nt_svc.o ../../libraries/liblutil/slapdmsg.res

Kurt Zeilenga's avatar
Kurt Zeilenga committed
26
SRCS	= main.c globals.c bconfig.c config.c daemon.c \
27
28
		connection.c search.c filter.c add.c cr.c \
		attr.c entry.c backend.c result.c operation.c \
Kurt Zeilenga's avatar
Kurt Zeilenga committed
29
30
		dn.c compare.c modify.c delete.c modrdn.c ch_malloc.c \
		value.c ava.c bind.c unbind.c abandon.c filterentry.c \
31
		phonetic.c acl.c str2filter.c aclparse.c init.c user.c \
32
		repl.c lock.c controls.c extended.c kerberos.c passwd.c \
33
		schema.c schema_check.c schema_init.c schema_prep.c \
34
		schemaparse.c ad.c at.c mr.c syntax.c oc.c saslauthz.c \
35
		oidm.c starttls.c index.c sets.c referral.c root_dse.c \
Jong Hyuk Choi's avatar
Jong Hyuk Choi committed
36
		sasl.c module.c mra.c mods.c sl_malloc.c zn_malloc.c limits.c \
37
		operational.c matchedValues.c cancel.c syncrepl.c \
Kurt Zeilenga's avatar
Kurt Zeilenga committed
38
		backglue.c backover.c ctxcsn.c ldapsync.c frontend.c \
39
		slapadd.c slapcat.c slapcommon.c slapdn.c slapindex.c \
Kurt Zeilenga's avatar
cleanup    
Kurt Zeilenga committed
40
		slappasswd.c slaptest.c slapauth.c slapacl.c component.c \
Kurt Zeilenga's avatar
Kurt Zeilenga committed
41
		aci.c \
Kurt Zeilenga's avatar
cleanup    
Kurt Zeilenga committed
42
		$(@PLAT@_SRCS)
43

Kurt Zeilenga's avatar
Kurt Zeilenga committed
44
OBJS	= main.o globals.o bconfig.o config.o daemon.o \
45
		connection.o search.o filter.o add.o cr.o \
Kurt Zeilenga's avatar
Kurt Zeilenga committed
46
		attr.o entry.o backend.o backends.o result.o operation.o \
Kurt Zeilenga's avatar
Kurt Zeilenga committed
47
48
		dn.o compare.o modify.o delete.o modrdn.o ch_malloc.o \
		value.o ava.o bind.o unbind.o abandon.o filterentry.o \
49
		phonetic.o acl.o str2filter.o aclparse.o init.o user.o \
50
		repl.o lock.o controls.o extended.o kerberos.o passwd.o \
51
		schema.o schema_check.o schema_init.o schema_prep.o \
52
		schemaparse.o ad.o at.o mr.o syntax.o oc.o saslauthz.o \
53
		oidm.o starttls.o index.o sets.o referral.o root_dse.o \
Jong Hyuk Choi's avatar
Jong Hyuk Choi committed
54
		sasl.o module.o mra.o mods.o sl_malloc.o zn_malloc.o limits.o \
55
		operational.o matchedValues.o cancel.o syncrepl.o \
Kurt Zeilenga's avatar
Kurt Zeilenga committed
56
		backglue.o backover.o ctxcsn.o ldapsync.o frontend.o \
57
		slapadd.o slapcat.o slapcommon.o slapdn.o slapindex.o \
Kurt Zeilenga's avatar
cleanup    
Kurt Zeilenga committed
58
		slappasswd.o slaptest.o slapauth.o slapacl.o component.o \
Kurt Zeilenga's avatar
Kurt Zeilenga committed
59
		aci.o \
Kurt Zeilenga's avatar
cleanup    
Kurt Zeilenga committed
60
		$(@PLAT@_OBJS)
Kurt Zeilenga's avatar
Kurt Zeilenga committed
61

Kurt Zeilenga's avatar
Kurt Zeilenga committed
62
LDAP_INCDIR= ../../include -I$(srcdir) -I$(srcdir)/slapi -I.
Kurt Zeilenga's avatar
Kurt Zeilenga committed
63
64
LDAP_LIBDIR= ../../libraries

65
SLAP_DIR=
Kurt Zeilenga's avatar
Kurt Zeilenga committed
66
SLAPD_STATIC_DEPENDS=@SLAPD_NO_STATIC@ libbackends.a liboverlays.a
67
68
SLAPD_STATIC_BACKENDS=@SLAPD_STATIC_BACKENDS@
SLAPD_DYNAMIC_BACKENDS=@SLAPD_DYNAMIC_BACKENDS@
69

Howard Chu's avatar
Howard Chu committed
70
71
SLAPI_LIBS=@LIBSLAPI@ @SLAPI_LIBS@

72
XDEFS = $(MODULES_CPPFLAGS)
73
XLDFLAGS = $(MODULES_LDFLAGS)
74

Kurt Zeilenga's avatar
Kurt Zeilenga committed
75
XLIBS = $(SLAPD_STATIC_DEPENDS) $(SLAPD_L)
Howard Chu's avatar
Howard Chu committed
76
XXLIBS = $(SLAPD_LIBS) $(SECURITY_LIBS) $(LUTIL_LIBS)
Howard Chu's avatar
Howard Chu committed
77
XXXLIBS = $(LTHREAD_LIBS) $(SLAPI_LIBS) $(MODULES_LIBS)
78

Kurt Zeilenga's avatar
Kurt Zeilenga committed
79
80
81
BUILD_OPT = "--enable-slapd"
BUILD_SRV = @BUILD_SLAPD@

82
all-local-srv: all-cffiles
Kurt Zeilenga's avatar
Kurt Zeilenga committed
83

Howard Chu's avatar
Howard Chu committed
84
NT_SLAPD_DEPENDS = slapd.exp
Kurt Zeilenga's avatar
Kurt Zeilenga committed
85
NT_SLAPD_OBJECTS = slapd.exp symdummy.o $(OBJS) version.o
Howard Chu's avatar
Howard Chu committed
86

Kurt Zeilenga's avatar
Kurt Zeilenga committed
87
88
UNIX_SLAPD_DEPENDS = $(SLAPD_STATIC_DEPENDS) version.o $(SLAPD_L)
UNIX_SLAPD_OBJECTS = $(OBJS) version.o
Howard Chu's avatar
Howard Chu committed
89

Kurt Zeilenga's avatar
Kurt Zeilenga committed
90
SLAPD_DEPENDS = $(@PLAT@_SLAPD_DEPENDS)
Howard Chu's avatar
Howard Chu committed
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
SLAPD_OBJECTS = $(@PLAT@_SLAPD_OBJECTS)

# Notes about slapd for Windows
# =============================
# slapd.exe must export all of its global symbols, just like a DLL.
# The purpose of this is to allow dynamic modules (dynamic backends
# or external dynamic modules) to bind with the symbols at run-time.
# 
# Exporting symbols from an .EXE is a bit tricky and involves multiple
# steps. First a .DEF file must be generated. The .DEF file indicates
# the set of symbols that are to be exported. Many times, it's possible
# to manually create this file with an editor. However, with slapd,
# we want to export EVERY global symbol that it knows about (NOT including
# symbols that are imported from other DLLs). The set of symbols to
# export INCLUDES symbols from all static libraries that slapd gets
106
# linked with, e.g. avl, ldbm, lunicode, lutil, etc. This list
Howard Chu's avatar
Howard Chu committed
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
# will also include liblber and libldap_r if they were built as static
# libraries. ALSO included will be symbols from other STATIC libraries
# outside the domain of the OpenLDAP source tree, e.g. regex, ltdl,
# crypto, ssl, sasl, etc. (If these libraries are dynamic, we won't want
# to include their symbols in the list). The correct set of symbols
# CAN be determined at build time. The slapd.def target automatically
# determines the correct set of symbols and generates the slapd.def file.
#
# The slapd.def file, serving multiple purposes, will:
#
# 1) be used to generate libslapd.a, the import library for slapd.exe.
#
# 2) be used to generate the symdummy.c file.
#
# 3) be used to help create slapd.exp, the binary-formated slapd export file.
#
# The import library is used by dynamic modules at link time. With this
# library, dynamic modules indicate to the linker that it will resolve
# these symbols from the slapd.exe binary at run-time. Of course, whenever
# a module imports dynamic symbols, those symbols should be marked with
# the __declspec(dllimport) directive in the header files that the dynamic
# modules build with. In OpenLDAP, this is handled automatically in the
# header files. (See ldap_cdefs.h for an explanation). Writers of
# dynamic backend modules should keep in mind that slapd.exe might export
# other global symbols that are not part of OpenLDAP (e.g. regex, ltdl,
# crypto, ssl, sasl, etc.) When a writer actually uses (i.e. imports) these
# symbols, he must verify that the header files from these external packages
# include a mechanism to mark imported symbols with the __declspec(dllimport)
# directive. Whether or not such a mechanism exists, the writer must be
# able to include these directives appropriately when their symbols are
# being imported from slapd.exe. The directive is not completely necessary
# for functions, but it is required for variables.
#
# The symdummy.c file basically references EVERY symbol available to slapd.exe,
# including symbols that slapd.exe never actually refereneced. The file
# is compiled and included at link time. Without this object file, slapd.exe
# would NOT export symbols that it never referenced. The reason that these
# symbols must still be exported is because a dynamic module may want to
# use a symbol even if it had not been referenced by slapd.exe.
#

#
# slapd.def REALLY depends upon all slapd objects and all static libraries
# included in $(LIBS), including static libraries outside of OpenLDAP.
# When slapd.def is built, the absolute paths to all static libraries
# (both inside and outside of OpenLDAP) are generated. We don't have
# any way to include this generated list as a dependency of slapd.def (sigh).
# Thus, we do the best we can by depending on version.o, which depends
# on its own very long list of dependencies.
#
Howard Chu's avatar
Howard Chu committed
157
slapd.def: libbackends.a liboverlays.a version.o
Howard Chu's avatar
Howard Chu committed
158
159
160
161
162
163
164
	@for i in $(LDFLAGS) ; do \
	    path=`expr "$$i" : "-L\(.*\)"`; \
	    if test $$? != 0; then continue; fi; \
	    paths="$$paths $$path"; \
	done; \
	objs=""; \
	for i in $(OBJS) version.o $(LIBS) ; do \
165
	    obj="" ; \
Howard Chu's avatar
Howard Chu committed
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
	    case $$i in \
		-l*) \
		    done="" ;\
		    base=`expr "$$i" : "-l\(.*\)"`; \
		    for p in $$paths ; do \
			for ext in la dll a ; do \
			    path=$$p/lib$$base.$$ext; \
			    test ! -f $$path && continue; \
			    if test $$ext = la ; then \
				for t in dlname old_library ; do \
				    line=`grep "^$$t=" $$path`; \
				    lib=`expr "$$line" : "[^']*'\(.*\)'"`; \
				    test -n "$$lib" && test -f $$p/$$lib && \
					path=$$p/$$lib && break; \
				done; \
				test $$t = dlname && ext=dll; \
				test $$t = old_library && ext=a; \
			    fi; \
			    if test $$ext = a ; then \
				obj=$$path; \
			    fi; \
			    done=done; \
			    break; \
			done; \
			test -n "$$done" && break; \
		    done; \
		    test -z "$$obj" && continue; \
		    ;; \
Kurt Zeilenga's avatar
Kurt Zeilenga committed
194
195
196
197
198
199
200
		*.la) \
		    if test -n "$LTSTATIC"; then \
			    base=`expr "$$i" : ".*/\(.*\).la"`; \
			    path=`expr "$$i" : "\(.*/\).*"`; \
			    obj=$$path.libs/$$base.a; \
		    fi; \
		    ;; \
Howard Chu's avatar
Howard Chu committed
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
		*.o | *.a) \
		    obj=$$i; \
	    esac; \
	    objs="$$objs $$obj"; \
	done; \
	echo dlltool --exclude-symbols main,ServiceMain@8 --export-all-symbols \
			--output-def $@.tmp $$objs; \
	dlltool --exclude-symbols main,ServiceMain@8 --export-all-symbols \
			--output-def $@.tmp $$objs;
	echo EXPORTS > $@
	$(SED) -e 1,2d -e 's/ @ [0-9][0-9]*//' $@.tmp | sort >> $@
	$(RM) $@.tmp

symdummy.c: slapd.def
	$(RM) $@
	@echo "generating $@..."; \
	echo "static void never_called() {" > $@.tmp; \
	cat $< | while read line; \
Howard Chu's avatar
Howard Chu committed
219
220
221
	do \
	    set dummy $$line; \
	    case $$# in \
Howard Chu's avatar
Howard Chu committed
222
		3) \
Howard Chu's avatar
Howard Chu committed
223
		    echo "int $$2();" >> $@; \
Howard Chu's avatar
Howard Chu committed
224
		    echo "$$2();" >> $@.tmp; \
Howard Chu's avatar
Howard Chu committed
225
		    ;; \
Howard Chu's avatar
Howard Chu committed
226
		4) \
Howard Chu's avatar
Howard Chu committed
227
		    echo "extern int $$2;" >> $@; \
Howard Chu's avatar
Howard Chu committed
228
		    echo "$$2 = 0;" >> $@.tmp; \
Howard Chu's avatar
Howard Chu committed
229
230
		    ;; \
	    esac; \
Howard Chu's avatar
Howard Chu committed
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
	done; \
	echo "" >> $@; \
	echo "}" >> $@.tmp; \
	cat $@.tmp >> $@; \
	$(RM) $@.tmp

libslapd.a: symdummy.o
	dlltool --dllname slapd.exe --input-def slapd.def --output-lib $@

slapd.exp: libslapd.a
	@echo $(LTLINK) -Wl,--base-file,slapd.base -o slapd \
		$(OBJS) symdummy.o version.o $(LIBS) $(WRAP_LIBS); \
	$(LTLINK) -Wl,--base-file,slapd.base -o slapd \
		$(OBJS) symdummy.o version.o $(LIBS) $(WRAP_LIBS)
	$(RM) slapd.exe
	@echo dlltool --dllname slapd.exe --input-def slapd.def \
		--base-file slapd.base --output-exp $@; \
	dlltool --dllname slapd.exe --input-def slapd.def \
		--base-file slapd.base --output-exp $@; \
	echo $(LTLINK) -Wl,--base-file,slapd.base -o slapd $@ \
		$(OBJS) symdummy.o version.o $(LIBS) $(WRAP_LIBS); \
	$(LTLINK) -Wl,--base-file,slapd.base -o slapd $@ \
		$(OBJS) symdummy.o version.o $(LIBS) $(WRAP_LIBS)
	$(RM) slapd.exe
	@echo dlltool --dllname slapd.exe --input-def slapd.def \
		--base-file slapd.base --output-exp $@; \
	dlltool --dllname slapd.exe --input-def slapd.def \
		--base-file slapd.base --output-exp $@

Howard Chu's avatar
Howard Chu committed
260
slapi/.libs/libslapi.a: FORCE
Pierangelo Masarati's avatar
Pierangelo Masarati committed
261
	(cd slapi; $(MAKE) $(MFLAGS) all)
262

Howard Chu's avatar
Howard Chu committed
263
libslapi.a: slapi/.libs/libslapi.a
Howard Chu's avatar
Howard Chu committed
264
	cp slapi/.libs/libslapi.a .
Pierangelo Masarati's avatar
Pierangelo Masarati committed
265

Pierangelo Masarati's avatar
Pierangelo Masarati committed
266
slapd: $(SLAPD_DEPENDS) @LIBSLAPI@
267
268
	$(LTLINK) -o $@ $(SLAPD_OBJECTS) $(LIBS) \
		$(WRAP_LIBS)
269
	$(RM) $(SLAPTOOLS)
270
	for i in $(SLAPTOOLS); do \
Howard Chu's avatar
Howard Chu committed
271
		$(LN_S) slapd$(EXEEXT) $$i$(EXEEXT); done
272

273

Kurt Zeilenga's avatar
Kurt Zeilenga committed
274
275
sslapd: version.o
	$(LTLINK) -static -o $@ $(OBJS) version.o $(LIBS) $(WRAP_LIBS)
Kurt Zeilenga's avatar
Kurt Zeilenga committed
276

277
dummy $(SLAPD_DYNAMIC_BACKENDS): slapd
278
279
	cd $@; $(MAKE) $(MFLAGS) all
	@touch $@
280

Kurt Zeilenga's avatar
Kurt Zeilenga committed
281
282
283
dynamic_overlays: slapd
	cd overlays; $(MAKE) $(MFLAGS) dynamic

Howard Chu's avatar
Howard Chu committed
284
285
286
287
288
#
# In Windows, dynamic backends have to be built after slapd. For this
# reason, we only build static backends now and dynamic backends later.
#
.backend: FORCE
289
290
291
292
293
	@if test -n "$(SLAPD_STATIC_BACKENDS)"; then \
	    echo "building static backends..."; \
	    for i in XX $(SLAPD_STATIC_BACKENDS); do \
	    	if test $$i != XX; then \
		    echo " "; echo "  cd $$i; $(MAKE) $(MFLAGS) all"; \
Howard Chu's avatar
Howard Chu committed
294
		    ( cd $$i; $(MAKE) $(MFLAGS) all ); \
295
		    if test $$? != 0; then exit 1; fi; \
Kurt Zeilenga's avatar
Kurt Zeilenga committed
296
		fi; \
297
298
299
	    done; \
	    echo " "; \
	fi
300
301

libbackends.a: .backend
Kurt Zeilenga's avatar
Kurt Zeilenga committed
302
303
304
305
306
307
	@$(RM) -r tmp
	@$(MKDIR) tmp
	@-for i in back-*/*.a; do \
		( \
		  cd tmp; \
		  $(AR) x ../$$i; \
Howard Chu's avatar
Howard Chu committed
308
		  pre=`echo $$i | $(SED) -e 's/\/.*$$//' -e 's/back-//'`; \
Kurt Zeilenga's avatar
Kurt Zeilenga committed
309
310
311
312
		  for j in *.o; do \
			mv $$j $${pre}$$j; \
		  done; \
		  $(AR) ruv libbackends.a *.o 2>&1 | grep -v truncated; \
Kurt Zeilenga's avatar
Kurt Zeilenga committed
313
		  $(RM) *.o __.SYMDEF  ________64ELEL_ ; \
Kurt Zeilenga's avatar
Kurt Zeilenga committed
314
		  echo "added backend library $$i"; \
Howard Chu's avatar
Howard Chu committed
315
		  echo ""; \
Kurt Zeilenga's avatar
Kurt Zeilenga committed
316
317
318
319
		); \
	done
	@mv -f tmp/libbackends.a ./libbackends.a
	@$(RM) -r tmp
320
	@if test ! -z "$(RANLIB)" ; then \
Kurt Zeilenga's avatar
Kurt Zeilenga committed
321
322
		$(RANLIB) libbackends.a; \
	fi
Howard Chu's avatar
Howard Chu committed
323
	@ls -l libbackends.a; echo ""
Kurt Zeilenga's avatar
Kurt Zeilenga committed
324

325
liboverlays.a: FORCE
Kurt Zeilenga's avatar
Kurt Zeilenga committed
326
	cd overlays; $(MAKE) $(MFLAGS) static
327

Howard Chu's avatar
Howard Chu committed
328
version.c: Makefile
329
	@-$(RM) $@
Kurt Zeilenga's avatar
Kurt Zeilenga committed
330
	$(MKVERSION) -s -n Versionstr slapd > $@
331

Howard Chu's avatar
Howard Chu committed
332
333
version.o: version.c $(OBJS) $(SLAPD_LIBDEPEND) 

Kurt Zeilenga's avatar
Kurt Zeilenga committed
334
335
backends.o: backends.c $(srcdir)/slap.h

336
depend-local-srv: FORCE
Howard Chu's avatar
Howard Chu committed
337
	@for i in $(SUBDIRS); do \
338
		if test -d $$i -a -f $$i/Makefile ; then \
339
340
			echo; echo "  cd $$i; $(MAKE) $(MFLAGS) depend"; \
			( cd $$i; $(MAKE) $(MFLAGS) depend ); \
341
			if test $$? != 0 ; then exit 1; fi ; \
342
343
		fi; \
	done
344
345
346
	@echo ""

clean-local:
347
	$(RM) *.exp *.def *.base *.a *.objs symdummy.c
348

Kurt Zeilenga's avatar
Kurt Zeilenga committed
349
350
351
veryclean-local:
	$(RM) backends.c

352
clean-local-srv: FORCE
Howard Chu's avatar
Howard Chu committed
353
	@for i in $(SUBDIRS); do \
354
		if test -d $$i -a -f $$i/Makefile ; then \
Kurt Zeilenga's avatar
Kurt Zeilenga committed
355
356
			echo; echo "  cd $$i; $(MAKE) $(MFLAGS) clean"; \
			( cd $$i; $(MAKE) $(MFLAGS) clean ); \
357
			if test $$? != 0 ; then exit 1; fi ; \
Kurt Zeilenga's avatar
Kurt Zeilenga committed
358
359
		fi; \
	done
360
	$(RM) *.tmp all-cffiles
Kurt Zeilenga's avatar
Kurt Zeilenga committed
361

362
veryclean-local-srv: FORCE
Howard Chu's avatar
Howard Chu committed
363
	@for i in $(SUBDIRS); do \
364
		if test -d $$i -a -f $$i/Makefile ; then \
365
366
367
368
369
			echo; echo "  cd $$i; $(MAKE) $(MFLAGS) clean"; \
			( cd $$i; $(MAKE) $(MFLAGS) veryclean ); \
		fi; \
	done

Kurt Zeilenga's avatar
Kurt Zeilenga committed
370
371
install-local-srv: install-slapd install-tools \
	install-conf install-db-config install-schema install-tools
Kurt Zeilenga's avatar
Kurt Zeilenga committed
372
373

install-slapd: FORCE
374
	-$(MKDIR) $(DESTDIR)$(libexecdir)
Kurt Zeilenga's avatar
Kurt Zeilenga committed
375
	-$(MKDIR) $(DESTDIR)$(localstatedir)/run
376
	$(LTINSTALL) $(INSTALLFLAGS) $(STRIP) -m 755 \
Kurt Zeilenga's avatar
Kurt Zeilenga committed
377
		slapd$(EXEEXT) $(DESTDIR)$(libexecdir)
Howard Chu's avatar
Howard Chu committed
378
	@for i in $(SUBDIRS); do \
Howard Chu's avatar
Howard Chu committed
379
380
381
382
383
384
	    if test -d $$i -a -f $$i/Makefile ; then \
		echo; echo "  cd $$i; $(MAKE) $(MFLAGS) install"; \
		( cd $$i; $(MAKE) $(MFLAGS) install ); \
		if test $$? != 0 ; then exit 1; fi ; \
	    fi; \
	done
385

Kurt Zeilenga's avatar
Kurt Zeilenga committed
386
all-cffiles: slapd $(SLAPD_DYNAMIC_BACKENDS) dynamic_overlays
Howard Chu's avatar
Howard Chu committed
387
388
	@if test $(PLAT) = NT; then \
	    sysconfdir=`cygpath -w $(sysconfdir) | \
389
		$(SED) -e 's/\\\\/\\\\\\\\\\\\\\\\/g'`; \
Howard Chu's avatar
Howard Chu committed
390
	    localstatedir=`cygpath -w $(localstatedir) | \
391
		$(SED) -e 's/\\\\/\\\\\\\\\\\\\\\\/g'`; \
Howard Chu's avatar
Howard Chu committed
392
	    moduledir=`cygpath -w $(moduledir) | \
393
		$(SED) -e 's/\\\\/\\\\\\\\\\\\\\\\/g'`; \
Howard Chu's avatar
Howard Chu committed
394
395
396
397
398
399
400
401
	else \
	    sysconfdir=$(sysconfdir); \
	    localstatedir=$(localstatedir); \
	    moduledir=$(moduledir); \
	fi; \
	$(SED) -e "s;%SYSCONFDIR%;$$sysconfdir;" \
		-e "s;%LOCALSTATEDIR%;$$localstatedir;" \
		-e "s;%MODULEDIR%;$$moduledir;" \
402
		$(srcdir)/slapd.conf > slapd.conf.tmp ; \
403
404
	touch all-cffiles

Kurt Zeilenga's avatar
Kurt Zeilenga committed
405
install-schema: FORCE
Kurt Zeilenga's avatar
Kurt Zeilenga committed
406
	@if test -d $(DESTDIR)$(schemadir) ; then \
Kurt Zeilenga's avatar
Kurt Zeilenga committed
407
408
409
410
411
412
413
414
415
		echo "MOVING EXISTING SCHEMA DIR to $(DESTDIR)$(schemadir).$$$$" ; \
		mv $(DESTDIR)$(schemadir) $(DESTDIR)$(schemadir).$$$$ ; \
	fi
	$(MKDIR) $(DESTDIR)$(schemadir)
	@SD=$(DESTDIR)$(schemadir) ; \
	files=`cd $(srcdir)/schema ; echo README *.ldif *.schema` ; \
	for i in $$files ; do \
		echo $(INSTALL) $(INSTALLFLAGS) -m 444 schema/$$i $$SD/$$i ; \
		$(INSTALL) $(INSTALLFLAGS) -m 444 $(srcdir)/schema/$$i $$SD/$$i ; \
Kurt Zeilenga's avatar
Kurt Zeilenga committed
416
417
	done

Kurt Zeilenga's avatar
Kurt Zeilenga committed
418
install-conf: FORCE
419
	@-$(MKDIR) $(DESTDIR)$(sysconfdir)
Kurt Zeilenga's avatar
Kurt Zeilenga committed
420
	$(INSTALL) $(INSTALLFLAGS) -m 600 slapd.conf.tmp $(DESTDIR)$(sysconfdir)/slapd.conf.default
421
422
	if test ! -f $(DESTDIR)$(sysconfdir)/slapd.conf; then \
		echo "installing slapd.conf in $(sysconfdir)"; \
Kurt Zeilenga's avatar
Kurt Zeilenga committed
423
424
		echo "$(INSTALL) $(INSTALLFLAGS) -m 600 slapd.conf.tmp $(DESTDIR)$(sysconfdir)/slapd.conf"; \
		$(INSTALL) $(INSTALLFLAGS) -m 600 slapd.conf.tmp $(DESTDIR)$(sysconfdir)/slapd.conf; \
425
	else \
Kurt Zeilenga's avatar
Kurt Zeilenga committed
426
427
		echo "PRESERVING EXISTING CONFIGURATION FILE $(DESTDIR)$(sysconfdir)/slapd.conf" ; \
	fi
Kurt Zeilenga's avatar
Kurt Zeilenga committed
428

Kurt Zeilenga's avatar
Kurt Zeilenga committed
429
430
431
install-db-config: FORCE
	@-$(MKDIR) $(DESTDIR)$(localstatedir) $(DESTDIR)$(sysconfdir)
	@-$(INSTALL) -m 700 -d $(DESTDIR)$(localstatedir)/openldap-data
432
	$(INSTALL) $(INSTALLFLAGS) -m 600 $(srcdir)/DB_CONFIG \
Kurt Zeilenga's avatar
Kurt Zeilenga committed
433
		$(DESTDIR)$(localstatedir)/openldap-data/DB_CONFIG.example
434
	$(INSTALL) $(INSTALLFLAGS) -m 600 $(srcdir)/DB_CONFIG \
Kurt Zeilenga's avatar
Kurt Zeilenga committed
435
436
		$(DESTDIR)$(sysconfdir)/DB_CONFIG.example

Kurt Zeilenga's avatar
Kurt Zeilenga committed
437
install-tools: FORCE
438
439
	-$(MKDIR) $(DESTDIR)$(sbindir)
	for i in $(SLAPTOOLS); do \
440
441
		$(RM) $(DESTDIR)$(sbindir)/$$i$(EXEEXT); \
		$(LN_S) -f $(DESTDIR)$(libexecdir)/slapd$(EXEEXT) $(DESTDIR)$(sbindir)/$$i$(EXEEXT); \
442
	done
Kurt Zeilenga's avatar
Kurt Zeilenga committed
443