#!/usr/bin/make -f # debian/rules for Bacula # based upon dh_make template, copyright 1997 by Joey Hess. # #export DH_VERBOSE=1 # These are used for cross-compiling and for saving the configure script # from having to guess our platform (since we know it already) DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) CFLAGS = -g -Wall -D_FORTIFY_SOURCE=0 INSTALL_PROGRAM = install SHELL := bash ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) CFLAGS += -O0 else CFLAGS += -O2 endif ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) INSTALL_PROGRAM += -s endif VARIANTS := sqlite ###################################################################### NAME=bacula # The variant that is used when we install non-variant-specific stuff. # Only bother building extra consoles and stuff for this one. DEFAULTVARIANT := sqlite TEMPLATES = $(wildcard debian/*.templates) BUILDDIR := $(CURDIR)/debian/tmp-build INSTALLDIR := $(CURDIR)/debian/tmp-install DEFAULTINSTALLDIR := $(INSTALLDIR)-$(DEFAULTVARIANT) DBC := usr/share/dbconfig-common/data/ CONF_ALL = --enable-smartalloc \ --with-tcp-wrappers \ --with-libiconv-prefix=/usr/include --with-readline=yes \ --with-libintl-prefix=/usr/include --with-readline=yes \ --with-fd-password=XXX_FDPASSWORD_XXX \ --with-mon-fd-password=XXX_MONFDPASSWORD_XXX \ --disable-ipv6 --enable-client-only ########################################################################### extract: extract-stamp extract-stamp: $(foreach s,$(VARIANTS),extract-stamp-$(s)) extract-stamp-%: @echo " *** DEBIAN *** VARIANT $(*): EXTRACTING to $(BUILDDIR)-$(*)" mkdir $(BUILDDIR)-$(*) tar -cSf - --exclude=./_darcs --exclude=./debian . | tar -xSpf - -C $(BUILDDIR)-$(*) touch $@ configure-stamp-%: extract-stamp-% dh_testdir @echo " *** DEBIAN *** CONFIGURING VARIANT $*" cp /usr/share/misc/config.guess /usr/share/misc/config.sub \ $(BUILDDIR)-$(*)/autoconf/ cd $(BUILDDIR)-$(*) && \ QMAKE=/usr/bin/qmake-qt4 $(SHELL) ./configure --config-cache \ --host=${DEB_HOST_GNU_TYPE} --build=${DEB_BUILD_GNU_TYPE} \ --prefix=/usr \ --with-archivedir=/nonexistant/path/to/file/archive/dir \ --sysconfdir=/etc/bacula --with-scriptdir=/etc/bacula/scripts \ --sharedstatedir=/var/lib/bacula \ --localstatedir=/var/lib/bacula \ --with-pid-dir=/var/run/bacula --with-smtp-host=localhost \ --with-working-dir=/var/lib/bacula \ --with-subsys-dir=/var/lock \ --mandir=\$${prefix}/share/man \ --infodir=\$${prefix}/share/info \ $(CONF_ALL) $(CONF_$(*)) touch $@ build-stamp-%: configure-stamp-% dh_testdir @echo " *** DEBIAN *** BUILDING VARIANT $*" # Main building process $(MAKE) -C $(BUILDDIR)-$(*) # Grrr... client-only does not build needed db-independent 'bsmtp', 'stored' #$(MAKE) -C $(BUILDDIR)-$(*)/src/tools #$(MAKE) -C $(BUILDDIR)-$(*)/src/stored chmod 755 debian/additions/postinst-common chmod 755 debian/additions/bconsole touch $@ build-arch: build-stamp build-stamp: $(foreach v,$(VARIANTS),build-stamp-$(v)) touch $@ build-indep: build-indep-stamp build-indep-stamp: dh_testdir touch $@ build: patch build-arch build-indep debian/po/templates.pot ############################################### # Cleaning macro ############################################### clean: #[ ! -f patch-stamp ] || patch -R -p0 -i debian/patches/ubuntu_bacula-dir.conf.patch [ ! -f patch-stamp ] || patch -R -p0 -i debian/patches/ubuntu_address.patch $(RM) *stamp* dh_clean $(RM) -r debian/tmp* debian/bacula-doc \ scripts/disk-changer ## delete ${FLAVORED_BINARIES} $(RM) $(foreach pkg,$(VARIANTS), src/stored/bscan.$(pkg) src/stored/bcopy.$(pkg)) #-$(MAKE) -C doc/latex clean $(RM) build-arch-flavor-stamp $(RM) patch-stamp debian/po/templates.pot: $(TEMPLATES) @debconf-updatepo # Macro to extract a here document and put it in place # args: 1 -- db name, 2 -- file to extract, 3 -- version #define ext-upgrade #debian/patches/extract_here < $(2) > debian/bacula-director-$(1)/$(DBC)/bacula-director-$(1)/upgrade/$(1)/$(3) #endef # Macro to extract a here document for install and put it in place # args: 1 -- db name, 2 -- file to extract # We append so we can do the postgresql hack for datestyle #define ext-install #debian/patches/extract_here < $(2) > debian/bacula-director-$(1)/$(DBC)/bacula-director-$(1)/install/$(1) #endef install: build install-stamp install-stamp: build-stamp $(foreach v,$(VARIANTS),install-stamp-$(v)) dh_installdirs -a #dh_install -pbacula-director-common dh_install -pbacula-fd dh_install -pbacula-console cp $(DEFAULTINSTALLDIR)/usr/sbin/bconsole debian/bacula-console/usr/sbin/bacula-console install-stamp-%: build-stamp-% @echo " *** DEBIAN *** INSTALLING VARIANT $*" #dh_installdirs -pbacula-director-$(*) mkdir $(INSTALLDIR)-$(*) $(MAKE) -C $(BUILDDIR)-$(*) install DESTDIR=$(INSTALLDIR)-$(*) #dh_install -pbacula-director-$(*) #cp debian/make_catalog_backup_awk.$(*) debian/bacula-director-$(*)/etc/bacula/scripts/make_catalog_backup_awk touch $@ install-indep: build install-stamp dh_testdir dh_testroot dh_install -i dh_installdirs -i dh_install -pbacula -pbacula-client install-arch: build install-stamp dh_install -a dh_link -pbacula-common for f in bconsole.conf bacula-fd.conf; do \ debian/patches/fix_config \ debian/tmp-install-sqlite/etc/bacula/$$f \ debian/bacula-common/usr/share/bacula-common/defconfig/$$f; \ done cp $(CURDIR)/debian/common-functions $(CURDIR)/debian/bacula-common/usr/share/bacula-common chmod 755 $(CURDIR)/debian/bacula-common/usr/lib/bacula/btraceback patch: patch-stamp patch-stamp: chmod 755 debian/patches/fix_config \ debian/patches/extract_here chmod 755 debian/additions/bconsole #patch -p0 -i debian/patches/ubuntu_bacula-dir.conf.patch patch -p0 -i debian/patches/ubuntu_address.patch touch patch-stamp # Build architecture-independent files here. # Pass -i to all debhelper commands in this target to reduce clutter. binary-indep: build install-indep patch dh_testdir -i dh_testroot -i # dh_installdebconf -i dh_installdocs -i -X.cvsignore -X1 -X*.wml -X*.inc -X*.list -X*.pl -X*.apf -X*.book dh_installexamples -i # dh_installmenu -i dh_installlogrotate -i # dh_installinit -i dh_installcron -i dh_installman -i dh_installinfo -i dh_installchangelogs ChangeLog -i dh_link -i dh_compress -i -X.pdf dh_fixperms -i dh_installdeb -i dh_gencontrol -i dh_md5sums -i dh_builddeb -i # Build architecture-dependent files here. binary-arch: build install install-arch binary-arch-common binary-arch-common: DH_OPTIONS= binary-arch-common: build install dh_testdir -a dh_testroot -a dh_installdebconf -a dh_installdocs -a dh_installexamples -a dh_installmenu -pbacula-console dh_installlogrotate -a dh_installinit -pbacula-fd -- defaults 91 # dh_installcron -a dh_installman -a dh_installinfo -a dh_installchangelogs ChangeLog -a dh_strip -a dh_link -a dh_compress -a dh_fixperms -a dh_makeshlibs -a dh_installdeb -a dh_shlibdeps -a dh_gencontrol -a dh_md5sums -a dh_builddeb -a binary: binary-indep binary-arch .PHONY: build clean binary-indep binary-arch binary install build-arch