mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-15 03:01:09 +08:00
2e5e4c3f20
liblutil/ntservice.c change registry key path used for non-default service names. slapd/Makefile.in change to generate slapd.syms dynamically slapd/daemon.c fix to make NT service ignore SIGBREAK slapd/main.c fix to allow NT to retrieve listening url from registry slapd/nt_svc.c fix for exported symbols slapd/result.c change use of strerror to sock_errstr slapd/slapd.syms no longer needed
293 lines
8.6 KiB
Makefile
293 lines
8.6 KiB
Makefile
# $OpenLDAP$
|
|
##
|
|
## Makefile.in for slapd
|
|
##
|
|
PROGRAMS=slapd
|
|
XPROGRAMS=sslapd libbackends.a .backend
|
|
XSRCS=version.c
|
|
|
|
NT_SRCS = nt_svc.c
|
|
NT_OBJS = nt_svc.o ../../libraries/liblutil/slapdmsg.res
|
|
|
|
SRCS = main.c daemon.c connection.c search.c filter.c add.c charray.c \
|
|
attr.c entry.c config.c backend.c result.c operation.c \
|
|
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 \
|
|
phonetic.c acl.c str2filter.c aclparse.c init.c user.c \
|
|
repl.c lock.c controls.c extended.c kerberos.c passwd.c \
|
|
schema.c schema_check.c schema_init.c schemaparse.c \
|
|
ad.c at.c mr.c syntax.c oc.c \
|
|
monitor.c configinfo.c starttls.c \
|
|
root_dse.c sasl.c module.c suffixalias.c $(@PLAT@_SRCS)
|
|
|
|
OBJS = main.o daemon.o connection.o search.o filter.o add.o charray.o \
|
|
attr.o entry.o config.o backend.o result.o operation.o \
|
|
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 \
|
|
phonetic.o acl.o str2filter.o aclparse.o init.o user.o \
|
|
repl.o lock.o controls.o extended.o kerberos.o passwd.o \
|
|
schema.o schema_check.o schema_init.o schemaparse.o \
|
|
ad.o at.o mr.o syntax.o oc.o \
|
|
monitor.o configinfo.o starttls.o \
|
|
root_dse.o sasl.o module.o suffixalias.o $(@PLAT@_OBJS)
|
|
|
|
LDAP_INCDIR= ../../include
|
|
LDAP_LIBDIR= ../../libraries
|
|
|
|
SLAP_DIR=
|
|
SLAPD_MODULES=@SLAPD_MODULES_LIST@
|
|
|
|
XDEFS = $(MODULES_CPPFLAGS)
|
|
XLDFLAGS = $(MODULES_LDFLAGS) $(SLAPD_MODULES)
|
|
|
|
# $(LTHREAD_LIBS) must be last
|
|
XLIBS = libbackends.a -lavl -lldbm -lldif -llutil -lldap_r -llber
|
|
XXLIBS = $(LDBM_LIBS) $(SLAPD_LIBS) \
|
|
$(SECURITY_LIBS) \
|
|
$(LDIF_LIBS) $(LUTIL_LIBS)
|
|
XXXLIBS = $(LTHREAD_LIBS) $(MODULES_LIBS)
|
|
|
|
BUILD_OPT = "--enable-slapd"
|
|
BUILD_SRV = @BUILD_SLAPD@
|
|
|
|
all-local-srv: all-cffiles
|
|
|
|
NT_DYN_DEFS = -DLIBLBER_DECL=dllimport -DLIBLDAP_DECL=dllimport
|
|
|
|
DEFINES = $(@PLAT@_@LIB_LINKAGE@_DEFS)
|
|
|
|
# The tricky part about building slapd in NT is that it will export symbols
|
|
# like a DLL. The symbols that it exports should be representative of all
|
|
# of the static symbols that it knows about.
|
|
|
|
NT_EXP = slapd.exp
|
|
NT_IMPLIB = libslapd.a
|
|
NT_DUMMY = symdummy.o
|
|
|
|
# Add extra def targets here
|
|
EXTRA_DEFS =
|
|
|
|
# NT needs this if libltdl is built statically. You'll have to fix the path
|
|
# to point to where libltdl was built, then put ltdl.def in EXTRA_DEFS
|
|
ltdl.def: ../../../libtool/libltdl/*.o
|
|
dlltool --export-all-symbols --output-def $@ $^
|
|
|
|
DYNAMIC_DEFS = liblber.def libldap_r.def
|
|
|
|
STATIC_DEFS = libavl.def libldbm.def libldif.def liblutil.def slapd.def \
|
|
$(EXTRA_DEFS)
|
|
|
|
libavl.def: $(LDAP_LIBDIR)/libavl/*.o
|
|
dlltool --export-all-symbols --output-def $@ `ls $^ | grep -v test`
|
|
|
|
liblber.def: $(LDAP_LIBDIR)/liblber/*.o
|
|
dlltool --export-all-symbols --output-def $@ `ls $^ | grep -v test`
|
|
|
|
libldap_r.def: $(LDAP_LIBDIR)/libldap_r/*.o
|
|
dlltool --export-all-symbols --output-def $@ `ls $^ | grep -v test`
|
|
|
|
libldbm.def: $(LDAP_LIBDIR)/libldbm/*.o
|
|
dlltool --export-all-symbols --output-def $@ `ls $^ | grep -v test`
|
|
|
|
libldif.def: $(LDAP_LIBDIR)/libldif/*.o
|
|
dlltool --export-all-symbols --output-def $@ `ls $^ | grep -v test`
|
|
|
|
liblutil.def: $(LDAP_LIBDIR)/liblutil/*.o
|
|
dlltool --export-all-symbols --output-def $@ `ls $^ | grep -v test`
|
|
|
|
slapd.def: $(OBJS) version.o
|
|
dlltool --export-all-symbols --exclude-symbols main,ServiceMain@8 --output-def $@ `ls $^ | grep -v test`
|
|
|
|
# We don't want to include symbols from dynamic libraries.
|
|
all.def: $(STATIC_DEFS) $(DYNAMIC_DEFS)
|
|
cat $(STATIC_DEFS) | grep " @ " | sed -e 's/ @ [0-9]*//' > $@
|
|
if [ "@LIB_LINKAGE@" != "DYN" ] ; \
|
|
then \
|
|
cat $(DYNAMIC_DEFS) | grep " @ " | sed -e 's/ @ [0-9]*//' >> $@; \
|
|
fi
|
|
echo EXPORTS > tmp.def
|
|
sort $@ >> tmp.def
|
|
rm -f $@
|
|
dlltool --input-def tmp.def --output-def $@
|
|
rm -f tmp.def
|
|
|
|
DUMMYTMP = symdummytmp.c
|
|
|
|
symdummy.c: all.def $(ALL_DEFS)
|
|
rm -f $@
|
|
echo "static void never_called() {" > $(DUMMYTMP)
|
|
cat $< | grep " @ " | while read line; \
|
|
do \
|
|
set dummy $$line; \
|
|
case $$# in \
|
|
5) \
|
|
echo "int $$2();" >> $@; \
|
|
echo "$$2();" >> $(DUMMYTMP); \
|
|
;; \
|
|
6) \
|
|
echo "extern int $$2;" >> $@; \
|
|
echo "$$2 = 0;" >> $(DUMMYTMP); \
|
|
;; \
|
|
esac; \
|
|
done
|
|
echo "" >> $@
|
|
echo "}" >> $(DUMMYTMP)
|
|
cat $(DUMMYTMP) >> $@
|
|
rm -f $(DUMMYTMP)
|
|
|
|
symdummy.o: symdummy.c
|
|
$(CC) $(CFLAGS) -c $<
|
|
|
|
SLAPD_OBJS = $(OBJS) version.o symdummy.o
|
|
|
|
slapd.exp: libbackends.a all.def $(SLAPD_OBJS)
|
|
$(LTLINK) -o slapd $(SLAPD_OBJS) $(LIBS) $(WRAP_LIBS) -Wl,--base-file,slapd.base
|
|
rm -f slapd.exe
|
|
dlltool --dllname slapd.exe --input-def all.def --base-file slapd.base --output-exp $@
|
|
$(LTLINK) -o slapd $(SLAPD_OBJS) $(LIBS) $(WRAP_LIBS) $@ -Wl,--base-file,slapd.base
|
|
rm -f slapd.exe
|
|
dlltool --dllname slapd.exe --input-def all.def --base-file slapd.base --output-exp $@
|
|
|
|
libslapd.a: all.def
|
|
dlltool --dllname slapd.exe --input-def $< --output-lib $@
|
|
|
|
slapd: libbackends.a version.o $(@PLAT@_EXP) $(@PLAT@_DUMMY)
|
|
$(LTLINK) -o $@ $(@PLAT@_EXP) $(@PLAT@_DUMMY) $(OBJS) version.o $(LIBS) $(WRAP_LIBS)
|
|
(cd tools; $(MAKE) $(MFLAGS) all)
|
|
|
|
sslapd: version.o
|
|
$(LTLINK) -static -o $@ $(OBJS) version.o $(LIBS) $(WRAP_LIBS)
|
|
|
|
.backend: $(@PLAT@_IMPLIB) FORCE
|
|
@for i in back-*; do \
|
|
if [ -d $$i ]; then \
|
|
echo " "; echo " cd $$i; $(MAKE) $(MFLAGS) all"; \
|
|
( cd $$i; $(MAKE) $(MFLAGS) all ); \
|
|
fi; \
|
|
done; \
|
|
echo " "
|
|
|
|
libbackends.a: .backend
|
|
@$(RM) -r tmp
|
|
@$(MKDIR) tmp
|
|
@-for i in back-*/*.a; do \
|
|
( \
|
|
cd tmp; \
|
|
$(AR) x ../$$i; \
|
|
pre=`echo $$i | sed -e 's/\/.*$$//' -e 's/back-//'`; \
|
|
for j in *.o; do \
|
|
mv $$j $${pre}$$j; \
|
|
done; \
|
|
$(AR) ruv libbackends.a *.o 2>&1 | grep -v truncated; \
|
|
$(RM) *.o __.SYMDEF; \
|
|
echo "added backend library $$i"; \
|
|
); \
|
|
done
|
|
@mv -f tmp/libbackends.a ./libbackends.a
|
|
@$(RM) -r tmp
|
|
@if [ ! -z "$(RANLIB)" ]; then \
|
|
$(RANLIB) libbackends.a; \
|
|
fi
|
|
@ls -l libbackends.a
|
|
|
|
version.c: $(OBJS) $(SLAPD_LIBDEPEND)
|
|
@-$(RM) $@
|
|
$(MKVERSION) -s -n Versionstr slapd > $@
|
|
|
|
depend-local-srv: FORCE
|
|
@for i in back-* shell-backends tools; do \
|
|
if [ -d $$i ]; then \
|
|
echo; echo " cd $$i; $(MAKE) $(MFLAGS) depend"; \
|
|
( cd $$i; $(MAKE) $(MFLAGS) depend ); \
|
|
fi; \
|
|
done
|
|
@echo ""
|
|
|
|
clean-local:
|
|
rm -f *.exp *.def *.base *.a *.objs symdummy.c
|
|
|
|
clean-local-srv: FORCE
|
|
@for i in back-* shell-backends tools; do \
|
|
if [ -d $$i ]; then \
|
|
echo; echo " cd $$i; $(MAKE) $(MFLAGS) clean"; \
|
|
( cd $$i; $(MAKE) $(MFLAGS) clean ); \
|
|
fi; \
|
|
done
|
|
rm -f *.tmp all-cffiles
|
|
|
|
veryclean-local-srv: FORCE
|
|
@for i in back-* shell-backends tools; do \
|
|
if [ -d $$i ]; then \
|
|
echo; echo " cd $$i; $(MAKE) $(MFLAGS) clean"; \
|
|
( cd $$i; $(MAKE) $(MFLAGS) veryclean ); \
|
|
fi; \
|
|
done
|
|
|
|
install-local-srv: install-slapd install-conf install-schema install-tools
|
|
|
|
install-slapd: FORCE
|
|
-$(MKDIR) $(DESTDIR)$(libexecdir)
|
|
-$(MKDIR) $(DESTDIR)$(localstatedir)
|
|
$(LTINSTALL) $(INSTALLFLAGS) -m 755 slapd$(EXEEXT) \
|
|
$(DESTDIR)$(libexecdir)
|
|
@if [ ! -z "$(SLAPD_MODULES)" ]; then \
|
|
for i in back-* shell-backends tools; do \
|
|
if [ -d $$i ]; then \
|
|
echo; echo " cd $$i; $(MAKE) $(MFLAGS) install"; \
|
|
( cd $$i; $(MAKE) $(MFLAGS) install ); \
|
|
fi; \
|
|
done; \
|
|
fi
|
|
|
|
|
|
CFFILES=slapd.conf slapd.at.conf slapd.oc.conf
|
|
|
|
all-cffiles: slapd
|
|
@for i in $(CFFILES); do \
|
|
tmpcf=$$i.tmp; \
|
|
$(SED) -e 's;%SYSCONFDIR%;$(sysconfdir);' \
|
|
-e 's;%LOCALSTATEDIR%;$(localstatedir);' \
|
|
-e 's;%MODULEDIR%;$(moduledir);' \
|
|
$(srcdir)/$$i > $$tmpcf ; \
|
|
done
|
|
touch all-cffiles
|
|
|
|
install-schema: FORCE
|
|
@-$(MKDIR) $(DESTDIR)$(sysconfdir)/schema
|
|
@cd $(srcdir) ; \
|
|
for i in schema/*.schema schema/*.conf ; do \
|
|
if test ! -f $(DESTDIR)$(sysconfdir)/$$i; then \
|
|
echo "installing $$i in $(sysconfdir)"; \
|
|
echo $(INSTALL) $(INSTALLFLAGS) $$i $(DESTDIR)$(sysconfdir)/$$i; \
|
|
$(INSTALL) $(INSTALLFLAGS) $$i $(DESTDIR)$(sysconfdir)/$$i; \
|
|
else \
|
|
echo "PRESERVING EXISTING SCHEMA FILE $(DESTDIR)$(sysconfdir)/$$i"; \
|
|
fi; \
|
|
$(INSTALL) $(INSTALLFLAGS) $$i $(DESTDIR)$(sysconfdir)/$$i.default ; \
|
|
done
|
|
|
|
install-conf: FORCE
|
|
@-$(MKDIR) $(DESTDIR)$(sysconfdir)
|
|
@-$(MKDIR) $(DESTDIR)$(localstatedir)/openldap-ldbm
|
|
@for i in $(CFFILES); do \
|
|
tmpcf=$$i.tmp ; \
|
|
if test $$i = slapd.conf ; then \
|
|
mode=600 ; \
|
|
else \
|
|
mode=644 ; \
|
|
fi ; \
|
|
if test ! -f $(DESTDIR)$(sysconfdir)/$$i; then \
|
|
echo "installing $$i in $(sysconfdir)"; \
|
|
echo "$(INSTALL) $(INSTALLFLAGS) -m $$mode $$tmpcf $(DESTDIR)$(sysconfdir)/$$i"; \
|
|
$(INSTALL) $(INSTALLFLAGS) -m $$mode $$tmpcf $(DESTDIR)$(sysconfdir)/$$i; \
|
|
else \
|
|
echo "PRESERVING EXISTING CONFIGURATION FILE $(DESTDIR)$(sysconfdir)/$$i" ; \
|
|
fi; \
|
|
$(INSTALL) $(INSTALLFLAGS) -m $$mode $$tmpcf $(DESTDIR)$(sysconfdir)/$$i.default ; \
|
|
done
|
|
|
|
install-tools: FORCE
|
|
@-$(MKDIR) $(DESTDIR)$(sbindir)
|
|
(cd tools; $(MAKE) $(MFLAGS) install)
|
|
|