source: branches/1.0/Makefile @ 913

Last change on this file since 913 was 913, checked in by olahaye, 8 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
Line 
1# Where to build
2#
3TMPDIR = /tmp
4
5# Where to install
6DESTDIR = 
7
8# Install prefix
9PREFIX = /usr/local
10
11BIN_DIR = $(PREFIX)/sbin
12JOBMOND = $(BIN_DIR)/jobmond
13JOBARCHIVED = $(BIN_DIR)/jobarchived
14
15# What is the location of the Ganglia web frontend
16# i.e.: where to we install Job Monarch's web frontend addon
17#
18GANGLIA_ROOT = $(PREFIX)/ganglia
19GANGLIA_USER = ganglia.ganglia
20HTTPD_USER   = apache.apache
21
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
29VERSION = 1.1
30RELEASE = 1
31
32REQUIRED = ./jobarchived ./jobmond ./web
33
34all:    tarball rpm srpm deb
35
36tarball:        tarball-gzip tarball-bzip
37
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 \
41        . ${TMPDIR}/.monarch_buildroot/ganglia_jobmonarch-${VERSION} )
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
48
49
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"
55
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"
61
62rpm: tarball-bzip
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
65
66srpm: tarball-bzip
67        rpmbuild -ts --define '%dist %{nil}' ../ganglia_jobmonarch-${VERSION}.tar.bz2
68
69debchangelog: ./debian/changelog
70
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
76
77install:  ${REQUIRED}
78        @#
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"
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
101        @#
102        @# Files specific to distros if /etc/redhat-release => rpm else (/etc/debian_version => debian)
103        @#
104        @echo
105        @echo "Installing service files in /etc"
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
110        @if test -r /etc/redhat-release; then \
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
160
161clean:
162        @rm -rf ${TMPDIR}/.monarch_buildroot
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.