+# $OpenLDAP$
+## Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved.
+## COPYING RESTRICTIONS APPLY, see COPYRIGHT file
#-----------------------------------------------------------------------------
-# Copyright (c) 1995 Regents of the University of Michigan.
+# Portions Copyright (c) 1995 Regents of the University of Michigan.
# All rights reserved.
#
# Redistribution and use in source and binary forms are permitted
# Stand alone LDAP server tools makefile
#
#-----------------------------------------------------------------------------
-HAVE_ISODE = @HAVE_ISODE@
BUILD_LDBM = @BUILD_LDBM@
+BUILD_BDB2 = @BUILD_BDB2@
+BUILD_QUIPU = @BUILD_QUIPU@
LDAP_INCDIR= ../../../include
LDAP_LIBDIR= ../../../libraries
-XLIBS = $(LDAP_LIBS) $(SLAPD_LIBS) -lavl $(LDAP_LIBLDBM)
-XXLIBS = $(KRB_LIBS) $(LDAP_LIBLTHREAD)
+SLAP_DIR=../
+SLAPD_MODULES = @SLAPD_MODULES_LIST@
+XDEFS = $(MODULES_CPPFLAGS)
+XLDFLAGS = $(MODULES_LDFLAGS) $(SLAPD_MODULES)
-PROGRAMS=ldif2index ldif2ldbm ldbmcat ldif2id2entry \
- ldif2id2children centipede ldbmtest ldif
+XLIBS = -lavl -lldif -lldbm -llutil -lldap_r -llber
+XXLIBS = $(LDAPD_LIBS) $(SLAPD_LIBS) \
+ $(LDBM_LIBS) $(SECURITY_LIBS) \
+ $(LDIF_LIBS) $(LUTIL_LIBS)
+XXXLIBS = $(LTHREAD_LIBS) $(MODULES_LIBS)
-SRCS = centipede.c ldbmcat.c ldbmtest.c sizecount.c \
- ldif.c ldif2id2children.c ldif2id2entry.c ldif2index.c ldif2ldbm.c
+PROGRAMS=ldif slappasswd slapadd slapcat slapindex
+LDBMPROGRAMS=centipede sizecount
+BDB2PROGRAMS=
+QUIPUPROGRAMS=chlog2replog edb2ldif
+
+# CPPFLAGS will include the defines for dynamic libs in Mingw32.
+NT_DYN_DEFS = -DLIBLBER_DECL=dllimport -DLIBLDAP_DECL=dllimport
+CPPFLAGS = $(@PLAT@_@LIB_LINKAGE@_DEFS)
+
+SRCS = ldif.c mimic.c slapcommon.c
XSRCS = edb2-vers.c
-EDB2LDIFSRCS = edb2ldif.c ldapsyntax.c
-EDB2LDIFOBJS = edb2ldif.o ldapsyntax.o
+LDBMSRCS = centipede.c sizecount.c
-OBJS2 = ../config.o ../ch_malloc.o ../backend.o ../charray.o \
- ../aclparse.o ../schema.o ../result.o ../filterentry.o \
+BDB2SRCS =
+
+QUIPUSRCS = edb2ldif.c ldapsyntax.c chlog2replog.c
+SLAPD_OBJS = ../config.o ../ch_malloc.o ../backend.o ../charray.o \
+ ../module.o ../aclparse.o ../filterentry.o \
+ ../schema.o ../schema_check.o ../schema_init.o ../schemaparse.o \
+ ../ad.o ../at.o ../mr.o ../oc.o ../syntax.o \
../acl.o ../phonetic.o ../attr.o ../value.o ../entry.o \
../dn.o ../filter.o ../str2filter.o ../ava.o ../init.o \
- ../schemaparse.o
+ ../controls.o ../kerberos.o ../passwd.o \
+ ../extended.o ../starttls.o
-all-local: build-ldbm build-edb2ldif build-chlog2replog
+SLAPOBJS = $(SLAPD_OBJS) slapcommon.o mimic.o
-build-ldbm: FORCE
- @if [ "$(BUILD_LDBM)" = "yes" ]; then \
- $(MAKE) $(MFLAGS) ldbm-tools; \
- else \
- echo "run configure with --with-ldbm to build LDBM tools"; \
- fi
+EDB2LDIFSRCS = edb2ldif.c ldapsyntax.c
+EDB2LDIFOBJS = edb2ldif.o ldapsyntax.o
-ldbm-tools: $(PROGRAMS)
+UNIX_PRGS = build-ldbm build-bdb2 build-quipu
-build-edb2ldif: FORCE
- @if [ "$(HAVE_ISODE)" = "yes" ]; then \
- $(MAKE) $(MFLAGS) edb2ldif; \
- else \
- echo "run configure with --with-isode to build edb2ldif"; \
- fi
+all-local: build-progs $(@PLAT@_PRGS)
-edb2ldif: edb2-vers.o
- $(CC) $(LDFLAGS) -o $@ $(EDB2LDIFOBJS) edb2-vers.o $(LIBS)
+build-progs: $(PROGRAMS)
-edb2-vers.c: $(EDB2LDIFOBJS)
- $(RM) $@
- (u=$${USER-root} v=`$(CAT) $(VERSIONFILE)` d=`$(PWD)` h=`$(HOSTNAME)` \
- t=`$(DATE)`; $(SED) -e "s|%WHEN%|$${t}|" \
- -e "s|%WHOANDWHERE%|$${u}@$${h}:$${d}|" \
- -e "s|%VERSION%|$${v}|" \
- < Vers-edb2.c > $@)
-
-build-chlog2replog: FORCE
- @if [ "$(HAVE_ISODE)" = "yes" ]; then \
- $(MAKE) $(MFLAGS) chlog2replog; \
- else \
- echo "run configure with --with-isode to build chlog2replog"; \
- fi
-
-chlog2replog: chlog2replog.o ../lock.o ../ch_malloc.o
- $(LTLINK) -o $@ chlog2replog.o ../lock.o ../ch_malloc.o $(LIBS)
+build-ldbm: ldbm-tools-$(BUILD_LDBM)
+ldbm-tools-no:
+ @echo "run configure with --enable-ldbm to build LDBM tools"
-ldif2index: ldif2index.o ../libbackends.a $(OBJS2)
- $(LTLINK) -o $@ ldif2index.o $(OBJS2) ../libbackends.a $(LIBS)
+ldbm-tools-yes ldbm-tools-mod: $(LDBMPROGRAMS)
-ldif2ldbm: ldif2ldbm.o ../libbackends.a $(OBJS2)
- $(LTLINK) -o $@ ldif2ldbm.o $(OBJS2) ../libbackends.a $(LIBS)
+build-bdb2: bdb2-tools-$(BUILD_BDB2)
+bdb2-tools-no:
+ @echo "run configure with --enable-bdb2 to build BDB2 tools"
-ldif2id2entry: ldif2id2entry.o ../libbackends.a $(OBJS2)
- $(LTLINK) -o $@ ldif2id2entry.o $(OBJS2) ../libbackends.a $(LIBS)
+bdb2-tools-yes bdb2-tools-mod: $(BDB2PROGRAMS)
-ldif2id2children: ldif2id2children.o ../libbackends.a $(OBJS2)
- $(LTLINK) -o $@ ldif2id2children.o $(OBJS2) ../libbackends.a $(LIBS)
+build-quipu: quipu-tools-$(BUILD_QUIPU)
+quipu-tools-no:
+ @echo "run configure with --enable-quipu to build QUIPU tools"
-ldbmcat: ldbmcat.o
- $(LTLINK) -o $@ ldbmcat.o $(LIBS)
+quipu-tools-yes quipu-tools-mod: $(QUIPUPROGRAMS)
-ldif: ldif.o
+#
+# SLAP Tools
+#
+slapadd: slapadd.o ../libbackends.a $(SLAPOBJS) $(SLAPD_LIBDEPEND)
+ $(LTLINK) -o $@ slapadd.o $(SLAPOBJS) ../libbackends.a $(LIBS)
+
+slapcat: slapcat.o ../libbackends.a $(SLAPOBJS) $(SLAPD_LIBDEPEND)
+ $(LTLINK) -o $@ slapcat.o $(SLAPOBJS) ../libbackends.a $(LIBS)
+
+slapindex: slapindex.o ../libbackends.a $(SLAPOBJS) $(SLAPD_LIBDEPEND)
+ $(LTLINK) -o $@ slapindex.o $(SLAPOBJS) ../libbackends.a $(LIBS)
+
+ldif: ldif.o $(SLAPD_LIBDEPEND)
$(LTLINK) -o $@ ldif.o $(LIBS)
-centipede: centipede.o
+slappasswd: slappasswd.o $(SLAPD_LIBDEPEND)
+ $(LTLINK) -o $@ slappasswd.o $(LIBS)
+
+#
+# LDBM Specific Tools
+#
+centipede: centipede.o $(SLAPD_LIBDEPEND)
$(LTLINK) -o $@ centipede.o $(LIBS)
-sizecount: sizecount.o ../phonetic.o ../ch_malloc.o
+sizecount: sizecount.o ../phonetic.o ../ch_malloc.o $(SLAPD_LIBDEPEND)
$(LTLINK) -o $@ sizecount.o ../phonetic.o ../ch_malloc.o $(LIBS)
-ldbmtest: ldbmtest.o ../libbackends.a $(OBJS2)
- $(LTLINK) -o ldbmtest ldbmtest.o $(OBJS2) ../libbackends.a $(LIBS)
+#
+# BDBM Specific Tools
+#
+
+#
+# QUIPU Specific Tools
+#
+edb2ldif: edb2-vers.o
+ $(CC) $(LDFLAGS) -o $@ $(EDB2LDIFOBJS) edb2-vers.o $(LIBS)
+
+edb2-vers.c: $(EDB2LDIFOBJS)
+ @-$(RM) $@
+ $(MKVERSION) ebd2ldif > $@
+
+chlog2replog: chlog2replog.o ../lock.o ../ch_malloc.o $(SLAPD_LIBDEPEND)
+ $(LTLINK) -o $@ chlog2replog.o ../lock.o ../ch_malloc.o $(LIBS)
clean-local: FORCE
- $(RM) $(PROGRAMS) $(XPROGRAMS) $(XSRCS) edb2-vers.c \
- *.o core .libs/*
+ $(RM) $(PROGRAMS) $(LDBMPROGRAMS) $(BDB2PROGRAMS) $(QUIPUPROGRAMS) \
+ $(XPROGRAMS) $(XSRCS) *.o core .libs/* *.exe
depend-local: FORCE
- @DEPEND=no ; DEPEND_LDBM= ; DEPEND_ISODE= ; \
- if [ "$(BUILD_LDBM)" = "yes" ]; then \
- DEPEND_LDBM="$(SRCS)"; \
- DEPEND=yes ; \
- fi; \
- if [ "$(HAVE_ISODE)" = "yes" ]; then \
- DEPEND_ISODE="$(ISODEINCLUDEFLAG) chlog2replog.c $(EDB2LDIFSRCS)"; \
- DEPEND=yes ; \
- fi; \
- if [ "$$DEPEND" = "yes" ]; then \
- $(MKDEP) $(DEFS) $(DEFINES) $$DEPEND_ISODE $$DEPEND_LDBM; \
- else \
- echo "slapd-tools: no dependencies to make"; \
- fi
-
-install-local: install-ldbm install-isode FORCE
-
-install-ldbm: FORCE
- @-$(MKDIR) $(sbindir)
- @if [ "$(BUILD_LDBM)" = "yes" ]; then \
- $(LTINSTALL) $(INSTALLFLAGS) -m 755 ldif2ldbm $(sbindir) ; \
- $(LTINSTALL) $(INSTALLFLAGS) -m 755 ldif2index $(sbindir) ; \
- $(LTINSTALL) $(INSTALLFLAGS) -m 755 ldif2id2entry $(sbindir) ; \
- $(LTINSTALL) $(INSTALLFLAGS) -m 755 ldif2id2children $(sbindir) ; \
- $(LTINSTALL) $(INSTALLFLAGS) -m 755 ldbmcat $(sbindir) ; \
- $(LTINSTALL) $(INSTALLFLAGS) -m 755 ldif $(sbindir) ; \
- $(LTINSTALL) $(INSTALLFLAGS) -m 755 centipede $(sbindir) ; \
- $(LTINSTALL) $(INSTALLFLAGS) -m 755 ldbmtest $(sbindir) ; \
- else \
- exit 0 ; \
- fi
-
-install-isode: FORCE
- @-$(MKDIR) $(sbindir)
- @if [ "$(HAVE_ISODE)" = "yes" ]; then \
- $(LTINSTALL) $(INSTALLFLAGS) -m 755 edb2ldif $(sbindir); \
- $(LTINSTALL) $(INSTALLFLAGS) -m 755 chlog2replog $(sbindir); \
- else \
- exit 0 ; \
- fi
-
+ DEPEND_LDBM= ; DEPEND_BDB2= ; DEPEND_QUIPU= ; \
+ if [ "$(BUILD_LDBM)" != "no" ]; then \
+ DEPEND_LDBM="$(LDBMSRCS)"; \
+ fi; \
+ if [ "$(BUILD_BDB2)" != "no" ]; then \
+ DEPEND_BDB2="$(BDBMSRCS)"; \
+ fi; \
+ if [ "$(BUILD_QUIPU)" != "no" ]; then \
+ DEPEND_QUIPU="$(QUIPUINCLUDEFLAG) $(QUIPUSRCS)"; \
+ fi; \
+ $(MKDEP) $(DEFS) $(DEFINES) $(SRCS) $$DEPEND_QUIPU \
+ $$DEPEND_LDBM $$DEPEND_BDB2
+
+install-local: install-ldbm-$(BUILD_LDBM) install-bdb2-$(BUILD_BDB2) \
+ install-quipu-$(BUILD_QUIPU)
+
+install-ldbm-no install-bdb2-no install-quipu-no:
+
+install-ldbm-yes install-ldbm-mod: FORCE
+ -$(MKDIR) $(DESTDIR)$(sbindir)
+ @for bin in $(PROGRAMS); do \
+ $(LTINSTALL) $(INSTALLFLAGS) -m 755 $$bin$(EXEEXT) \
+ $(DESTDIR)$(sbindir); \
+ done
+
+install-bdb2-yes install-bdb2-mod: FORCE
+ @-$(MKDIR) $(DESTDIR)$(sbindir)
+
+install-quipu-yes: FORCE
+ @-$(MKDIR) $(DESTDIR)$(sbindir)
+ for bin in edb2ldif chlog2replog; do \
+ $(LTINSTALL) $(INSTALLFLAGS) -m 755 $$bin $(DESTDIR)$(sbindir); \
+ done