2 # Copyright (C) 2000-2017 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@
24 # 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 bjson.h bpipe.h breg.h bregex.h \
37 bsock.h btime.h btimers.h crypto.h dlist.h \
38 flist.h fnmatch.h guid_to_name.h htable.h lex.h \
39 lib.h lz4.h md5.h mem_pool.h message.h \
40 openssl.h parse_conf.h plugins.h protos.h queue.h rblist.h \
41 runscript.h rwlock.h serial.h sellist.h sha1.h sha2.h \
42 smartall.h status.h tls.h tree.h var.h \
43 watchdog.h workq.h ini.h \
44 lockmgr.h devlock.h output.h bwlimit.h
49 LIBBAC_SRCS = attr.c base64.c berrno.c bsys.c binflate.c bget_msg.c \
50 bnet.c bnet_server.c bsock.c bpipe.c bsnprintf.c btime.c \
51 cram-md5.c crc32.c crypto.c daemon.c edit.c fnmatch.c \
52 guid_to_name.c hmac.c jcr.c lex.c lz4.c alist.c dlist.c \
53 md5.c message.c mem_pool.c openssl.c \
54 plugins.c priv.c queue.c bregex.c \
55 runscript.c rwlock.c scan.c sellist.c serial.c sha1.c sha2.c \
56 signal.c smartall.c rblist.c tls.c tree.c \
57 util.c var.c watchdog.c workq.c btimers.c \
59 address_conf.c breg.c htable.c lockmgr.c devlock.c output.c bwlimit.c
61 LIBBAC_OBJS = $(LIBBAC_SRCS:.c=.o)
62 LIBBAC_LOBJS = $(LIBBAC_SRCS:.c=.lo)
65 # libbaccfg (config functions)
67 LIBBACCFG_SRCS = ini.c parse_conf.c res.c bjson.c
68 LIBBACCFG_OBJS = $(LIBBACCFG_SRCS:.c=.o)
69 LIBBACCFG_LOBJS = $(LIBBACCFG_SRCS:.c=.lo)
71 .SUFFIXES: .c .cc .o .lo .ch .dvi .pdf .tex .view .w .1
78 $(NO_ECHO)$(CXX) $(DEFS) $(DEBUG) -c $(WCFLAGS) $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) $<
82 $(NO_ECHO)$(LIBTOOL_COMPILE) $(CXX) $(DEFS) $(DEBUG) -c $(WCFLAGS) $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) $<
86 $(NO_ECHO)$(CXX) $(DEFS) $(DEBUG) -c $(WCFLAGS) $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) $<
90 $(NO_ECHO)$(LIBTOOL_COMPILE) $(CXX) $(DEFS) $(DEBUG) -c $(WCFLAGS) $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) $<
92 # specific build rules
94 #-------------------------------------------------------------------------
95 all: Makefile libbac$(DEFAULT_ARCHIVE_TYPE) libbaccfg$(DEFAULT_ARCHIVE_TYPE)
96 @echo "==== Make of lib is good ===="
99 libbac.a: $(LIBBAC_OBJS)
100 @echo "Making $@ ..."
101 $(AR) rc $@ $(LIBBAC_OBJS)
104 libbac.la: Makefile $(LIBBAC_LOBJS)
105 @echo "Making $@ ..."
106 $(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)
108 libbaccfg.a: $(LIBBACCFG_OBJS)
109 @echo "Making $@ ..."
110 $(AR) rc $@ $(LIBBACCFG_OBJS)
113 libbaccfg.la: Makefile $(LIBBACCFG_LOBJS)
114 @echo "Making $@ ..."
115 $(LIBTOOL_LINK) $(CXX) $(DEFS) $(DEBUG) $(LDFLAGS) -o $@ $(LIBBACCFG_LOBJS) -export-dynamic -rpath $(libdir) -release $(LIBBACCFG_LT_RELEASE) $(OPENSSL_LIBS) $(LIBS)
117 Makefile: $(srcdir)/Makefile.in $(topdir)/config.status
119 && CONFIG_FILES=$(thisdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
121 wait_test: Makefile bsys.c
123 $(CXX) -DTEST_PROGRAM $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) bsys.c
124 $(LIBTOOL_LINK) $(CXX) $(LDFLAGS) -L. -L../findlib -o $@ bsys.o $(DLIB) -lbac -lbacfind -lm $(LIBS) $(OPENSSL_LIBS)
126 $(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) bsys.c
128 output_test: Makefile output.c
130 $(CXX) -DTEST_PROGRAM $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) output.c
131 $(LIBTOOL_LINK) $(CXX) $(LDFLAGS) -L. -o $@ output.o $(DLIB) -lbac -lm $(LIBS) $(OPENSSL_LIBS)
133 $(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) output.c
135 lockmgr_test: Makefile lockmgr.c
137 $(CXX) -D _TEST_IT $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) lockmgr.c
138 $(LIBTOOL_LINK) $(CXX) $(LDFLAGS) -L. -o $@ lockmgr.o $(DLIB) -lbac -lm $(LIBS) $(OPENSSL_LIBS)
140 $(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) lockmgr.c
142 base64_test: Makefile base64.c
144 $(CXX) -DBIN_TEST $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) base64.c
145 $(LIBTOOL_LINK) $(CXX) $(LDFLAGS) -L. -o $@ base64.o $(DLIB) -lbac -lm $(LIBS) $(OPENSSL_LIBS)
147 $(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) base64.c
149 flist_test: Makefile flist.c
151 $(CXX) -DTEST_PROGRAM $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) flist.c
152 $(LIBTOOL_LINK) $(CXX) $(LDFLAGS) -L. -o $@ flist.o $(DLIB) -lbac -lm $(LIBS) $(OPENSSL_LIBS)
154 $(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) flist.c
156 worker_test: Makefile worker.c
158 $(CXX) -DTEST_PROGRAM $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) worker.c
159 $(LIBTOOL_LINK) $(CXX) $(LDFLAGS) -L. -o $@ worker.o $(DLIB) -lbac -lm $(LIBS) $(OPENSSL_LIBS)
161 $(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) worker.c
163 workq_test: Makefile workq.c
165 $(CXX) -DTEST_PROGRAM $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) workq.c
166 $(LIBTOOL_LINK) $(CXX) $(LDFLAGS) -L. -o $@ workq.o $(DLIB) -lbac -lm $(LIBS) $(OPENSSL_LIBS)
168 $(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) workq.c
170 rwlock_test: Makefile rwlock.c
172 $(CXX) -DTEST_RWLOCK $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) rwlock.c
173 $(LIBTOOL_LINK) $(CXX) $(LDFLAGS) -L. -o $@ rwlock.o $(DLIB) -lbac -lm $(LIBS) $(OPENSSL_LIBS)
175 $(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) rwlock.c
177 devlock_test: Makefile
179 $(CXX) -DTEST_devlock $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) devlock.c
180 $(LIBTOOL_LINK) $(CXX) $(LDFLAGS) -L. -o $@ devlock.o $(DLIB) -lbac -lm $(LIBS) $(OPENSSL_LIBS)
182 $(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) devlock.c
184 htable_test: Makefile
186 $(CXX) -DTEST_SMALL_HTABLE -DTEST_NON_CHAR -DTEST_PROGRAM $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) htable.c
187 $(LIBTOOL_LINK) $(CXX) $(LDFLAGS) -L. -o $@ htable.o $(DLIB) -lbac -lm $(LIBS) $(OPENSSL_LIBS)
189 $(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) htable.c
191 alist_test: Makefile alist.c
193 $(CXX) -DTEST_PROGRAM $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) alist.c
194 $(LIBTOOL_LINK) $(CXX) $(LDFLAGS) -L. -o $@ alist.o $(DLIB) -lbac -lm $(LIBS) $(OPENSSL_LIBS)
196 $(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) alist.c
199 sellist_test: Makefile sellist.c
201 $(CXX) -DTEST_PROGRAM $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) sellist.c
202 $(LIBTOOL_LINK) $(CXX) $(LDFLAGS) -L. -o $@ sellist.o $(DLIB) -lbac -lm $(LIBS) $(OPENSSL_LIBS)
204 $(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) sellist.c
207 xml_test: Makefile xml.o
209 $(CXX) -DTEST_PROG $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) xml.c
210 $(LIBTOOL_LINK) $(CXX) $(LDFLAGS) -L. -o $@ xml.o $(DLIB) -lbac -lm $(LIBS) $(OPENSSL_LIBS)
212 $(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) xml.c
214 md5sum: Makefile md5.o
216 $(CXX) -DMD5_SUM $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) md5.c
217 $(LIBTOOL_LINK) $(CXX) $(LDFLAGS) -L. -o $@ md5.o $(DLIB) -lbac -lm $(LIBS) $(OPENSSL_LIBS)
219 $(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) md5.c
221 sha1sum: Makefile sha1.o
223 $(CXX) -DSHA1_SUM $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) sha1.c
224 $(LIBTOOL_LINK) $(CXX) $(LDFLAGS) -L. -o $@ sha1.o $(DLIB) -lbac -lm $(LIBS) $(OPENSSL_LIBS)
226 $(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) sha1.c
228 bsnprintf: Makefile bsnprintf.o
230 $(CXX) -DTEST_PROGRAM $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) bsnprintf.c
231 $(LIBTOOL_LINK) $(CXX) $(LDFLAGS) -L. -o $@ bsnprintf.o $(DLIB) -lbac -lm $(LIBS) $(OPENSSL_LIBS)
233 $(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) bsnprintf.c
237 $(CXX) -DTEST_PROGRAM $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) ini.c
238 $(LIBTOOL_LINK) $(CXX) $(LDFLAGS) -L. -o $@ ini.o -lbaccfg -lbac $(DLIB) -lm $(LIBS) $(OPENSSL_LIBS)
240 $(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) ini.c
243 $(MKDIR) $(DESTDIR)/$(includedir)/bacula
244 for I in $(INCLUDE_FILES); do \
245 $(INSTALL_DATA) $$I $(DESTDIR)$(includedir)/bacula/`basename $$I`; \
249 for I in $(INCLUDE_FILES); do \
250 $(RMF) $(DESTDIR)$(includedir)/bacula/`basename $$I`; \
254 $(MKDIR) $(DESTDIR)$(libdir)
255 $(RMF) $(DESTDIR)$(libdir)/libbac-*.so $(DESTDIR)$(libdir)/libbac.la
256 $(RMF) $(DESTDIR)$(libdir)/libbaccfg-*.so $(DESTDIR)$(libdir)/libbaccfg.la
257 $(RMF) $(DESTDIR)$(libdir)/libbacpy-*.so $(DESTDIR)$(libdir)/libbacpy.la
258 $(LIBTOOL_INSTALL_FINISH) $(INSTALL_LIB) libbac.la $(DESTDIR)$(libdir)
259 $(LIBTOOL_INSTALL_FINISH) $(INSTALL_LIB) libbaccfg.la $(DESTDIR)$(libdir)
262 $(LIBTOOL_UNINSTALL) $(RMF) $(DESTDIR)$(libdir)/libbac.la
263 $(LIBTOOL_UNINSTALL) $(RMF) $(DESTDIR)$(libdir)/libbaccfg.la
264 $(LIBTOOL_UNINSTALL) $(RMF) $(DESTDIR)$(libdir)/libbacpy.la
266 install: @LIBTOOL_INSTALL_TARGET@ @INCLUDE_INSTALL_TARGET@
268 uninstall: @LIBTOOL_UNINSTALL_TARGET@ @INCLUDE_UNINSTALL_TARGET@
271 @find . -name '*.lo' -print | xargs $(LIBTOOL_CLEAN) $(RMF)
273 @$(RMF) -r .libs _libs
276 @$(RMF) core a.out *.o *.bak *.tex *.pdf *~ *.intpro *.extpro 1 2 3
277 @$(RMF) rwlock_test md5sum sha1sum
283 if test $(srcdir) = .; then $(MAKE) realclean; fi
284 (cd $(srcdir); $(RMF) Makefile)
286 # Semi-automatic generation of dependencies:
287 # Use gcc -M because X11 `makedepend' doesn't work on all systems
288 # and it also includes system headers.
289 # `semi'-automatic since dependencies are generated at distribution time.
292 @$(MV) Makefile Makefile.bak
293 @$(SED) "/^# DO NOT DELETE:/,$$ d" Makefile.bak > Makefile
294 @$(ECHO) "# DO NOT DELETE: nice dependency list follows" >> Makefile
295 @for src in $(LIBBAC_SRCS) $(LIBBACCFG_SRCS); do \
296 $(CXX) -S -M -MT `basename $$src .c`$(DEFAULT_OBJECT_TYPE) $(CPPFLAGS) $(XINC) -I$(srcdir) -I$(basedir) $$src >> Makefile; \
298 @if test -f Makefile ; then \
299 $(RMF) Makefile.bak; \
301 $(MV) Makefile.bak Makefile; \
302 echo " ===== Something went wrong in make depend ====="; \
305 # -----------------------------------------------------------------------
306 # DO NOT DELETE: nice dependency list follows