]> git.sur5r.net Git - openldap/blob - servers/slapd/Make-template
Fixed memory leaks.
[openldap] / servers / slapd / Make-template
1 #-----------------------------------------------------------------------------
2 # Copyright (c) 1995 Regents of the University of Michigan.
3 # All rights reserved.
4 #
5 # Redistribution and use in source and binary forms are permitted
6 # provided that this notice is preserved and that due credit is given
7 # to the University of Michigan at Ann Arbor. The name of the University
8 # may not be used to endorse or promote products derived from this
9 # software without specific prior written permission. This software
10 # is provided ``as is'' without express or implied warranty.
11 #
12 #       Stand alone LDAP server daemon makefile
13 #
14 #-----------------------------------------------------------------------------
15 LDAPSRC = ../..
16 HDIR    = $(LDAPSRC)/include
17 LDIR    = $(LDAPSRC)/libraries
18 VERSIONFILE = $(LDAPSRC)/build/version
19
20 SRCS    = main.c daemon.c connection.c search.c filter.c add.c charray.c \
21                 attr.c entry.c config.c backend.c result.c operation.c \
22                 dn.c compare.c modify.c delete.c modrdn.c ch_malloc.c \
23                 value.c ava.c bind.c unbind.c abandon.c filterentry.c \
24                 phonetic.c acl.c str2filter.c aclparse.c init.c \
25                 detach.c strdup.c tempnam.c repl.c lock.c \
26                 schema.c schemaparse.c monitor.c configinfo.c \
27                 suffixalias.c
28 OBJS    = main.o daemon.o connection.o search.o filter.o add.o charray.o \
29                 attr.o entry.o config.o backend.o result.o operation.o \
30                 dn.o compare.o modify.o delete.o modrdn.o ch_malloc.o \
31                 value.o ava.o bind.o unbind.o abandon.o filterentry.o \
32                 phonetic.o acl.o str2filter.o aclparse.o init.o \
33                 detach.o strdup.o tempnam.o repl.o lock.o \
34                 schema.o schemaparse.o monitor.o configinfo.o \
35                 suffixalias.o
36
37 INCLUDES= -I. -I$(HDIR) $(KRBINCLUDEFLAG)
38 DEFINES = $(DEFS) $(SERVERDEFS)
39 CFLAGS  = $(INCLUDES) $(THREADSINCLUDE) $(DEFINES) $(ACFLAGS) $(THREADS)
40 LDFLAGS = -L$(LDIR) $(KRBLIBFLAG)
41 LIBS    = $(KRBLIBS) -llber -lldbm -lavl -llthread -lldif -llutil \
42                 $(REGEXLIB) $(THREADSLIB) \
43                 $(LDBMLIB) $(LDAP_CRYPT_LIB) $(LDAP_TCP_WRAPPERS_LIB) $(ALIBS)
44
45 all: FORCE
46         @if [ -z "$(MAKESLAPD)" ]; then \
47                 echo "uncomment the MAKESLAPD line in Make-common to make slapd"; \
48                 exit 0; \
49         else \
50                 echo; \
51                 $(MAKE) $(MFLAGS) backendslib; \
52                 $(MAKE) $(MFLAGS) slapd; \
53                 (cd tools; $(MAKE) $(MFLAGS) all); \
54         fi
55
56 backendslib:    FORCE
57         @for i in back-*; do \
58                 if [ -d $$i ]; then \
59                         echo; echo "  cd $$i; $(MAKE) $(MFLAGS) all"; \
60                         ( cd $$i; $(MAKE) $(MFLAGS) all ); \
61                 fi; \
62         done; \
63         echo; \
64         $(MAKE) $(MFLAGS) libbackends.a
65
66 libbackends.a: .backend
67         @$(RM) -r tmp
68         @$(MKDIR) tmp
69         @-for i in back-*/*.a; do \
70                 ( \
71                   cd tmp; \
72                   $(AR) x ../$$i; \
73                   pre=`echo $$i | sed -e 's/\/.*$$//' -e 's/back-//'`; \
74                   for j in *.o; do \
75                         mv $$j $${pre}$$j; \
76                   done; \
77                   $(AR) ruv libbackends.a *.o 2>&1 | grep -v truncated; \
78                   $(RM) *.o __.SYMDEF; \
79                   echo "added backend library $$i"; \
80                 ); \
81         done
82         @mv -f tmp/libbackends.a ./libbackends.a
83         @$(RM) -r tmp
84         @if [ ! -z "$(RANLIB)" ]; then \
85                 $(RANLIB) libbackends.a; \
86         fi
87         @ls -l libbackends.a
88
89 slapd: version.o
90         $(CC) $(ALDFLAGS) -o slapd $(OBJS) version.o libbackends.a \
91                 $(LDFLAGS) $(LIBS)
92 slapd.pure: version.o
93         purify $(CC) $(ALDFLAGS) -o slapd.pure $(OBJS) version.o libbackends.a \
94                 $(LDFLAGS) $(LIBS)
95
96 version.c: libbackends.a $(OBJS) $(LDIR)/liblber/liblber.a \
97                 $(LDIR)/libldbm/libldbm.a $(LDIR)/liblthread/liblthread.a \
98                 $(LDIR)/libavl/libavl.a $(LDIR)/libldif/libldif.a
99         $(RM) $@
100         (u=$${USER-root} v=`$(CAT) $(VERSIONFILE)` d=`$(PWD)` h=`$(HOSTNAME)` \
101         t=`$(DATE)`; $(SED) -e "s|%WHEN%|$${t}|" \
102         -e "s|%WHOANDWHERE%|$${u}@$${h}:$${d}|" \
103         -e "s|%VERSION%|$${v}|" \
104         < Version.c > $@)
105
106 install: all $(LDAP_LIBEXECDIR) $(LDAP_LIBEXECDIR)/slapd \
107                 $(LDAP_ETCDIR) $(LDAP_ETCDIR)/slapd.conf \
108                 $(LDAP_ETCDIR)/slapd.at.conf $(LDAP_ETCDIR)/slapd.oc.conf \
109                 install-tools
110
111
112 $(LDAP_LIBEXECDIR)/slapd:       slapd
113         @-$(MKDIR) -p $(LDAP_LIBEXECDIR)
114         $(INSTALL) $(INSTALLFLAGS) -m 755 slapd $(LDAP_LIBEXECDIR)
115
116 $(LDAP_ETCDIR)/slapd.conf:      slapd.conf
117         @-$(MKDIR) -p $(LDAP_ETCDIR)
118         $(SED) -e 's;%ETCDIR%;$(LDAP_ETCDIR);' slapd.conf > /tmp/slapd.$$
119         -$(MV) $(LDAP_ETCDIR)/slapd.conf $(LDAP_ETCDIR)/slapd.conf-
120         $(INSTALL) $(INSTALLFLAGS) -m 644 /tmp/slapd.$$ $(LDAP_ETCDIR)/slapd.conf
121         $(RM) -f /tmp/slapd.$$
122
123 $(LDAP_ETCDIR)/slapd.at.conf:   slapd.at.conf
124         @-$(MKDIR) -p $(LDAP_ETCDIR)
125         -$(MV) $(LDAP_ETCDIR)/slapd.at.conf $(LDAP_ETCDIR)/slapd.at.conf-
126         $(INSTALL) $(INSTALLFLAGS) -m 644 slapd.at.conf $(LDAP_ETCDIR)
127
128 $(LDAP_ETCDIR)/slapd.oc.conf:   slapd.oc.conf
129         @-$(MKDIR) -p $(LDAP_ETCDIR)
130         -$(MV) $(LDAP_ETCDIR)/slapd.oc.conf $(LDAP_ETCDIR)/slapd.oc.conf-
131         $(INSTALL) $(INSTALLFLAGS) -m 644 slapd.oc.conf $(LDAP_ETCDIR)
132
133 install-tools: FORCE
134         @-$(MKDIR) -p $(LDAP_SBINDIR)
135         (cd tools; $(MAKE) $(MFLAGS) install)
136
137 lint:   FORCE
138         $(LINT) $(INCLUDES) $(DEFINES) $(SRCS)
139
140 5lint:  FORCE
141         $(5LINT) $(INCLUDES) $(DEFINES) $(SRCS)
142
143 clean:  FORCE
144         @echo "making clean in `$(PWD)`"
145         $(RM) slapd slapd.pure *.o core a.out version.c libbackends.a .backend
146         @for i in back-* tools; do \
147                 if [ -d $$i -a $$i != "RCS" ]; then \
148                 echo; echo "  cd $$i; $(MAKE) $(MFLAGS) clean"; \
149                 ( cd $$i; $(MAKE) $(MFLAGS) clean ); \
150                 fi; \
151         done
152
153 depend: FORCE
154         $(MKDEP) $(INCLUDES) $(DEFINES) $(SRCS)
155         @for i in back-* tools; do \
156                 if [ -d $$i -a $$i != "RCS" ]; then \
157                 echo; echo "  cd $$i; $(MAKE) $(MFLAGS) depend"; \
158                 ( cd $$i; $(MAKE) $(MFLAGS) depend ); \
159                 fi; \
160         done
161
162
163 links:
164         @echo "making links in `$(PWD)`"
165         @$(LN) .src/*.[ch] .src/*.conf .
166         @touch .backend
167         @for i in .src/back-* .src/tools; do \
168             if [ -d $$i -a $$i != ".src/RCS" ]; then \
169                 d=`basename $$i`; \
170                 ( $(MKDIR) $$d; cd $$d; $(LN) ../.src/$$d .src; \
171                   $(LN) ../.src/$$d/Make-template . ; \
172                   $(MAKE) $(MFLAGS) MKDIR="$(MKDIR)" LN="$(LN)" \
173                     -f Make-template links ) ; \
174             fi; \
175         done; 
176