source: branches/1.0/Makefile @ 913

Last change on this file since 913 was 913, checked in by olahaye, 11 years ago

[rpm&deb packaging] Now fixes the VERSION outside current directory (can be SVN)
This avoids .in files and let generate tarballs and packages (binary and sources) without any VERSION values.
make deb or rpm or install even from svn is now safe from "sed -i -e"

File size: 6.4 KB
RevLine 
[472]1# Where to build
2#
[378]3TMPDIR = /tmp
4
[841]5# Where to install
6DESTDIR = 
[485]7
[841]8# Install prefix
9PREFIX = /usr/local
10
[907]11BIN_DIR = $(PREFIX)/sbin
12JOBMOND = $(BIN_DIR)/jobmond
13JOBARCHIVED = $(BIN_DIR)/jobarchived
14
[472]15# What is the location of the Ganglia web frontend
16# i.e.: where to we install Job Monarch's web frontend addon
17#
[841]18GANGLIA_ROOT = $(PREFIX)/ganglia
[844]19GANGLIA_USER = ganglia.ganglia
20HTTPD_USER   = apache.apache
[472]21
[841]22# Where jobarchived RRDS are stored
23JOBARCHIVE_RRDS = $(PREFIX)/jobmonarch
24
25# Clear this if you don't want to use ${FAKEROOT}
26#
27FAKEROOT = fakeroot
28
[894]29VERSION = 1.1
[378]30RELEASE = 1
31
32REQUIRED = ./jobarchived ./jobmond ./web
33
[910]34all:    tarball rpm srpm deb
[378]35
[904]36tarball:        tarball-gzip tarball-bzip
[378]37
[913]38$(TMPDIR)/.monarch_buildroot: ${REQUIRED} Makefile
39        @mkdir -p ${TMPDIR}/.monarch_buildroot/ganglia_jobmonarch-${VERSION}
40        @( rsync -a --exclude=.svn --exclude=*_test* --exclude=*-example.php \
[904]41        . ${TMPDIR}/.monarch_buildroot/ganglia_jobmonarch-${VERSION} )
[913]42        @sed -i -e 's|__VERSION__|$(VERSION)|g' -e 's/__RELEASE__/$(RELEASE)/g' \
43                ${TMPDIR}/.monarch_buildroot/ganglia_jobmonarch-${VERSION}/jobmond/jobmond.py \
44                ${TMPDIR}/.monarch_buildroot/ganglia_jobmonarch-${VERSION}/jobarchived/jobarchived.py \
45                ${TMPDIR}/.monarch_buildroot/ganglia_jobmonarch-${VERSION}/web/addons/job_monarch/version.php \
46                ${TMPDIR}/.monarch_buildroot/ganglia_jobmonarch-${VERSION}/pkg/rpm/jobmonarch.spec \
47                ${TMPDIR}/.monarch_buildroot/ganglia_jobmonarch-${VERSION}/debian/changelog
[378]48
49
[913]50tarball-gzip:   $(TMPDIR)/.monarch_buildroot ${REQUIRED}
51        @( cd ${TMPDIR}/.monarch_buildroot; tar zcf ganglia_jobmonarch-${VERSION}.tar.gz ./ganglia_jobmonarch-${VERSION} )
52        @mv ${TMPDIR}/.monarch_buildroot/ganglia_jobmonarch-${VERSION}.tar.gz ..
53        @rm -rf ${TMPDIR}/.monarch_buildroot
54        @echo "Wrote: ../ganglia_jobmonarch-${VERSION}.tar.gz"
[840]55
[913]56tarball-bzip:   $(TMPDIR)/.monarch_buildroot ${REQUIRED}
57        @( cd ${TMPDIR}/.monarch_buildroot; tar jcf ganglia_jobmonarch-${VERSION}.tar.bz2 ./ganglia_jobmonarch-${VERSION} )
58        @mv ${TMPDIR}/.monarch_buildroot/ganglia_jobmonarch-${VERSION}.tar.bz2 ..
59        @rm -rf ${TMPDIR}/.monarch_buildroot
60        @echo "Wrote: ../ganglia_jobmonarch-${VERSION}.tar.bz2"
[841]61
[840]62rpm: tarball-bzip
[913]63        # Binary package will reflect most distro where ganglia default location is /usr/share/ganglia
64        rpmbuild -tb --define '%custom_web_prefixdir /usr/share/ganglia' ../ganglia_jobmonarch-${VERSION}.tar.bz2
[840]65
[844]66srpm: tarball-bzip
[904]67        rpmbuild -ts --define '%dist %{nil}' ../ganglia_jobmonarch-${VERSION}.tar.bz2
[844]68
[892]69debchangelog: ./debian/changelog
70
[913]71deb: ${REQUIRED} $(TMPDIR)/.monarch_buildroot ./debian
72        @( cd ${TMPDIR}/.monarch_buildroot; dpkg-buildpackage -b -uc -us )
73        @rm -rf ${TMPDIR}/.monarch_buildroot
74        @echo "Wrote:"
75        @ls -1 ${TMPDIR}/jobmonarch*$(VERSION)*.deb
[892]76
[907]77install:  ${REQUIRED}
78        @#
[904]79        @# Set the correct GANGLIA_PATH.
80        @#
81        @echo
82        @echo "Using $(GANGLIA_ROOT) as Ganglia root installation path. If it's not what"
83        @echo "you want, use make GANGLIA_ROOT=/path/to/your/ganglia/root ."
84        @sed -e 's|__GANGLIA_ROOT__|$(GANGLIA_ROOT)/|g' web/conf.php.in > web/addons/job_monarch/conf.php
85        @#
86        @# Set the correct JOBARCHIVE_RRDS in jobarchve.conf and ganglia conf.php
87        @#
88        @echo
89        @echo "Using $(JOBARCHIVE_RRDS) as jobarchive path to  store rrds files. If it's not what"
90        @echo "you want, use make JOBARCHIVE_RRDS=/path/to/you/jobarchived/rrdsfiles ."
91        @sed -i -e 's|/var/lib/jobarchive|$(JOBARCHIVE_RRDS)|g' jobarchived/jobarchived.conf web/addons/job_monarch/conf.php
92        @#
93        @# Files in SBIN_DIR
94        @#
95        @echo
96        @echo "Installing jobmond.py and jobarchived.py to $(PREFIX)/sbin"
[907]97        @install -m 0755 -d $(DESTDIR)$(PREFIX)/sbin || true
98        @install -m 0755 jobmond/jobmond.py $(DESTDIR)$(PREFIX)/sbin/ || true
99        @install -m 0755 jobarchived/jobarchived.py $(DESTDIR)$(PREFIX)/sbin/ || true
100        @(cd $(DESTDIR)$(PREFIX)/sbin/; ln -s jobmond.py jobmond; ln -s jobarchived.py jobarchived) || true
[904]101        @#
[911]102        @# Files specific to distros if /etc/redhat-release => rpm else (/etc/debian_version => debian)
[904]103        @#
104        @echo
105        @echo "Installing service files in /etc"
[907]106        @sed -i -e 's|DAEMON=.*|DAEMON=$(JOBMOND)|g' pkg/deb/init.d/jobmond
107        @sed -i -e 's|DAEMON=.*|DAEMON=$(JOBARCHIVED)|g' pkg/deb/init.d/jobarchived
108        @sed -i -e 's|DAEMON=.*|DAEMON=$(JOBMOND)|g' pkg/rpm/init.d/jobmond
109        @sed -i -e 's|DAEMON=.*|DAEMON=$(JOBARCHIVED)|g' pkg/rpm/init.d/jobarchived
[911]110        @if test -r /etc/redhat-release; then \
[904]111                install -m 0755 -d $(DESTDIR)/etc/rc.d/init.d; \
112                install -m 0755 pkg/rpm/init.d/jobmond $(DESTDIR)/etc/rc.d/init.d/; \
113                install -m 0755 pkg/rpm/init.d/jobarchived $(DESTDIR)/etc/rc.d/init.d/; \
114                install -m 0755 -d $(DESTDIR)/etc/sysconfig; \
115                install -m 0755 pkg/rpm/sysconfig/jobmond $(DESTDIR)/etc/sysconfig; \
116                install -m 0755 pkg/rpm/sysconfig/jobarchived $(DESTDIR)/etc/sysconfig; \
117        else \
118                install -m 0755 -d $(DESTDIR)/etc/init.d; \
119                install -m 0755 pkg/deb/init.d/jobmond $(DESTDIR)/etc/init.d/; \
120                install -m 0755 pkg/deb/init.d/jobarchived $(DESTDIR)/etc/init.d/; \
121                install -m 0755 -d $(DESTDIR)/etc/default; \
122                install -m 0755 pkg/deb/default/jobmond $(DESTDIR)/etc/default; \
123                install -m 0755 pkg/deb/default/jobarchived $(DESTDIR)/etc/default; \
124        fi
125        @#
126        @# Files in /etc
127        @#
128        @echo
129        @echo "Installing config files jobmond.conf jobarchived.conf in /etc"
130        @install -m 0644 jobmond/jobmond.conf $(DESTDIR)/etc
131        @install -m 0644 jobarchived/jobarchived.conf $(DESTDIR)/etc
132        @#
133        @# Files in /usr/share
134        @#
135        @echo
136        @echo "Installing job_dbase.sql in $(PREFIX)/share/jobarchived"
137        @install -m 0755 -d $(DESTDIR)$(PREFIX)/share/jobarchived
138        @install -m 0755 jobarchived/job_dbase.sql $(DESTDIR)$(PREFIX)/share/jobarchived/
139        @#
140        @# Create the /var/lib/jobarchive directory where rrds are stored.
141        @#
142        @echo
143        @echo "Creating the directory where RRDs will be stored: $(JOBARCHIVE_RRDS)"
144        @install -m 0755 -d $(DESTDIR)$(JOBARCHIVE_RRDS)
145        @#
146        @# Files for ganglia
147        @#
148        @echo
149        @echo "Installing Ganglia web interface to $(GANGLIA_ROOT) ."
150        @install -m 0755 -d $(DESTDIR)$(GANGLIA_ROOT)
151        @chown -R $(GANGLIA_USER) ./web
152        @chown $(HTTPD_USER) ./web/addons/job_monarch/dwoo/compiled
153        @chown $(HTTPD_USER) ./web/addons/job_monarch/dwoo/cache
154        @chmod 775 ./web/addons/job_monarch/dwoo/cache
155        @(cd web; rsync -a --exclude=.svn --exclude=*_test* --exclude=*-example.php ./addons ./templates $(DESTDIR)$(GANGLIA_ROOT)/)
156        @#
157        @echo
158        @echo "Installation complete."
159        @echo
[840]160
[908]161clean:
162        @rm -rf ${TMPDIR}/.monarch_buildroot
[904]163        @(cd ./debian; rm -rf files *.log *.substvars jobmonarch/ jobmonarch-jobmond/ jobmonarch-jobarchived/ jobmonarch-webfrontend/ tmp/)
164        @rm -f web/addons/job_monarch/conf.php
Note: See TracBrowser for help on using the repository browser.