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