| 1 | #!gmake
|
|---|
| 2 | #
|
|---|
| 3 | CC = @CC@
|
|---|
| 4 | GCOV = @GCOV@
|
|---|
| 5 | XSLTPROC = @XSLTPROC@
|
|---|
| 6 | DOXYGEN = @DOXYGEN@
|
|---|
| 7 | prefix = @prefix@
|
|---|
| 8 | exec_prefix = @exec_prefix@
|
|---|
| 9 | datarootdir = @datarootdir@
|
|---|
| 10 | includedir = @includedir@
|
|---|
| 11 | libdir = @libdir@
|
|---|
| 12 | bindir = @bindir@
|
|---|
| 13 | mandir = @mandir@
|
|---|
| 14 | VPATH = @srcdir@:@libreplacedir@
|
|---|
| 15 | srcdir = @srcdir@
|
|---|
| 16 | builddir = @builddir@
|
|---|
| 17 | sharedbuilddir = @sharedbuilddir@
|
|---|
| 18 | INSTALLCMD = @INSTALL@
|
|---|
| 19 | SLAPD = @SLAPD@
|
|---|
| 20 | EXTRA_OBJ=@EXTRA_OBJ@
|
|---|
| 21 | TESTS=test-tdb.sh @TESTS@
|
|---|
| 22 | PACKAGE_VERSION = @PACKAGE_VERSION@
|
|---|
| 23 | PYTHON = @PYTHON@
|
|---|
| 24 | PYTHON_CONFIG = @PYTHON_CONFIG@
|
|---|
| 25 | ldbdir = $(srcdir)
|
|---|
| 26 | LIB_PATH_VAR = @LIB_PATH_VAR@
|
|---|
| 27 |
|
|---|
| 28 | LDB_MODULESDIR = @LDB_MODULESDIR@
|
|---|
| 29 |
|
|---|
| 30 | TALLOC_LIBS = @TALLOC_LIBS@
|
|---|
| 31 | TALLOC_CFLAGS = @TALLOC_CFLAGS@
|
|---|
| 32 | TALLOC_OBJ = @TALLOC_OBJ@
|
|---|
| 33 |
|
|---|
| 34 | TDB_LIBS = @TDB_LIBS@
|
|---|
| 35 | TDB_CFLAGS = @TDB_CFLAGS@
|
|---|
| 36 | TDB_OBJ = @TDB_OBJ@
|
|---|
| 37 |
|
|---|
| 38 | TEVENT_LIBS = @TEVENT_LIBS@
|
|---|
| 39 | TEVENT_CFLAGS = @TEVENT_CFLAGS@
|
|---|
| 40 | TEVENT_OBJ = @TEVENT_OBJ@
|
|---|
| 41 |
|
|---|
| 42 | POPT_LIBS = @POPT_LIBS@
|
|---|
| 43 | POPT_CFLAGS = @POPT_CFLAGS@
|
|---|
| 44 | POPT_OBJ = @POPT_OBJ@
|
|---|
| 45 |
|
|---|
| 46 | LDAP_LIBS = @LDAP_LIBS@
|
|---|
| 47 |
|
|---|
| 48 | LIBDL = @LIBDL@
|
|---|
| 49 |
|
|---|
| 50 | SHLIBEXT = @SHLIBEXT@
|
|---|
| 51 |
|
|---|
| 52 | LD_EXPORT_DYNAMIC = @LD_EXPORT_DYNAMIC@
|
|---|
| 53 | SHLD = @SHLD@
|
|---|
| 54 | SHLD_FLAGS = @SHLD_FLAGS@
|
|---|
| 55 |
|
|---|
| 56 | LDFLAGS = @LDFLAGS@
|
|---|
| 57 | LIBS = @LIBS@
|
|---|
| 58 |
|
|---|
| 59 | PICFLAG = @PICFLAG@
|
|---|
| 60 | CFLAGS=-g -I$(srcdir)/include -Iinclude -I$(srcdir) -I$(srcdir)/.. \
|
|---|
| 61 | $(POPT_CFLAGS) $(TALLOC_CFLAGS) $(TDB_CFLAGS) $(TEVENT_CFLAGS) \
|
|---|
| 62 | -DLIBDIR=\"$(libdir)\" -DSHLIBEXT=\"$(SHLIBEXT)\" -DUSE_MMAP=1 \
|
|---|
| 63 | -DLDB_MODULESDIR=\"$(LDB_MODULESDIR)\" \
|
|---|
| 64 | @CFLAGS@
|
|---|
| 65 |
|
|---|
| 66 | MDLD = @MDLD@
|
|---|
| 67 | MDLD_FLAGS = @MDLD_FLAGS@
|
|---|
| 68 |
|
|---|
| 69 | OBJS = $(MODULES_OBJ) $(COMMON_OBJ) $(LDB_TDB_OBJ) $(TDB_OBJ) $(TEVENT_OBJ) $(TALLOC_OBJ) $(POPT_OBJ) $(LDB_MAP_OBJ) @LIBREPLACEOBJ@ $(EXTRA_OBJ)
|
|---|
| 70 |
|
|---|
| 71 | headers = $(srcdir)/include/ldb.h $(srcdir)/include/ldb_errors.h $(srcdir)/include/ldb_handlers.h $(srcdir)/include/ldb_module.h
|
|---|
| 72 |
|
|---|
| 73 | BINS = bin/ldbadd bin/ldbsearch bin/ldbdel bin/ldbmodify bin/ldbedit bin/ldbrename bin/ldbtest
|
|---|
| 74 |
|
|---|
| 75 | EXAMPLES = examples/ldbreader examples/ldifreader
|
|---|
| 76 |
|
|---|
| 77 | DIRS = lib bin common ldb_tdb ldb_ldap ldb_sqlite3 modules tools examples
|
|---|
| 78 |
|
|---|
| 79 | default: all
|
|---|
| 80 |
|
|---|
| 81 | include $(ldbdir)/rules.mk
|
|---|
| 82 |
|
|---|
| 83 | nss: nssdir all $(NSS_LIB)
|
|---|
| 84 |
|
|---|
| 85 | nssdir:
|
|---|
| 86 | @mkdir -p $(NSSDIR)
|
|---|
| 87 |
|
|---|
| 88 | SONAME = libldb.$(SHLIBEXT).0
|
|---|
| 89 | SOLIB = libldb.$(SHLIBEXT).$(PACKAGE_VERSION)
|
|---|
| 90 | LIBSOLIB = lib/$(SOLIB)
|
|---|
| 91 | STATICLIB = lib/libldb.a
|
|---|
| 92 |
|
|---|
| 93 | lib/$(SONAME): $(LIBSOLIB)
|
|---|
| 94 | ln -fs libldb.$(SHLIBEXT).$(PACKAGE_VERSION) $@
|
|---|
| 95 |
|
|---|
| 96 | lib/libldb.$(SHLIBEXT): $(LIBSOLIB) lib/$(SONAME)
|
|---|
| 97 | ln -fs libldb.$(SHLIBEXT).$(PACKAGE_VERSION) $@
|
|---|
| 98 |
|
|---|
| 99 | lib/libnss_ldb.$(SHLIBEXT).2: $(NSS_OBJ) $(LIBSOLIB)
|
|---|
| 100 | $(SHLD) $(SHLD_FLAGS) -o $@ $(NSS_OBJ) $(LDFLAGS) $(LIBSOLIB) @SONAMEFLAG@libnss_ldb.$(SHLIBEXT).2
|
|---|
| 101 |
|
|---|
| 102 | $(LIBSOLIB): $(OBJS)
|
|---|
| 103 | $(SHLD) $(SHLD_FLAGS) -o $@ $(OBJS) $(LDFLAGS) $(LIBS) $(TALLOC_LIBS) $(TDB_LIBS) $(TEVENT_LIBS) $(LIBDL) $(LDAP_LIBS) @SONAMEFLAG@$(SONAME)
|
|---|
| 104 | ln -sf libldb.$(SHLIBEXT).$(PACKAGE_VERSION) lib/libldb.$(SHLIBEXT)
|
|---|
| 105 |
|
|---|
| 106 | all: showflags dirs $(OBJS) $(STATICLIB) $(LIBSOLIB) $(BINS) $(EXAMPLES) manpages \
|
|---|
| 107 | @PYTHON_BUILD_TARGET@
|
|---|
| 108 |
|
|---|
| 109 | shared-build: all
|
|---|
| 110 | ${INSTALLCMD} -d $(sharedbuilddir)/lib
|
|---|
| 111 | ${INSTALLCMD} -m 644 $(STATICLIB) $(sharedbuilddir)/lib
|
|---|
| 112 | ${INSTALLCMD} -m 755 $(LIBSOLIB) $(sharedbuilddir)/lib
|
|---|
| 113 | ln -sf $(SOLIB) $(sharedbuilddir)/lib/$(SONAME)
|
|---|
| 114 | ln -sf $(SOLIB) $(sharedbuilddir)/lib/libldb.so
|
|---|
| 115 | ${INSTALLCMD} -d $(sharedbuilddir)/include
|
|---|
| 116 | ${INSTALLCMD} -m 644 $(srcdir)/include/ldb.h $(sharedbuilddir)/include
|
|---|
| 117 | ${INSTALLCMD} -m 644 $(srcdir)/include/ldb_errors.h $(sharedbuilddir)/include
|
|---|
| 118 | ${INSTALLCMD} -m 644 $(srcdir)/include/ldb_handlers.h $(sharedbuilddir)/include
|
|---|
| 119 |
|
|---|
| 120 | dirs:
|
|---|
| 121 | @mkdir -p $(DIRS)
|
|---|
| 122 |
|
|---|
| 123 | manpages::
|
|---|
| 124 | @$(srcdir)/docs/builddocs.sh "$(XSLTPROC)" "$(srcdir)"
|
|---|
| 125 |
|
|---|
| 126 | doxygen::
|
|---|
| 127 | test -z "$(DOXYGEN)" || (cd $(srcdir) && "$(DOXYGEN)")
|
|---|
| 128 |
|
|---|
| 129 | clean::
|
|---|
| 130 | rm -f *.o */*.o *.gcov */*.gc?? tdbtest.ldb*
|
|---|
| 131 | rm -f $(BINS) $(TDB_OBJ) $(TALLOC_OBJ) $(STATICLIB) $(NSS_LIB) $(LIBSOLIB)
|
|---|
| 132 | rm -f $(POPT_OBJ)
|
|---|
| 133 | rm -f man/*.1 man/*.3 man/*.html
|
|---|
| 134 | rm -f $(EXAMPLES)
|
|---|
| 135 | rm -rf apidocs/
|
|---|
| 136 | rm -rf tests/schema/
|
|---|
| 137 |
|
|---|
| 138 | distclean:: clean
|
|---|
| 139 | rm -rf bin lib
|
|---|
| 140 | rm -f config.log config.status config.cache include/config.h
|
|---|
| 141 | rm -f ldb.pc
|
|---|
| 142 | rm -f Makefile
|
|---|
| 143 |
|
|---|
| 144 | realdistclean:: distclean
|
|---|
| 145 | rm -f configure include/config.h.in
|
|---|
| 146 |
|
|---|
| 147 | check:: test @PYTHON_CHECK_TARGET@
|
|---|
| 148 |
|
|---|
| 149 | check-soloading: sample.$(SHLIBEXT)
|
|---|
| 150 | $(LIB_PATH_VAR)=lib LDB_MODULES_PATH=$(builddir) $(srcdir)/tests/test-soloading.sh
|
|---|
| 151 |
|
|---|
| 152 | test:: all check-soloading
|
|---|
| 153 | for t in $(TESTS); do echo STARTING $${t}; $(LIB_PATH_VAR)=lib $(srcdir)/tests/$${t} || exit 1; done
|
|---|
| 154 |
|
|---|
| 155 | valgrindtest:: all
|
|---|
| 156 | for t in $(TESTS); do echo STARTING $${t}; VALGRIND="valgrind -q --db-attach=yes --num-callers=30" $(srcdir)/tests/$${t} || exit 1; done
|
|---|
| 157 |
|
|---|
| 158 | installcheck:: install test
|
|---|
| 159 |
|
|---|
| 160 | install:: all installdirs installheaders installlibs installbin installdocs \
|
|---|
| 161 | @PYTHON_INSTALL_TARGET@
|
|---|
| 162 |
|
|---|
| 163 | installdirs::
|
|---|
| 164 | mkdir -p $(DESTDIR)$(includedir) $(DESTDIR)$(libdir) $(DESTDIR)$(bindir) $(DESTDIR)$(libdir)/pkgconfig
|
|---|
| 165 |
|
|---|
| 166 | installheaders:: installdirs
|
|---|
| 167 | cp $(headers) $(DESTDIR)$(includedir)
|
|---|
| 168 |
|
|---|
| 169 | installlibs:: installdirs
|
|---|
| 170 | cp $(STATICLIB) $(LIBSOLIB) $(DESTDIR)$(libdir)
|
|---|
| 171 | cp ldb.pc $(DESTDIR)$(libdir)/pkgconfig
|
|---|
| 172 |
|
|---|
| 173 | installbin:: installdirs
|
|---|
| 174 | cp $(BINS) $(DESTDIR)$(bindir)
|
|---|
| 175 |
|
|---|
| 176 | installdocs:: installdirs
|
|---|
| 177 | $(srcdir)/docs/installdocs.sh $(DESTDIR)$(mandir)
|
|---|
| 178 |
|
|---|
| 179 | gcov::
|
|---|
| 180 | $(GCOV) -po ldb_sqlite3 $(srcdir)/ldb_sqlite3/*.c 2| tee ldb_sqlite3.report.gcov
|
|---|
| 181 | $(GCOV) -po ldb_ldap $(srcdir)/ldb_ldap/*.c 2| tee ldb_ldap.report.gcov
|
|---|
| 182 | $(GCOV) -po ldb_tdb $(srcdir)/ldb_tdb/*.c 2| tee ldb_tdb.report.gcov
|
|---|
| 183 | $(GCOV) -po common $(srcdir)/common/*.c 2| tee common.report.gcov
|
|---|
| 184 | $(GCOV) -po modules $(srcdir)/modules/*.c 2| tee modules.report.gcov
|
|---|
| 185 | $(GCOV) -po tools $(srcdir)/tools/*.c 2| tee tools.report.gcov
|
|---|
| 186 |
|
|---|
| 187 | include $(ldbdir)/ldb.mk
|
|---|