r4474: - converted ldb to use talloc internally
[kamenim/samba.git] / source4 / lib / ldb / Makefile.ldb
1
2 # ldap support is optional edit WITH_LDAP to suit
3 WITH_LDAP=1
4
5 ifeq ($(WITH_LDAP),1)
6 OPENLDAP_PREFIX=/usr
7 LDAP_LIBS=-L$(OPENLDAP_PREFIX)/lib -llber -lldap
8 LDAP_FLAGS=-DHAVE_LDAP=1
9 LDB_LDAP_OBJ=ldb_ldap/ldb_ldap.o
10 endif
11
12 TDBDIR=../tdb
13 TALLOCDIR=../talloc
14
15 CFLAGS1=-Wall -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith \
16        -Wcast-qual -Wcast-align -Wwrite-strings -g -Iinclude -I. -I.. \
17        -I$(TDBDIR)/include -I$(TALLOCDIR) -DUSE_MMAP=1 $(LDAP_FLAGS)
18 #GCOV_FLAGS = -ftest-coverage -fprofile-arcs 
19 #GCOV_LIBS = -lgcov
20
21 CFLAGS = $(CFLAGS1) $(GCOV_FLAGS)
22
23 LIB_FLAGS=-Llib -lldb $(LDAP_LIBS) $(GCOV_LIBS)
24
25 TDB_OBJ=$(TDBDIR)/common/tdb.o $(TDBDIR)/common/spinlock.o
26 TALLOC_OBJ=$(TALLOCDIR)/talloc.o
27
28 LDB_TDB_OBJ=ldb_tdb/ldb_match.o ldb_tdb/ldb_tdb.o \
29         ldb_tdb/ldb_pack.o ldb_tdb/ldb_search.o ldb_tdb/ldb_index.o \
30         ldb_tdb/ldb_cache.o
31
32
33 COMMON_OBJ=common/ldb.o common/ldb_ldif.o common/util.o \
34            common/ldb_parse.o common/ldb_msg.o common/ldb_utf8.o \
35            common/ldb_debug.o common/ldb_modules.o
36
37 MODULES_OBJ=modules/timestamps.o
38
39 OBJS =  $(MODULES_OBJ) $(COMMON_OBJ) $(LDB_TDB_OBJ) $(TDB_OBJ) $(TALLOC_OBJ) $(LDB_LDAP_OBJ)
40
41 LDB_LIB = lib/libldb.a
42
43 BINS = bin/ldbadd bin/ldbsearch bin/ldbdel bin/ldbmodify bin/ldbedit bin/ldbrename bin/ldbtest
44
45 LIBS = $(LDB_LIB)($(OBJS))
46
47 DIRS = lib bin
48
49 all: $(DIRS) $(BINS) $(LIBS) manpages
50
51 lib:
52         mkdir -p lib
53
54 bin:
55         mkdir -p bin
56
57 lib/libldb.a: $(OBJS)
58
59 bin/ldbadd: tools/ldbadd.o $(LIBS)
60         $(CC) -o bin/ldbadd tools/ldbadd.o $(LIB_FLAGS)
61
62 bin/ldbsearch: tools/ldbsearch.o $(LIBS)
63         $(CC) -o bin/ldbsearch tools/ldbsearch.o $(LIB_FLAGS)
64
65 bin/ldbdel: tools/ldbdel.o $(LIBS)
66         $(CC) -o bin/ldbdel tools/ldbdel.o $(LIB_FLAGS)
67
68 bin/ldbmodify: tools/ldbmodify.o $(LIBS)
69         $(CC) -o bin/ldbmodify tools/ldbmodify.o $(LIB_FLAGS)
70
71 bin/ldbedit: tools/ldbedit.o $(LIBS)
72         $(CC) -o bin/ldbedit tools/ldbedit.o $(LIB_FLAGS)
73
74 bin/ldbrename: tools/ldbrename.o $(LIBS)
75         $(CC) -o bin/ldbrename tools/ldbrename.o $(LIB_FLAGS)
76
77 bin/ldbtest: tools/ldbtest.o $(LIBS)
78         $(CC) -o bin/ldbtest tools/ldbtest.o $(LIB_FLAGS)
79
80 manpages:
81         -man/build_manpages.sh
82
83 clean:
84         rm -f */*.o *.gcov */*.gc?? *~ */*~ $(BINS) $(TDB_OBJ) $(TALLOC_OBJ) $(LDB_LIB) man/man?/*.[13]
85
86 etags:
87         etags */*.[ch]
88
89 test-tdb:
90         @echo "STARTING TDB BACKEND TEST"
91         tests/test-tdb.sh
92
93 test-ldap:
94         @echo "STARTING LDAP BACKEND TEST"
95         tests/test-ldap.sh
96
97 test: test-tdb test-ldap
98
99 gcov:
100         gcov -po ldb_ldap ldb_ldap/*.c 2| tee ldb_ldap.report.gcov
101         gcov -po ldb_tdb ldb_tdb/*.c 2| tee ldb_tdb.report.gcov
102         gcov -po common common/*.c 2| tee ldb_common.report.gcov
103         gcov -po modules modules/*.c 2| tee ldb_modules.report.gcov
104         gcov -po tools tools/*.c 2| tee ldb_tools.report.gcov