# # This is the makefile template for the platform directory # which contains general platform installation. # # 17 August 2009 -- Lorenz Schori # # for Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ # # bacula version and download site BACULA_VERSION:=@VERSION@ BACULA_DL_URL:=http://downloads.sourceforge.net/project/bacula/bacula/${BACULA_VERSION}/bacula-${BACULA_VERSION}.tar.gz # fakeroot version and download site FAKEROOT_VERSION:=1.13 FAKEROOT_DL_URL:=http://ftp.de.debian.org/debian/pool/main/f/fakeroot/fakeroot_${FAKEROOT_VERSION}.tar.gz # Build universal binary. Comment out when building versions of bacula < 3.0.0 ARCHFLAGS:=-arch i386 -arch ppc MACOSX_SDK_SYSROOT:=/Developer/SDKs/MacOSX10.4u.sdk MACOSX_VERSION_FLAGS:=-mmacosx-version-min=10.4 # Tools PM:=/Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker MAKE:=/usr/bin/make CURL:=/usr/bin/curl TAR:=/usr/bin/tar ########### you should not have to edit anything beyond this line ########### # Build paths DL_DIR:=dl BUILD_DIR:=build PRODUCTS_DIR:=products TOOLS_DIR:=tools WORKING_DIR:=${BUILD_DIR}/${BACULA_VERSION} BACULA_TAR:=${DL_DIR}/bacula-${BACULA_VERSION}.tar.gz BACULA_SOURCE:=${WORKING_DIR}/bacula-${BACULA_VERSION} BACULA_DESTDIR:=${WORKING_DIR}/destdir BACULA_PREFIX:=/usr/local/bacula-${BACULA_VERSION} # Detect whether we sit inside the bacula source tree. In this case we won't # download the tar from sourceforge but instead work with what its there # already CURSUB:=$(CURDIR:%/platforms/osx=%) ifneq ($(CURDIR),$(CURSUB)) BACULA_TAR:= BACULA_SOURCE:=../../ # BACULA_VERSION:=$(shell sed -n 's,^VERSION=,,p' $(CURSUB)/autoconf/Make.common) endif PACKAGE_TITLE:=Bacula File Daemon ${BACULA_VERSION} PACKAGE_DIR:=${PRODUCTS_DIR}/${PACKAGE_TITLE} PACKAGE_BUNDLE:=${PACKAGE_DIR}/${PACKAGE_TITLE}.pkg PACKAGE_DMG:=${PRODUCTS_DIR}/${PACKAGE_TITLE}.dmg PACKAGE_RESOURCES:=Description.plist Info.plist ReadMe.html postflight preupgrade PACKAGE_XRESOURCES:=postflight preupgrade FAKEROOT_TAR:=${DL_DIR}/fakeroot-${FAKEROOT_VERSION}.tar.gz FAKEROOT_SOURCE:=${TOOLS_DIR}/fakeroot-${FAKEROOT_VERSION} FAKEROOT_DESTDIR:=${FAKEROOT_SOURCE}/destdir FAKEROOT:=${FAKEROOT_DESTDIR}/bin/fakeroot # Flags for the toolchain CONFIGFLAGS:=--enable-client-only --prefix=${BACULA_PREFIX} \ --with-dir-password=@DIR_PW@ --with-fd-password=@FD_PW@ \ --with-sd-password=@SD_PW@ --with-mon-dir-password=@MON_DIR_PW@ \ --with-mon-fd-password=@MON_FD_PW@ --with-mon-sd-password=@MON_SD_PW@ \ --with-basename=@BASENAME@ --with-hostname=@HOSTNAME@ CPPFLAGS:=-isysroot ${MACOSX_SDK_SYSROOT} ${MACOSX_VERSION_FLAGS} CFLAGS:=-O -g ${ARCHFLAGS} CXXFLAGS:=${CFLAGS} LDFLAGS:=${MACOSX_VERSION_FLAGS} ${ARCHFLAGS} dmg: pkg hdiutil create -srcfolder "${PACKAGE_DIR}" "${PACKAGE_DMG}" pkg: ${BACULA_DESTDIR} ${WORKING_DIR}/resources ${FAKEROOT_DESTDIR} mkdir -p "${PACKAGE_DIR}" ${FAKEROOT} ${PM} -build -ds -v -f "\"${BACULA_DESTDIR}\"" -p "\"${PACKAGE_BUNDLE}\"" \ -r "\"${WORKING_DIR}/resources\"" -i "\"${WORKING_DIR}/resources/Info.plist\"" cp ${WORKING_DIR}/resources/ReadMe.html "${PACKAGE_DIR}/ReadMe.html" sed -e "s,@PREFIX@,${BACULA_PREFIX},g" -e "s,@BACULA_VERSION@,${BACULA_VERSION},g" \ files/uninstall.command.in > "${PACKAGE_DIR}/uninstall.command"; chmod 0775 "${PACKAGE_DIR}/uninstall.command" ${WORKING_DIR}/resources: ${BACULA_DESTDIR} mkdir -p "${WORKING_DIR}/resources" for res in ${PACKAGE_RESOURCES}; do \ sed -e "s,@PREFIX@,${BACULA_PREFIX},g" -e "s,@BACULA_VERSION@,${BACULA_VERSION},g" \ resources/$$res.in > "${WORKING_DIR}/resources/$$res"; \ done for xres in ${PACKAGE_XRESOURCES}; do \ chmod +x "${WORKING_DIR}/resources/$$xres"; \ done cp "${BACULA_SOURCE}/LICENSE" "${WORKING_DIR}/resources/License.txt" ${BACULA_DESTDIR}: ${BACULA_SOURCE} (cd ${BACULA_SOURCE} && ./configure ${CONFIGFLAGS} CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" LDFLAGS="${LDFLAGS}") ${MAKE} -C ${BACULA_SOURCE} LDFLAGS="-Wl,-syslibroot,${MACOSX_SDK_SYSROOT} ${LDFLAGS}" ${MAKE} -C ${BACULA_SOURCE} install DESTDIR="${CURDIR}/${BACULA_DESTDIR}" rm -rf "${BACULA_DESTDIR}/tmp" for conffile in ${BACULA_DESTDIR}${BACULA_PREFIX}/etc/*.conf; do \ mv $$conffile $$conffile.example; \ done mkdir -p "${BACULA_DESTDIR}${BACULA_PREFIX}/Library/LaunchDaemons" sed "s,@PREFIX@,${BACULA_PREFIX},g" files/org.bacula.bacula-fd.plist.in \ > "${BACULA_DESTDIR}${BACULA_PREFIX}/Library/LaunchDaemons/org.bacula.bacula-fd.plist" ${BACULA_SOURCE}: ${BACULA_TAR} mkdir -p "${WORKING_DIR}" ${TAR} -xzf "${BACULA_TAR}" -C "${WORKING_DIR}" ${BACULA_TAR}: mkdir -p "${DL_DIR}" ${CURL} -L -o "${BACULA_TAR}" "${BACULA_DL_URL}" ${FAKEROOT_DESTDIR}: ${FAKEROOT_SOURCE} (cd ${FAKEROOT_SOURCE} && ./configure --prefix=${CURDIR}/${FAKEROOT_DESTDIR}) ${MAKE} -C ${FAKEROOT_SOURCE} ${MAKE} -C ${FAKEROOT_SOURCE} install ${FAKEROOT_SOURCE}: ${FAKEROOT_TAR} mkdir -p "${TOOLS_DIR}" ${TAR} -xzf "${FAKEROOT_TAR}" -C "${TOOLS_DIR}" ${FAKEROOT_TAR}: mkdir -p "${DL_DIR}" ${CURL} -L -o "${FAKEROOT_TAR}" "${FAKEROOT_DL_URL}" .PHONY: distclean distclean: clean rm -rf "${DL_DIR}" "${PRODUCTS_DIR}" "${TOOLS_DIR}" .PHONY: clean clean: rm -rf "${BUILD_DIR}" "${PACKAGE_DIR}" "${PACKAGE_DMG}"