-#
-# Version $Id$
-#
+#
+# Master Makefile
+#
+# Copyright (C) 2000-2015 Kern Sibbald
+# License: BSD 2-Clause; see file LICENSE-FOSS
+#
@MCOMMON@
working_dir=@working_dir@
+dir_group=@dir_group@
+dir_user=@dir_user@
srcdir = @srcdir@
VPATH = @srcdir@
.PATH: @srcdir@
-topdir = .
-thisdir = .
+topdir = @BUILD_DIR@
+thisdir = @BUILD_DIR@
first_rule: all
dummy:
-subdirs = src scripts doc src/lib src/findlib src/cats \
- @READLINE_SRC@ src/console src/dird src/filed \
- src/stored @GNOME_DIR@ src/tools \
- rescue rescue/linux
+# --client-only directories
+fd_subdirs = src scripts src/lib src/findlib src/filed \
+ @READLINE_SRC@ @BAT_DIR@ src/console @FD_PLUGIN_DIR@
-FDsubdirs = src/lib src/findlib src/filed
+# Non-client-only directores
+subdirs = src/cats @DIRD_DIR@ @STORED_DIR@ src/tools
+
+all_subdirs = ${fd_subdirs} ${@ALL_DIRS@} manpages
DIST = INSTALL README.configure configure Makefile Makefile.in ChangeLog
autoconf/config.h.in autoconf/acconfig.h autoconf/Make.common.in \
autoconf/install-sh autoconf/mkinstalldirs
+doc_files = VERIFYING ChangeLog README ReleaseNotes LICENSE \
+ LICENSE-FAQ LICENSE-FOSS INSTALL
+
MKDIR = $(srcdir)/autoconf/mkinstalldirs
+LIBTOOL_DEPS = @LIBTOOL_DEPS@
#-------------------------------------------------------------------------
all: Makefile
- @for I in ${subdirs}; \
+ @for I in ${all_subdirs}; \
do (cd $$I; echo "==>Entering directory `pwd`"; \
- $(MAKE) $@ || (echo ""; echo ""; echo -e " \a\a ====== Error in `pwd` ======\a\a"; \
- echo ""; echo "";)); \
+ $(MAKE) DESTDIR=$(DESTDIR) $@ || (echo ""; echo ""; echo " ====== Error in `pwd` ======"; \
+ echo ""; echo ""; false ) || false) || exit 1; \
done
depend:
- @for I in ${subdirs}; \
- do (cd $$I; echo "==>Entering directory `pwd`"; $(MAKE) $@ || exit 1); done
+ @for I in ${all_subdirs}; \
+ do (cd $$I; echo "==>Entering directory `pwd`"; $(MAKE) DESTDIR=$(DESTDIR) $@ || exit 1); done
-bacula-fd: Makefile
- @for I in ${FDsubdirs}; \
+bacula-fd: Makefile
+ @for I in ${fd_subdirs}; \
do (cd $$I; echo "==>Entering directory `pwd`"; \
- $(MAKE) all || (echo ""; echo ""; echo -e " \a\a ====== Error in `pwd` ======\a\a"; \
- echo ""; echo "";)); \
+ $(MAKE) DESTDIR=$(DESTDIR) all || \
+ (echo ""; echo ""; echo " ====== Error in `pwd` ======"; \
+ echo ""; echo ""; false ) || false) || exit 1; \
done
#-------------------------------------------------------------------------
+
+autoconf/aclocal.m4: autoconf/configure.in autoconf/bacula-macros/* autoconf/gettext-macros/* autoconf/libtool/*
+
+# Note, the following is needed in the above if ever any new macro is added.
+# However, at the current time, the -I libtool causes the autoconf/aclocal.m4
+# get messed up, so this is commented out
+# cd autoconf && aclocal -I bacula-macros -I gettext-macros -I libtool
+
configure: autoconf/configure.in autoconf/aclocal.m4 autoconf/acconfig.h autoconf/config.h.in
cd $(srcdir);
- autoconf --localdir=$(srcdir)/autoconf \
+ ${RMF} config.cache config.log config.out config.status src/config.h
+ ${RMF} -r autoconf/autom4te.cache autom4te.cache
+ autoconf --prepend-include=$(srcdir)/autoconf \
autoconf/configure.in > configure
chmod 755 configure
+ ${RMF} -r autoconf/autom4te.cache autom4te.cache
config.status:
if test -x config.status; then config.status --recheck; \
autoconf/config.h.in: autoconf/configure.in autoconf/acconfig.h
cd $(srcdir);
- autoheader --localdir=$(srcdir)/autoconf \
+ ${RMF} config.cache config.log config.out config.status src/config.h
+ autoheader --prepend-include=$(srcdir)/autoconf \
autoconf/configure.in > autoconf/config.h.in
chmod 644 autoconf/config.h.in
+libtool: Makefile $(LIBTOOL_DEPS)
+ $(SHELL) ./config.status --recheck
+
installdirs:
$(MKDIR) $(DESTDIR)$(sbindir)
$(MKDIR) $(DESTDIR)$(sysconfdir)
- $(MKDIR) $(DESTDIR)$(working_dir)
-# $(MKDIR) $(DESTDIR)$(mandir)
+ chmod 770 $(DESTDIR)$(sysconfdir)
+ -if test "x$(dir_user)" != "x" ; then \
+ chown $(dir_user) $(DESTDIR)$(sysconfdir); \
+ fi
+ -if test "x$(dir_group)" != "x" ; then \
+ chgrp $(dir_group) $(DESTDIR)$(sysconfdir); \
+ fi
+ $(MKDIR) $(DESTDIR)$(scriptdir)
+ $(MKDIR) $(DESTDIR)$(docdir)
+ $(MKDIR) $(DESTDIR)$(archivedir)
+ $(MKDIR) $(DESTDIR)$(bsrdir)
+ $(MKDIR) $(DESTDIR)${logdir}
+ -if test ! -d $(DESTDIR)$(working_dir) ; then \
+ $(MKDIR) $(DESTDIR)$(working_dir); \
+ chmod 770 $(DESTDIR)$(working_dir); \
+ fi
+ -if test "x$(dir_user)" != "x" ; then \
+ chown $(dir_user) $(DESTDIR)$(working_dir); \
+ chown $(dir_user) $(DESTDIR)$(logdir); \
+ fi
+ -if test "x$(dir_group)" != "x" ; then \
+ chgrp $(dir_group) $(DESTDIR)$(working_dir); \
+ chgrp $(dir_group) $(DESTDIR)$(logdir); \
+ fi
install: installdirs
- @for I in $(subdirs); do (cd $$I; $(MAKE) DESTDIR=$(DESTDIR) $@ || exit 1); done
+ @for I in $(doc_files) ; do $(INSTALL_DATA) $$I $(DESTDIR)${docdir}; done
+ @for I in $(all_subdirs); do (cd $$I && $(MAKE) DESTDIR=$(DESTDIR) $@ || exit 1); done
uninstall:
- @for I in $(subdirs); do (cd $$I; $(MAKE) DESTDIR=$(DESTDIR) $@ || exit 1); done
+ @for I in $(all_subdirs); do (cd $$I && $(MAKE) DESTDIR=$(DESTDIR) $@ || exit 1); done
-install-autostart: install-autostart-dir install-autostart-fd install-autostart-sd
+install-autostart:
+ (cd platforms && $(MAKE) DESTDIR=$(DESTDIR) $@ || exit 1)
install-autostart-dir:
- (cd platforms; $(MAKE) $@ || exit 1)
+ (cd platforms && $(MAKE) DESTDIR=$(DESTDIR) $@ || exit 1)
install-autostart-fd:
- (cd platforms; $(MAKE) $@ || exit 1)
+ (cd platforms && $(MAKE) DESTDIR=$(DESTDIR) $@ || exit 1)
install-autostart-sd:
- (cd platforms; $(MAKE) $@ || exit 1)
+ (cd platforms && $(MAKE) DESTDIR=$(DESTDIR) $@ || exit 1)
-uninstall-autostart: uninstall-autostart-dir uninstall-autostart-fd uninstall-autrun-sd
+uninstall-autostart:
+ (cd platforms && $(MAKE) DESTDIR=$(DESTDIR) $@ || exit 1)
uninstall-autostart-dir:
- (cd platforms; $(MAKE) $@ || exit 1)
+ (cd platforms && $(MAKE) DESTDIR=$(DESTDIR) $@ || exit 1)
uninstall-autostart-fd:
- (cd platforms; $(MAKE) $@ || exit 1)
+ (cd platforms && $(MAKE) DESTDIR=$(DESTDIR) $@ || exit 1)
uninstall-autostart-sd:
- (cd platforms; $(MAKE) $@ || exit 1)
+ (cd platforms && $(MAKE) DESTDIR=$(DESTDIR) $@ || exit 1)
Makefile: Makefile.in
cd $(topdir) \
Makefiles:
$(SHELL) config.status
(cd scripts; \
- chmod 755 startmysql stopmysql bacula fd startit stopit btraceback; \
- chmod 755 mtx-changer console gconsole)
- chmod 755 src/cats/make_mysql_tables src/cats/drop_mysql_tables
- chmod 755 src/cats/make_sqlite_tables src/cats/drop_sqlite_tables
- chmod 755 src/cats/make_bdb_tables src/cats/drop_bdb_tables
- chmod 755 src/cats/make_test_tables src/cats/drop_test_tables
- chmod 755 src/cats/create_mysql_database
- chmod 755 src/cats/alter_mysql_tables
- chmod 755 src/cats/create_sqlite_database
- chmod 755 src/cats/alter_sqlite_tables
- chmod 755 src/cats/create_bdb_database
- chmod 755 src/cats/grant_mysql_privileges
+ chmod 755 startmysql stopmysql bacula startit stopit btraceback \
+ mtx-changer bconsole gconsole devel_bacula dvd-handler)
+ (cd src/cats; \
+ chmod 755 create_bacula_database update_bacula_tables \
+ make_bacula_tables grant_bacula_privileges drop_bacula_tables \
+ drop_bacula_database make_catalog_backup delete_catalog_backup)
+ @for I in @DB_BACKENDS@ ; do \
+ (cd src/cats; \
+ chmod 755 create_$${I}_database update_$${I}_tables \
+ make_$${I}_tables grant_$${I}_privileges drop_$${I}_tables \
+ drop_$${I}_database); \
+ done
+ (cd src/qt-console; \
+ chmod 755 install_conf_file build-depkgs-qt-console)
clean:
- @for I in ${subdirs}; \
+ @for I in ${all_subdirs} ; \
do (cd $$I; echo "==>Entering directory `pwd`"; ${MAKE} $@ || exit 1); done
@(cd platforms; echo "==>Entering directory `pwd`"; ${MAKE} $@ || exit 1)
@$(RMF) *~ 1 2 3 core core.* config.guess console.log console.sum
+ @$(RMF) examples/1 examples/2 examples/devices/1 examples/devices/2
+ @$(RMF) -r autom4te.cache
+ @find . -name ".#*" -exec $(RMF) {} \;
# clean for distribution
distclean:
- @for I in $(subdirs); do (cd $$I; $(MAKE) $@ || exit 1); done
- @for I in $(subdirs); do (cd $$I; $(RMF) startit stopit btraceback); done
- @(cd $(srcdir); $(RMF) *~ config.cache config.h config.log config.status config.out)
- @(cd $(srcdir); $(RMF) Makefile autoconf/Make.common)
+ @for I in $(all_subdirs); do (cd $$I && $(MAKE) $@ || exit 1); done
+ @for I in $(all_subdirs); do (cd $$I && $(RMF) startit stopit btraceback); done
+ @(cd $(srcdir) && $(RMF) *~ config.cache config.h config.log config.status config.out)
+ @(cd $(srcdir) && $(RMF) Makefile autoconf/Make.common)
@(cd platforms; echo "==>Entering directory `pwd`"; ${MAKE} $@ || exit 1)
@$(RMF) bacula fd Makefile startmysql stopmysql startit stopit btraceback
- @$(RMF) console gconsole
+ @$(RMF) bconsole gconsole
+ @$(RMF) *~ 1 2 3 core core.* config.guess console.log console.sum
+ @$(RMF) working/* kerns-*
+ @$(RMF) -rf txt diff src/python src/testprogs
+ @$(RMF) libtool
+
+devclean:
+ @for I in $(all_subdirs); do (cd $$I && $(MAKE) $@ || exit 1); done
+ @for I in $(all_subdirs); do (cd $$I && $(RMF) startit stopit btraceback); done
+ @(cd $(srcdir) && $(RMF) *~ config.cache config.h config.log config.status config.out)
+ @(cd $(srcdir) && $(RMF) Makefile autoconf/Make.common)
+ @(cd platforms; echo "==>Entering directory `pwd`"; ${MAKE} $@ || exit 1)
+ @$(RMF) bacula fd Makefile startmysql stopmysql startit stopit btraceback
+ @$(RMF) bconsole gconsole
@$(RMF) *~ 1 2 3 core core.* config.guess console.log console.sum
@$(RMF) working/*
distdirs:
mkdir ../$(VERNAME);
mkdir ../$(VERNAME)/autoconf;
- @for I in $(subdirs); do (cd $$I; $(MAKE) $@ || (echo "Failed to make distclean in $$I"; exit 0) ); done
+ @for I in $(all_subdirs); do (cd $$I && $(MAKE) DESTDIR=$(DESTDIR) $@ || (echo "Failed to make distclean in $$I"; exit 0) ); done
distcopy:
$(CP) -p $(DIST) ../$(VERNAME);
$(CP) -p $(DIST_CFG) ../$(VERNAME)/autoconf;
- @for I in $(subdirs); do (cd $$I; $(MAKE) $@ || exit 1); done
+ @for I in $(all_subdirs); do (cd $$I && $(MAKE) DESTDIR=$(DESTDIR) $@ || exit 1); done
distrib: configure autoconf/config.h.in distdirs distcopy
-test:
- $(CP) ./autoconf/config.guess .
- runtest
- $(RMF) config.guess
- cat console.sum
-
-
-tar.gz: ../$(VERNAME).tar.gz
-../$(VERNAME).tar.gz:
- (cd ..; tar cvf - $(VERNAME) | gzip -f9 > $(VERNAME).tar.gz)
-
-tar.Z: ../$(VERNAME).tar.Z
-../$(VERNAME).tar.Z:
- (cd ..; tar cvf - $(VERNAME) | compress > $(VERNAME).tar.Z)
-
-tar.bz2: ../$(VERNAME).tar.bz2
-../$(VERNAME).tar.bz2:
- (cd ..; tar cvf - $(VERNAME) | bzip2 -f9 > $(VERNAME).tar.bz2)
-
-uuencode: tar.gz
- uuencode ../$(VERNAME).tar.gz $(VERNAME).tar.gz > ../$(VERNAME).tgz.uu
-
# ------------------------------------------------------------------------