2 # Copyright (C) 2000-2017 Kern Sibbald
3 # License: BSD 2-Clause; see file LICENSE-FOSS
17 # this dir relative to top dir
22 GETTEXT_LIBS = @LIBINTL@
32 # Bacula SD core objects needed by all executables
34 stored_conf.o global.o
38 stored.o append.o authenticate.o dircmd.o fd_cmds.o job.o \
39 hello.o status.o vbackup.o \
42 JSONOBJS = bsdjson.o stored_conf.o
45 TAPEOBJS = btape.o $(SDCORE_OBJS)
48 BLSOBJS = bls.o $(SDCORE_OBJS)
51 BEXTOBJS = bextract.o $(SDCORE_OBJS)
54 SCNOBJS = bscan.o $(SDCORE_OBJS)
57 COPYOBJS = bcopy.o $(SDCORE_OBJS)
60 aligned_dev.c aligned_read.c aligned_write.c
62 ALIGNED_OBJS = $(ALIGNED_SRCS:.c=.o)
63 ALIGNED_LOBJS = $(ALIGNED_SRCS:.c=.lo)
66 cloud_dev.c cloud_parts.c cloud_transfer_mgr.c s3_driver.c file_driver.c
68 CLOUD_OBJS = $(CLOUD_SRCS:.c=.o)
69 CLOUD_LOBJS = $(CLOUD_SRCS:.c=.lo)
72 CLOUDTESTOBJS = cloud_test.o $(SDCORE_OBJS)
76 acquire.c ansi_label.c askdir.c autochanger.c \
77 block.c block_util.c butil.c dev.c device.c ebcdic.c \
78 init_dev.c label.c lock.c match_bsr.c mount.c \
79 null_dev.c os.c parse_bsr.c read.c read_records.c \
80 record_read.c record_util.c record_write.c reserve.c \
81 scan.c sd_plugins.c spool.c tape_alert.c vol_mgr.c wait.c \
82 fifo_dev.c file_dev.c tape_dev.c vtape_dev.c
84 LIBBACSD_OBJS = $(LIBBACSD_SRCS:.c=.o)
85 LIBBACSD_LOBJS = $(LIBBACSD_SRCS:.c=.lo)
86 LIBBACSD_LT_RELEASE = @LIBBAC_LT_RELEASE@
89 # these are the objects that are changed by the .configure process
97 SD_LIBS = -lbacsd -lbaccfg -lbac
107 $(NO_ECHO)$(CXX) $(DEFS) $(DEBUG) -c $(WCFLAGS) $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) $<
110 @echo "LT Compiling $<"
111 $(NO_ECHO)$(LIBTOOL_COMPILE) $(CXX) $(DEFS) $(DEBUG) -c $(WCFLAGS) $(CPPFLAGS) $(TOKYOCABINET_INC) $(S3_INC) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) $<
114 #-------------------------------------------------------------------------
116 all: Makefile libbacsd.la drivers bacula-sd @STATIC_SD@ \
117 bls bextract bscan bcopy \
119 @echo "===== Make of stored is good ===="
122 bacula-sd: Makefile libbacsd.la $(SDOBJS) \
123 ../lib/libbaccfg$(DEFAULT_ARCHIVE_TYPE) \
124 ../lib/libbac$(DEFAULT_ARCHIVE_TYPE)
125 @echo "Linking $@ ..."
126 $(LIBTOOL_LINK) $(CXX) $(WLDFLAGS) $(LDFLAGS) -L. -L../lib -o $@ $(SDOBJS) $(ZLIBS) \
127 $(SD_LIBS) -lm $(DLIB) $(LIBS) $(WRAPLIBS) \
128 $(GETTEXT_LIBS) $(OPENSSL_LIBS) $(CAP_LIBS)
130 libbacsd.a: $(LIBBACSD_OBJS)
131 @echo "Making $@ ..."
132 $(AR) rc $@ $(LIBBACSD_OBJS)
135 libbacsd.la: Makefile $(LIBBACSD_LOBJS)
136 @echo "Making $@ ..."
137 $(LIBTOOL_LINK) $(CXX) $(DEFS) $(DEBUG) $(LDFLAGS) -o $@ \
138 $(TOKYOCABINET_LIBS) $(LIBBACSD_LOBJS) \
139 -export-dynamic -rpath $(libdir) -release $(LIBBACSD_LT_RELEASE)
144 drivers: bacula-sd-cloud-driver.la bacula-sd-aligned-driver.la
146 bacula-sd-cloud-driver.la: Makefile $(CLOUD_LOBJS)
147 $(LIBTOOL_LINK) $(CXX) $(LDFLAGS) -shared $(CLOUD_LOBJS) -o $@ $(S3_LIBS) -rpath $(libdir) -module -export-dynamic -release $(LIBBACSD_LT_RELEASE)
149 bacula-sd-aligned-driver.la: Makefile $(ALIGNED_LOBJS)
150 $(LIBTOOL_LINK) $(CXX) $(LDFLAGS) -shared $(ALIGNED_LOBJS) -o $@ -rpath $(plugindir) \
151 -module -export-dynamic -release $(LIBBACSD_LT_RELEASE)
154 bsdjson: Makefile $(JSONOBJS) ../lib/libbaccfg$(DEFAULT_ARCHIVE_TYPE) ../lib/libbac$(DEFAULT_ARCHIVE_TYPE)
155 @echo "Linking $@ ..."
156 $(LIBTOOL_LINK) $(CXX) $(WLDFLAGS) $(LDFLAGS) -L../lib -o $@ $(JSONOBJS) $(ZLIBS) \
157 -lbaccfg -lbac -lm $(DLIB) $(LIBS) $(WRAPLIBS) \
158 $(GETTEXT_LIBS) $(OPENSSL_LIBS) $(CAP_LIBS)
160 static-bacula-sd: Makefile $(SDOBJS) ../lib/libbaccfg$(DEFAULT_ARCHIVE_TYPE) ../lib/libbac$(DEFAULT_ARCHIVE_TYPE)
161 $(LIBTOOL_LINK) $(CXX) $(WLDFLAGS) $(LDFLAGS) -static -L../lib -o $@ $(SDOBJS) $(ZLIBS) \
162 $(SD_LIBS) -lm $(DLIB) $(LIBS) $(WRAPLIBS) \
163 $(GETTEXT_LIBS) $(OPENSSL_LIBS) $(CAP_LIBS)
168 $(NO_ECHO)$(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) \
169 -I$(basedir) $(DINCLUDE) $(CFLAGS) $<
171 btape: Makefile $(TAPEOBJS) libbacsd.la drivers ../lib/libbac$(DEFAULT_ARCHIVE_TYPE) ../lib/libbaccfg$(DEFAULT_ARCHIVE_TYPE)
172 $(LIBTOOL_LINK) $(CXX) $(TTOOL_LDFLAGS) $(LDFLAGS) -L../lib -o $@ $(TAPEOBJS) \
173 $(SD_LIBS) $(DLIB) -lm $(LIBS) $(GETTEXT_LIBS) $(OPENSSL_LIBS)
176 cloud_test.o: cloud_test.c
178 $(NO_ECHO)$(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) \
179 -I$(basedir) $(DINCLUDE) $(CFLAGS) $<
181 cloud_test: Makefile cloud_test.o ../lib/libbac$(DEFAULT_ARCHIVE_TYPE) $(BLSOBJS) libbacsd.la drivers
182 $(LIBTOOL_LINK) $(CXX) $(TTOOL_LDFLAGS) $(LDFLAGS) -L../lib -L../findlib -o $@ $(CLOUDTESTOBJS) $(DLIB) \
183 $(SD_LIBS) -lm $(LIBS) $(GETTEXT_LIBS) $(OPENSSL_LIBS)
187 $(NO_ECHO)$(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) \
188 -I$(basedir) $(DINCLUDE) $(CFLAGS) $<
190 bls: Makefile $(BLSOBJS) libbacsd.la drivers ../findlib/libbacfind$(DEFAULT_ARCHIVE_TYPE) ../lib/libbaccfg$(DEFAULT_ARCHIVE_TYPE) ../lib/libbac$(DEFAULT_ARCHIVE_TYPE)
192 $(LIBTOOL_LINK) $(CXX) $(TTOOL_LDFLAGS) $(LDFLAGS) -L../lib -L../findlib -o $@ $(BLSOBJS) $(DLIB) \
193 $(SD_LIBS) -lbacfind -lm $(LIBS) $(GETTEXT_LIBS) $(OPENSSL_LIBS)
195 bextract.o: bextract.c
197 $(NO_ECHO)$(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) \
198 -I$(basedir) $(DINCLUDE) $(CFLAGS) $(LZO_INC) $<
200 bextract: Makefile $(BEXTOBJS) libbacsd.la drivers ../findlib/libbacfind$(DEFAULT_ARCHIVE_TYPE) ../lib/libbaccfg$(DEFAULT_ARCHIVE_TYPE) ../lib/libbac$(DEFAULT_ARCHIVE_TYPE)
202 $(LIBTOOL_LINK) $(CXX) $(TTOOL_LDFLAGS) $(LDFLAGS) -L../lib -L../findlib -o $@ $(BEXTOBJS) $(DLIB) $(ZLIBS) $(LZO_LIBS) \
203 $(SD_LIBS) -lbacfind -lm $(LIBS) $(GETTEXT_LIBS) $(OPENSSL_LIBS)
207 $(NO_ECHO)$(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) \
208 -I$(basedir) $(DINCLUDE) $(CFLAGS) $<
210 bscan: Makefile $(SCNOBJS) libbacsd.la drivers ../findlib/libbacfind$(DEFAULT_ARCHIVE_TYPE) ../lib/libbaccfg$(DEFAULT_ARCHIVE_TYPE) \
211 ../cats/libbacsql$(DEFAULT_ARCHIVE_TYPE) ../cats/libbaccats$(DEFAULT_ARCHIVE_TYPE)
212 $(LIBTOOL_LINK) $(CXX) $(TTOOL_LDFLAGS) $(LDFLAGS) -L../lib -L../cats -L../findlib -o $@ $(SCNOBJS) \
213 $(SD_LIBS) -lbacsql -lbaccats $(DB_LIBS) $(ZLIBS) -lbacfind -lbaccfg -lbac -lm $(LIBS) $(GETTEXT_LIBS) $(OPENSSL_LIBS)
217 $(NO_ECHO)$(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) \
218 -I$(basedir) $(DINCLUDE) $(CFLAGS) $<
220 bcopy: Makefile $(COPYOBJS) libbacsd.la drivers ../findlib/libbacfind$(DEFAULT_ARCHIVE_TYPE) ../lib/libbaccfg$(DEFAULT_ARCHIVE_TYPE) ../lib/libbac$(DEFAULT_ARCHIVE_TYPE)
221 $(LIBTOOL_LINK) $(CXX) $(TTOOL_LDFLAGS) $(LDFLAGS) -L../lib -o $@ $(COPYOBJS) \
222 $(SD_LIBS) -lm $(LIBS) $(GETTEXT_LIBS) $(OPENSSL_LIBS)
224 cloud_parts_test: Makefile cloud_parts.c
226 $(CXX) -DTEST_PROGRAM $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) cloud_parts.c
227 $(LIBTOOL_LINK) $(CXX) $(LDFLAGS) -L../lib -o $@ cloud_parts.o $(DLIB) -lbac -lm $(LIBS) $(OPENSSL_LIBS)
229 $(CXX) $(DEFS) $(DEBUG) -c $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) cloud_parts.c
232 Makefile: $(srcdir)/Makefile.in $(topdir)/config.status
234 && CONFIG_FILES=$(thisdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
237 $(MKDIR) $(DESTDIR)$(libdir)
238 $(RMF) $(DESTDIR)$(libdir)/libbacsd-*.so $(DESTDIR)$(libdir)/libbacsd.la
239 $(LIBTOOL_INSTALL_FINISH) $(INSTALL_LIB) libbacsd.la $(DESTDIR)$(libdir)
242 $(LIBTOOL_UNINSTALL) $(RMF) $(DESTDIR)$(libdir)/libbacsd.la
244 install: all @LIBTOOL_INSTALL_TARGET@
245 $(LIBTOOL_INSTALL) $(INSTALL_PROGRAM) bacula-sd $(DESTDIR)$(sbindir)/bacula-sd
246 $(LIBTOOL_INSTALL) $(INSTALL_PROGRAM) bsdjson $(DESTDIR)$(sbindir)/bsdjson
247 $(LIBTOOL_INSTALL) $(INSTALL_PROGRAM) bls $(DESTDIR)$(sbindir)/bls
248 $(LIBTOOL_INSTALL) $(INSTALL_PROGRAM) bextract $(DESTDIR)$(sbindir)/bextract
249 $(LIBTOOL_INSTALL) $(INSTALL_PROGRAM) bcopy $(DESTDIR)$(sbindir)/bcopy
250 $(LIBTOOL_INSTALL) $(INSTALL_PROGRAM) bscan $(DESTDIR)$(sbindir)/bscan
251 $(LIBTOOL_INSTALL) $(INSTALL_PROGRAM) btape $(DESTDIR)$(sbindir)/btape
252 @if test -f static-bacula-sd; then \
253 $(LIBTOOL_INSTALL) $(INSTALL_PROGRAM) static-bacula-sd $(DESTDIR)$(sbindir)/static-bacula-sd; \
255 @srcconf=bacula-sd.conf; \
256 if test -f ${DESTDIR}${sysconfdir}/$$srcconf; then \
257 destconf=$$srcconf.new; \
258 echo " ==> Found existing $$srcconf, installing new conf file as $$destconf"; \
260 destconf=$$srcconf; \
262 echo "${INSTALL_CONFIG} $$srcconf ${DESTDIR}${sysconfdir}/$$destconf"; \
263 ${INSTALL_CONFIG} $$srcconf ${DESTDIR}${sysconfdir}/$$destconf
264 @if test "x${sd_group}" != "x" -a "x${DESTDIR}" = "x" ; then \
265 chgrp -f ${sd_group} ${DESTDIR}${sysconfdir}/$$destconf; \
268 install-cloud: bacula-sd-cloud-driver.la
269 $(MKDIR) $(DESTDIR)$(plugindir)
270 $(LIBTOOL_INSTALL) $(INSTALL_PROGRAM) bacula-sd-cloud-driver$(DEFAULT_SHARED_OBJECT_TYPE) $(DESTDIR)$(plugindir)
271 $(RMF) $(DESTDIR)$(plugindir)/bacula-sd-cloud-driver.la
273 install-aligned: bacula-sd-aligned-driver.la
274 $(MKDIR) $(DESTDIR)$(plugindir)
275 $(LIBTOOL_INSTALL) $(INSTALL_PROGRAM) bacula-sd-aligned-driver$(DEFAULT_SHARED_OBJECT_TYPE) $(DESTDIR)$(plugindir)
276 $(RMF) $(DESTDIR)$(plugindir)/bacula-sd-aligned-driver.la
279 (cd $(DESTDIR)$(sbindir); $(RMF) bacula-sd bsdjson)
280 (cd $(DESTDIR)$(sbindir); $(RMF) bls)
281 (cd $(DESTDIR)$(sbindir); $(RMF) bextract)
282 (cd $(DESTDIR)$(sbindir); $(RMF) bcopy)
283 (cd $(DESTDIR)$(sbindir); $(RMF) bscan)
284 (cd $(DESTDIR)$(sbindir); $(RMF) btape)
285 (cd $(DESTDIR)$(sysconfdir); $(RMF) bacula-sd.conf bacula-sd.conf.new)
288 @find . -name '*.lo' -print | xargs $(LIBTOOL_CLEAN) $(RMF)
289 @$(RMF) -r .libs _libs
293 @$(RMF) bacula-sd stored bls bextract bpool btape shmfree core core.* a.out *.o *.bak *~ *.intpro *.extpro 1 2 3
294 @$(RMF) bscan bsdjson bcopy static-bacula-sd
297 @$(RMF) tags bacula-sd.conf
300 if test $(srcdir) = .; then $(MAKE) realclean; fi
301 (cd $(srcdir); $(RMF) Makefile)
304 if test $(srcdir) = .; then $(MAKE) realclean; fi
305 (cd $(srcdir); $(RMF) Makefile)
307 # Semi-automatic generation of dependencies:
308 # Use cc -M because X11 `makedepend' doesn't work on all systems
309 # and it also includes system headers.
310 # `semi'-automatic since dependencies are generated at distribution time.
313 @$(MV) Makefile Makefile.bak
314 @$(SED) "/^# DO NOT DELETE:/,$$ d" Makefile.bak > Makefile
315 @$(ECHO) "# DO NOT DELETE: nice dependency list follows" >> Makefile
316 @$(CXX) -S -M $(CPPFLAGS) $(XINC) $(S3_INC) $(TOKYOCABINET_INC) -I$(srcdir) -I$(basedir) *.c >> Makefile
317 @if test -f Makefile ; then \
318 $(RMF) Makefile.bak; \
320 $(MV) Makefile.bak Makefile; \
321 echo " ======= Something went wrong with make depend. ======="; \
324 # -----------------------------------------------------------------------
325 # DO NOT DELETE: nice dependency list follows