2 # Copyright (C) 2000-2015 Kern Sibbald
3 # License: BSD 2-Clause; see file LICENSE-FOSS
7 # Define library versions
8 LIBBAC_LT_RELEASE = @LIBBAC_LT_RELEASE@
9 LIBBACCFG_LT_RELEASE = @LIBBACCFG_LT_RELEASE@
20 # this dir relative to top dir
31 # include files installed when using libtool
33 INCLUDE_FILES = ../baconfig.h ../bacula.h ../bc_types.h \
34 ../config.h ../jcr.h ../version.h \
35 address_conf.h alist.h attr.h base64.h \
36 berrno.h bits.h bpipe.h breg.h bregex.h \
37 bsock.h btime.h btimers.h crypto.h dlist.h \
38 fnmatch.h guid_to_name.h htable.h lex.h \
39 lib.h md5.h mem_pool.h message.h \
40 openssl.h plugins.h protos.h queue.h rblist.h \
41 runscript.h rwlock.h serial.h sellist.h sha1.h \
42 smartall.h status.h tls.h tree.h var.h \
43 waitq.h watchdog.h workq.h \
50 LIBBAC_SRCS = attr.c base64.c berrno.c bsys.c binflate.c bget_msg.c \
52 bnet.c bnet_server.c bsock.c bpipe.c bsnprintf.c btime.c \
53 cram-md5.c crypto.c daemon.c edit.c fnmatch.c \
54 guid_to_name.c hmac.c jcr.c lex.c alist.c dlist.c \
55 md5.c message.c mem_pool.c openssl.c \
56 plugins.c priv.c queue.c bregex.c \
57 runscript.c rwlock.c scan.c sellist.c serial.c sha1.c \
58 signal.c smartall.c rblist.c tls.c tree.c \
59 util.c var.c watchdog.c workq.c btimers.c \
60 address_conf.c breg.c htable.c lockmgr.c devlock.c
62 LIBBAC_OBJS = $(LIBBAC_SRCS:.c=.o)
63 LIBBAC_LOBJS = $(LIBBAC_SRCS:.c=.lo)
66 # libbaccfg (config functions)
68 LIBBACCFG_SRCS = ini.c parse_conf.c res.c
69 LIBBACCFG_OBJS = $(LIBBACCFG_SRCS:.c=.o)
70 LIBBACCFG_LOBJS = $(LIBBACCFG_SRCS:.c=.lo)
72 .SUFFIXES: .c .cc .o .lo .ch .dvi .pdf .tex .view .w .1
79 $(NO_ECHO)$(CXX) $(DEFS) $(DEBUG) -c $(WCFLAGS) $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) $<
83 $(NO_ECHO)$(LIBTOOL_COMPILE) $(CXX) $(DEFS) $(DEBUG) -c $(WCFLAGS) $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) $<
87 $(NO_ECHO)$(CXX) $(DEFS) $(DEBUG) -c $(WCFLAGS) $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) $<
91 $(NO_ECHO)$(LIBTOOL_COMPILE) $(CXX) $(DEFS) $(DEBUG) -c $(WCFLAGS) $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) $<
93 # specific build rules
95 #-------------------------------------------------------------------------
96 all: Makefile libbac$(DEFAULT_ARCHIVE_TYPE) libbaccfg$(DEFAULT_ARCHIVE_TYPE)
97 @echo "==== Make of lib is good ===="
100 libbac.a: $(LIBBAC_OBJS)
101 @echo "Making $@ ..."
102 $(AR) rc $@ $(LIBBAC_OBJS)
105 libbac.la: Makefile $(LIBBAC_LOBJS)
106 @echo "Making $@ ..."
107 $(LIBTOOL_LINK) $(CXX) $(DEFS) $(DEBUG) $(LDFLAGS) -o $@ $(LIBBAC_LOBJS) -export-dynamic -rpath $(libdir) -release $(LIBBAC_LT_RELEASE) $(WRAPLIBS) $(CAP_LIBS) $(ZLIBS) $(OPENSSL_LIBS) $(LIBS) $(DLLIBS)
109 libbaccfg.a: $(LIBBACCFG_OBJS)
110 @echo "Making $@ ..."
111 $(AR) rc $@ $(LIBBACCFG_OBJS)
114 libbaccfg.la: Makefile $(LIBBACCFG_LOBJS)
115 @echo "Making $@ ..."
116 $(LIBTOOL_LINK) $(CXX) $(DEFS) $(DEBUG) $(LDFLAGS) -o $@ $(LIBBACCFG_LOBJS) -export-dynamic -rpath $(libdir) -release $(LIBBACCFG_LT_RELEASE) $(OPENSSL_LIBS) $(LIBS)
118 Makefile: $(srcdir)/Makefile.in $(topdir)/config.status
120 && CONFIG_FILES=$(thisdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
122 lockmgr_test: Makefile lockmgr.c
124 $(CXX) -D _TEST_IT $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) lockmgr.c
125 $(LIBTOOL_LINK) $(CXX) $(LDFLAGS) -L. -o $@ lockmgr.o $(DLIB) -lbac -lm $(LIBS) $(OPENSSL_LIBS)
127 $(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) lockmgr.c
129 base64_test: Makefile base64.c
131 $(CXX) -DBIN_TEST $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) base64.c
132 $(LIBTOOL_LINK) $(CXX) $(LDFLAGS) -L. -o $@ base64.o $(DLIB) -lbac -lm $(LIBS) $(OPENSSL_LIBS)
134 $(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) base64.c
136 rwlock_test: Makefile rwlock.c
138 $(CXX) -DTEST_RWLOCK $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) rwlock.c
139 $(LIBTOOL_LINK) $(CXX) $(LDFLAGS) -L. -o $@ rwlock.o $(DLIB) -lbac -lm $(LIBS) $(OPENSSL_LIBS)
141 $(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) rwlock.c
143 devlock_test: Makefile
145 $(CXX) -DTEST_devlock $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) devlock.c
146 $(LIBTOOL_LINK) $(CXX) $(LDFLAGS) -L. -o $@ devlock.o $(DLIB) -lbac -lm $(LIBS) $(OPENSSL_LIBS)
148 $(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) devlock.c
150 htable_test: Makefile
152 $(CXX) -DTEST_SMALL_HTABLE -DTEST_NON_CHAR -DTEST_PROGRAM $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) htable.c
153 $(LIBTOOL_LINK) $(CXX) $(LDFLAGS) -L. -o $@ htable.o $(DLIB) -lbac -lm $(LIBS) $(OPENSSL_LIBS)
155 $(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) htable.c
157 sellist_test: Makefile sellist.c
159 $(CXX) -DTEST_PROGRAM $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) sellist.c
160 $(LIBTOOL_LINK) $(CXX) $(LDFLAGS) -L. -o $@ sellist.o $(DLIB) -lbac -lm $(LIBS) $(OPENSSL_LIBS)
162 $(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) sellist.c
165 xml_test: Makefile xml.o
167 $(CXX) -DTEST_PROG $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) xml.c
168 $(LIBTOOL_LINK) $(CXX) $(LDFLAGS) -L. -o $@ xml.o $(DLIB) -lbac -lm $(LIBS) $(OPENSSL_LIBS)
170 $(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) xml.c
172 md5sum: Makefile md5.o
174 $(CXX) -DMD5_SUM $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) md5.c
175 $(LIBTOOL_LINK) $(CXX) $(LDFLAGS) -L. -o $@ md5.o $(DLIB) -lbac -lm $(LIBS) $(OPENSSL_LIBS)
177 $(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) md5.c
179 sha1sum: Makefile sha1.o
181 $(CXX) -DSHA1_SUM $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) sha1.c
182 $(LIBTOOL_LINK) $(CXX) $(LDFLAGS) -L. -o $@ sha1.o $(DLIB) -lbac -lm $(LIBS) $(OPENSSL_LIBS)
184 $(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) sha1.c
186 bsnprintf: Makefile bsnprintf.o
188 $(CXX) -DTEST_PROGRAM $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) bsnprintf.c
189 $(LIBTOOL_LINK) $(CXX) $(LDFLAGS) -L. -o $@ bsnprintf.o $(DLIB) -lbac -lm $(LIBS) $(OPENSSL_LIBS)
191 $(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) bsnprintf.c
195 $(CXX) -DTEST_PROGRAM $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) ini.c
196 $(LIBTOOL_LINK) $(CXX) $(LDFLAGS) -L. -o $@ ini.o -lbaccfg -lbac $(DLIB) -lm $(LIBS) $(OPENSSL_LIBS)
198 $(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) ini.c
201 $(MKDIR) $(DESTDIR)/$(includedir)/bacula
202 for I in $(INCLUDE_FILES); do \
203 $(INSTALL_DATA) $$I $(DESTDIR)$(includedir)/bacula/`basename $$I`; \
207 for I in $(INCLUDE_FILES); do \
208 $(RMF) $(DESTDIR)$(includedir)/bacula/`basename $$I`; \
212 $(MKDIR) $(DESTDIR)$(libdir)
213 $(RMF) $(DESTDIR)$(libdir)/libbac-*.so $(DESTDIR)$(libdir)/libbac.la
214 $(RMF) $(DESTDIR)$(libdir)/libbaccfg-*.so $(DESTDIR)$(libdir)/libbaccfg.la
215 $(RMF) $(DESTDIR)$(libdir)/libbacpy-*.so $(DESTDIR)$(libdir)/libbacpy.la
216 $(LIBTOOL_INSTALL_FINISH) $(INSTALL_LIB) libbac.la $(DESTDIR)$(libdir)
217 $(LIBTOOL_INSTALL_FINISH) $(INSTALL_LIB) libbaccfg.la $(DESTDIR)$(libdir)
220 $(LIBTOOL_UNINSTALL) $(RMF) $(DESTDIR)$(libdir)/libbac.la
221 $(LIBTOOL_UNINSTALL) $(RMF) $(DESTDIR)$(libdir)/libbaccfg.la
222 $(LIBTOOL_UNINSTALL) $(RMF) $(DESTDIR)$(libdir)/libbacpy.la
224 install: @LIBTOOL_INSTALL_TARGET@ @INCLUDE_INSTALL_TARGET@
226 uninstall: @LIBTOOL_UNINSTALL_TARGET@ @INCLUDE_UNINSTALL_TARGET@
229 @find . -name '*.lo' -print | xargs $(LIBTOOL_CLEAN) $(RMF)
231 @$(RMF) -r .libs _libs
234 @$(RMF) core a.out *.o *.bak *.tex *.pdf *~ *.intpro *.extpro 1 2 3
235 @$(RMF) rwlock_test md5sum sha1sum
241 if test $(srcdir) = .; then $(MAKE) realclean; fi
242 (cd $(srcdir); $(RMF) Makefile)
244 # Semi-automatic generation of dependencies:
245 # Use gcc -M because X11 `makedepend' doesn't work on all systems
246 # and it also includes system headers.
247 # `semi'-automatic since dependencies are generated at distribution time.
250 @$(MV) Makefile Makefile.bak
251 @$(SED) "/^# DO NOT DELETE:/,$$ d" Makefile.bak > Makefile
252 @$(ECHO) "# DO NOT DELETE: nice dependency list follows" >> Makefile
253 @for src in $(LIBBAC_SRCS) $(LIBBACCFG_SRCS); do \
254 $(CXX) -S -M -MT `basename $$src .c`$(DEFAULT_OBJECT_TYPE) $(CPPFLAGS) $(XINC) -I$(srcdir) -I$(basedir) $$src >> Makefile; \
256 @if test -f Makefile ; then \
257 $(RMF) Makefile.bak; \
259 $(MV) Makefile.bak Makefile; \
260 echo " ===== Something went wrong in make depend ====="; \
263 # -----------------------------------------------------------------------
264 # DO NOT DELETE: nice dependency list follows