]> git.sur5r.net Git - bacula/bacula/blob - bacula/platforms/osx/Makefile.in
OSX installer: switch to new pmdoc packagemaker format
[bacula/bacula] / bacula / platforms / osx / Makefile.in
1 #
2 # This is the makefile template for the platform directory
3 # which contains general platform installation.
4 #
5 #  17 August 2009 -- Lorenz Schori
6
7 #   for Bacula release @VERSION@ (@DATE@) -- @DISTNAME@
8 #
9
10
11 # bacula version and download site
12 BACULA_VERSION:=@VERSION@
13 BACULA_DL_URL:=http://downloads.sourceforge.net/project/bacula/bacula/${BACULA_VERSION}/bacula-${BACULA_VERSION}.tar.gz
14
15 # Build universal binary. Comment out when building versions of bacula < 3.0.0
16 ARCHFLAGS:=-arch i386 -arch ppc
17 MACOSX_SDK_SYSROOT:=/Developer/SDKs/MacOSX10.4u.sdk
18 MACOSX_VERSION_FLAGS:=-mmacosx-version-min=10.4
19
20 # Tools
21 PM:=/Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker
22 MAKE:=/usr/bin/make
23 CURL:=/usr/bin/curl
24 TAR:=/usr/bin/tar
25
26 ########### you should not have to edit anything beyond this line ###########
27
28 # Build paths
29 DL_DIR:=dl
30 BUILD_DIR:=build
31 PRODUCTS_DIR:=products
32
33 WORKING_DIR:=${BUILD_DIR}/${BACULA_VERSION}
34 BACULA_TAR:=${DL_DIR}/bacula-${BACULA_VERSION}.tar.gz
35 BACULA_SOURCE:=${WORKING_DIR}/bacula-${BACULA_VERSION}
36 BACULA_DESTDIR:=${WORKING_DIR}/destdir
37 BACULA_PREFIX:=/usr/local/bacula-${BACULA_VERSION}
38 BACULA_FD_CONF:=/Library/Preferences/bacula/bacula-fd.conf
39 BACULA_WORKING_DIR:=/private/var/bacula/working
40 BACULA_PMDOC:=${WORKING_DIR}/installer.pmdoc
41
42 # Detect whether we sit inside the bacula source tree. In this case we won't
43 # download the tar from sourceforge but instead work with what its there
44 # already
45 CURSUB:=$(CURDIR:%/platforms/osx=%)
46 ifneq ($(CURDIR),$(CURSUB))
47         BACULA_TAR:=
48         BACULA_SOURCE:=../../
49 #       BACULA_VERSION:=$(shell sed -n 's,^VERSION=,,p' $(CURSUB)/autoconf/Make.common)
50 endif
51
52 PACKAGE_TITLE:=Bacula File Daemon ${BACULA_VERSION}
53 PACKAGE_DIR:=${PRODUCTS_DIR}/${PACKAGE_TITLE}
54 PACKAGE_BUNDLE:=${PACKAGE_DIR}/${PACKAGE_TITLE}.pkg
55 PACKAGE_DMG:=${PRODUCTS_DIR}/${PACKAGE_TITLE}.dmg
56 PACKAGE_RESOURCES:=ReadMe.html postflight preupgrade
57 PACKAGE_XRESOURCES:=postflight preupgrade
58
59 # Flags for the toolchain
60 CONFIGFLAGS:=--enable-client-only --prefix=${BACULA_PREFIX} \
61     --with-dir-password=@DIR_PW@ --with-fd-password=@FD_PW@ \
62     --with-sd-password=@SD_PW@ --with-mon-dir-password=@MON_DIR_PW@ \
63     --with-mon-fd-password=@MON_FD_PW@ --with-mon-sd-password=@MON_SD_PW@ \
64     --with-basename=@BASENAME@ --with-hostname=@HOSTNAME@ \
65     --with-working-dir=${BACULA_WORKING_DIR}
66 CPPFLAGS:=-isysroot ${MACOSX_SDK_SYSROOT} ${MACOSX_VERSION_FLAGS}
67 CFLAGS:=-O -g ${ARCHFLAGS}
68 CXXFLAGS:=${CFLAGS}
69 LDFLAGS:=${MACOSX_VERSION_FLAGS} ${ARCHFLAGS}
70
71 # Placeholders for *.in files
72 INFILE_SUBST=\
73   -e "s,@PREFIX@,${BACULA_PREFIX},g" \
74   -e "s,@BACULA_VERSION@,${BACULA_VERSION},g" \
75   -e "s,@FD_CONF@,${BACULA_FD_CONF},g" \
76   -e "s,@BACULA_DESTDIR@,${BACULA_DESTDIR},g"
77
78 dmg: pkg
79         hdiutil create -srcfolder "${PACKAGE_DIR}" "${PACKAGE_DMG}"
80
81 pkg: ${BACULA_DESTDIR} ${BACULA_PMDOC} ${WORKING_DIR}/resources
82         mkdir -p "${PACKAGE_DIR}"
83
84         ${PM} --doc "${BACULA_PMDOC}" --out "${PACKAGE_BUNDLE}"
85
86         cp ${WORKING_DIR}/resources/ReadMe.html "${PACKAGE_DIR}/ReadMe.html"
87
88         sed ${INFILE_SUBST} \
89                 files/uninstall.command.in > "${PACKAGE_DIR}/uninstall.command";
90         chmod 0775 "${PACKAGE_DIR}/uninstall.command"
91
92 ${BACULA_PMDOC}: ${BACULA_DESTDIR} ${WORKING_DIR}/resources
93         mkdir -p "${BACULA_PMDOC}"
94
95         for f in index.xml 01destdir.xml; do \
96                 sed ${INFILE_SUBST} \
97                         files/installer.pmdoc.in/$$f > "${BACULA_PMDOC}/$$f"; \
98         done
99
100         python installer-gencontents.py destdir > ${BACULA_PMDOC}/01destdir-contents.xml
101
102 ${WORKING_DIR}/resources: ${BACULA_DESTDIR}
103         mkdir -p "${WORKING_DIR}/resources"
104
105         for res in ${PACKAGE_RESOURCES}; do \
106                 sed ${INFILE_SUBST} \
107                         resources/$$res.in > "${WORKING_DIR}/resources/$$res"; \
108         done
109
110         for xres in ${PACKAGE_XRESOURCES}; do \
111                 chmod +x "${WORKING_DIR}/resources/$$xres"; \
112         done
113
114         cp "${BACULA_SOURCE}/LICENSE" "${WORKING_DIR}/resources/License.txt"
115
116 ${BACULA_DESTDIR}: ${BACULA_SOURCE}
117         (cd ${BACULA_SOURCE} && ./configure ${CONFIGFLAGS} CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" LDFLAGS="${LDFLAGS}")
118         ${MAKE} -C ${BACULA_SOURCE} LDFLAGS="-Wl,-syslibroot,${MACOSX_SDK_SYSROOT} ${LDFLAGS}"
119         ${MAKE} -C ${BACULA_SOURCE} install DESTDIR="${CURDIR}/${BACULA_DESTDIR}"
120
121         rm -rf "${BACULA_DESTDIR}/tmp"
122
123         for conffile in ${BACULA_DESTDIR}${BACULA_PREFIX}/etc/*.conf; do \
124                 mv $$conffile $$conffile.example; \
125         done
126
127         mkdir -p "${BACULA_DESTDIR}${BACULA_PREFIX}/Library/LaunchDaemons"
128         sed ${INFILE_SUBST} files/org.bacula.bacula-fd.plist.in \
129                 > "${BACULA_DESTDIR}${BACULA_PREFIX}/Library/LaunchDaemons/org.bacula.bacula-fd.plist"
130
131 ${BACULA_SOURCE}: ${BACULA_TAR}
132         mkdir -p "${WORKING_DIR}"
133         ${TAR} -xzf "${BACULA_TAR}" -C "${WORKING_DIR}"
134
135 ${BACULA_TAR}:
136         mkdir -p "${DL_DIR}"
137         ${CURL} -L -o "${BACULA_TAR}" "${BACULA_DL_URL}"
138
139 .PHONY: distclean
140 distclean: clean
141         rm -rf "${DL_DIR}" "${PRODUCTS_DIR}"
142
143 .PHONY: clean
144 clean:
145         rm -rf "${BUILD_DIR}" "${PACKAGE_DIR}" "${PACKAGE_DMG}"
146