source: branches/1.0/Makefile @ 840

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

[packaging] enhanced Makefile with install rule so it can be used for packaging.
rewrote the spec file for rpm side (removed old spec files).
tarball rules will generate the spec file and iclude it so a rpmbuild -tb can work
started to fix debian build. (still build the old way)

File size: 8.8 KB
RevLine 
[472]1# Where to build
2#
[378]3TMPDIR = /tmp
[840]4DESTDIR = /usr/local
[378]5
[485]6# Clear this if you don't want to use ${FAKEROOT}
7#
8FAKEROOT = fakeroot
9
[472]10# What is the location of the Ganglia web frontend
11# i.e.: where to we install Job Monarch's web frontend addon
12#
13WEBDIR = /var/www/ganglia
14
[831]15VERSION = 1.0
[378]16RELEASE = 1
17
18REQUIRED = ./jobarchived ./jobmond ./web
19
[840]20deb:    tarball-bzip
21rpm:    tarball-bzip
[378]22
[472]23all:    tarball deb rpm
[378]24
25tarball:        tarball-gzip tarball-bzip
26
[840]27tarball-gzip:   ${REQUIRED} rpmspec
[378]28        mkdir -p ${TMPDIR}/.monarch_buildroot/ganglia_jobmonarch-${VERSION}
[418]29        ( rsync -a --exclude=.svn --exclude=*_test* --exclude=*-example.php \
30        . ${TMPDIR}/.monarch_buildroot/ganglia_jobmonarch-${VERSION} )
[378]31        ( cd ${TMPDIR}/.monarch_buildroot; tar zcvf ganglia_jobmonarch-${VERSION}.tar.gz ./ganglia_jobmonarch-${VERSION} )
[397]32        mv ${TMPDIR}/.monarch_buildroot/ganglia_jobmonarch-${VERSION}.tar.gz ..
[378]33
[840]34tarball-bzip:   ${REQUIRED} rpmspec
[378]35        mkdir -p ${TMPDIR}/.monarch_buildroot/ganglia_jobmonarch-${VERSION}
[418]36        ( rsync -a --exclude=.svn --exclude=*_test* --exclude=*-example.php \
37        . ${TMPDIR}/.monarch_buildroot/ganglia_jobmonarch-${VERSION} )
[378]38        ( cd ${TMPDIR}/.monarch_buildroot; tar jcvf ganglia_jobmonarch-${VERSION}.tar.bz2 ./ganglia_jobmonarch-${VERSION} )
[397]39        mv ${TMPDIR}/.monarch_buildroot/ganglia_jobmonarch-${VERSION}.tar.bz2 ..
[378]40
[840]41rpmspec: pkg/rpm/jobmonarch.spec.in
42        sed -e 's/__VERSION__/$(VERSION)/g' -e 's/__RELEASE__/$(RELEASE)/g' ./pkg/rpm/jobmonarch.spec.in > jobmonarch.spec
43
44debpkgdir: pkg/deb/debian
45        rsync -a --exclude=.svn pkg/deb/debian debian
46        sed -i -e 's/^Version:.*$//Version: $(VERSION)-$(RELEASE)/g' ./debian/control
47
48rpm: tarball-bzip
49        rpmbuild -tb ../ganglia_jobmonarch-${VERSION}.tar.bz2
50
51deb: debpkgdir
52        dpkg-buildpackage -b
53
54install:
55        # Files in SBIN_DIR
56        install -m 0755 -d $(DESTDIR)/usr/sbin
57        install -m 0755 jobmond/jobmond.py $(DESTDIR)/usr/sbin/
58        install -m 0755 jobarchived/jobarchived.py $(DESTDIR)/usr/sbin/
59        (cd $(DESTDIR)/usr/sbin/; ln -s jobmond.py jobmond; ln -s jobarchived.py jobarchived)
60        #
61        # Files specific to distros if /etc/sysconfig => rpm else (/etc/default => debian)
62        if test -d /etc/sysconfig; then \
63                install -m 0755 -d $(DESTDIR)/etc/rc.d/init.d; \
64                install -m 0755 pkg/rpm/init.d/jobmond $(DESTDIR)/etc/rc.d/init.d/; \
65                install -m 0755 pkg/rpm/init.d/jobarchived $(DESTDIR)/etc/rc.d/init.d/; \
66                install -m 0755 -d $(DESTDIR)/etc/sysconfig; \
67                install -m 0755 pkg/rpm/sysconfig/jobmond $(DESTDIR)/etc/sysconfig; \
68                install -m 0755 pkg/rpm/sysconfig/jobarchived $(DESTDIR)/etc/sysconfig; \
69        else \
70                install -m 0755 -d $(DESTDIR)/etc/init.d; \
71                install -m 0755 pkg/deb/init.d/jobmond $(DESTDIR)/etc/init.d/; \
72                install -m 0755 pkg/deb/init.d/jobarchived $(DESTDIR)/etc/init.d/; \
73                install -m 0755 -d $(DESTDIR)/etc/default; \
74                install -m 0755 pkg/deb/default/jobmond $(DESTDIR)/etc/default; \
75                install -m 0755 pkg/deb/default/jobarchived $(DESTDIR)/etc/default; \
76        fi
77        #
78        # Files in /etc
79        #
80        install -m 0644 jobmond/jobmond.conf $(DESTDIR)/etc; \
81        install -m 0644 jobarchived/jobarchived.conf $(DESTDIR)/etc; \
82        #
83        # Files in /usr/share
84        #
85        install -m 0755 -d $(DESTDIR)/usr/share/jobarchived/
86        install -m 0755 jobarchived/job_dbase.sql $(DESTDIR)/usr/share/jobarchived/
87        #
88        # Create the /var/lib/jobarchive directory where rrds are stored.
89        #
90        install -m 0755 -d $(DESTDIR)/var/lib/jobarchive/
91        #
92        # Files for ganglia (adapt to rpm or deb or unknown ganglia packaging)
93        #
94        if test -d /etc/sysconfig; then \
95                install -m 0755 -d $(DESTDIR)/usr/share/ganglia; \
96                (cd web; rsync -a --exclude=.svn --exclude=*_test* --exclude=*-example.php . $(DESTDIR)/usr/share/ganglia); \
97        elif test -d /etc/default; then \
98                install -m 0755 -d $(DESTDIR)/usr/share/ganglia-webfrontend; \
99                (cd web; rsync -a --exclude=.svn --exclude=*_test* --exclude=*-example.php . $(DESTDIR)/usr/share/ganglia-webfrontend); \
100        else \
101                install -m 0755 -d $(DESTDIR)/$(WEBDIR); \
102                (cd web; rsync -a --exclude=.svn --exclude=*_test* --exclude=*-example.php . $(DESTDIR)/$(WEBDIR)); \
103        fi
104
105
[387]106deb-webfrontend:        ${REQUIRED}
[392]107        mkdir -p ${TMPDIR}/.monarch_buildroot/jobmonarch-webfrontend_${VERSION}-${RELEASE}/DEBIAN >/dev/null
108        mkdir -p ${TMPDIR}/.monarch_buildroot/jobmonarch-webfrontend_${VERSION}-${RELEASE}/${WEBDIR} >/dev/null
[418]109        ( cd web; rsync -a --exclude=.svn --exclude=*_test* --exclude=*-example.php \
110        . ${TMPDIR}/.monarch_buildroot/jobmonarch-webfrontend_${VERSION}-${RELEASE}/${WEBDIR} )
[392]111        ( cd pkg/deb/web/DEBIAN; \
[418]112        rsync -a --exclude=.svn --exclude=*_test* --exclude=*-example.php \
113        . ${TMPDIR}/.monarch_buildroot/jobmonarch-webfrontend_${VERSION}-${RELEASE}/DEBIAN )
[391]114        ( cd ${TMPDIR}/.monarch_buildroot/; cat jobmonarch-webfrontend_${VERSION}-${RELEASE}/DEBIAN/control \
[392]115        | sed "s/^Version:.*$//Version: ${VERSION}-${RELEASE}/g" >jobmonarch-webfrontend_${VERSION}-${RELEASE}/DEBIAN/control.new; \
[391]116        mv jobmonarch-webfrontend_${VERSION}-${RELEASE}/DEBIAN/control.new \
117        jobmonarch-webfrontend_${VERSION}-${RELEASE}/DEBIAN/control )
[485]118        ( cd ${TMPDIR}/.monarch_buildroot/; ${FAKEROOT} dpkg -b jobmonarch-webfrontend_${VERSION}-${RELEASE} )
[397]119        mv ${TMPDIR}/.monarch_buildroot/jobmonarch-webfrontend_${VERSION}-${RELEASE}.deb ..
[387]120
[384]121deb-jobarchived:        ${REQUIRED}
[392]122        mkdir -p ${TMPDIR}/.monarch_buildroot/jobmonarch-jobarchived_${VERSION}-${RELEASE}/DEBIAN >/dev/null
[384]123        mkdir -p ${TMPDIR}/.monarch_buildroot/jobmonarch-jobarchived_${VERSION}-${RELEASE}/etc/init.d >/dev/null
[444]124        mkdir -p ${TMPDIR}/.monarch_buildroot/jobmonarch-jobarchived_${VERSION}-${RELEASE}/etc/default >/dev/null
125        mkdir -p ${TMPDIR}/.monarch_buildroot/jobmonarch-jobarchived_${VERSION}-${RELEASE}/usr/sbin >/dev/null
[384]126        mkdir -p ${TMPDIR}/.monarch_buildroot/jobmonarch-jobarchived_${VERSION}-${RELEASE}/usr/share/jobarchived >/dev/null
[444]127        install -m 755 jobarchived/jobarchived.py ${TMPDIR}/.monarch_buildroot/jobmonarch-jobarchived_${VERSION}-${RELEASE}/usr/sbin
128        ( cd ${TMPDIR}/.monarch_buildroot/jobmonarch-jobarchived_${VERSION}-${RELEASE}/usr/sbin; \
[392]129        ln -s jobarchived.py jobarchived || true)
[384]130        install jobarchived/jobarchived.conf ${TMPDIR}/.monarch_buildroot/jobmonarch-jobarchived_${VERSION}-${RELEASE}/etc
[444]131        install pkg/deb/init.d/jobarchived ${TMPDIR}/.monarch_buildroot/jobmonarch-jobarchived_${VERSION}-${RELEASE}/etc/init.d
132        install pkg/deb/default/jobarchived ${TMPDIR}/.monarch_buildroot/jobmonarch-jobarchived_${VERSION}-${RELEASE}/etc/default
[392]133        install jobarchived/job_dbase.sql \
134        ${TMPDIR}/.monarch_buildroot/jobmonarch-jobarchived_${VERSION}-${RELEASE}/usr/share/jobarchived
135        ( cd pkg/deb/jobarchived/DEBIAN; \
[418]136        rsync -a --exclude=.svn --exclude=*_test* --exclude=*-example.php \
137        . ${TMPDIR}/.monarch_buildroot/jobmonarch-jobarchived_${VERSION}-${RELEASE}/DEBIAN )
[391]138        ( cd ${TMPDIR}/.monarch_buildroot/; cat jobmonarch-jobarchived_${VERSION}-${RELEASE}/DEBIAN/control \
139        | sed "s/^Version:.*$//Version: ${VERSION}-${RELEASE}/g" >jobmonarch-jobarchived_${VERSION}-${RELEASE}/DEBIAN/control.new; \
140        mv jobmonarch-jobarchived_${VERSION}-${RELEASE}/DEBIAN/control.new \
141        jobmonarch-jobarchived_${VERSION}-${RELEASE}/DEBIAN/control )
[485]142        ( cd ${TMPDIR}/.monarch_buildroot/; ${FAKEROOT} dpkg -b jobmonarch-jobarchived_${VERSION}-${RELEASE} )
[397]143        mv ${TMPDIR}/.monarch_buildroot/jobmonarch-jobarchived_${VERSION}-${RELEASE}.deb ..
[384]144
145deb-jobmond:    ${REQUIRED}
[392]146        mkdir -p ${TMPDIR}/.monarch_buildroot/jobmonarch-jobmond_${VERSION}-${RELEASE}/DEBIAN >/dev/null
[378]147        mkdir -p ${TMPDIR}/.monarch_buildroot/jobmonarch-jobmond_${VERSION}-${RELEASE}/etc/init.d >/dev/null
[439]148        mkdir -p ${TMPDIR}/.monarch_buildroot/jobmonarch-jobmond_${VERSION}-${RELEASE}/etc/default >/dev/null
149        mkdir -p ${TMPDIR}/.monarch_buildroot/jobmonarch-jobmond_${VERSION}-${RELEASE}/usr/sbin >/dev/null
[440]150        install -m 755 jobmond/jobmond.py ${TMPDIR}/.monarch_buildroot/jobmonarch-jobmond_${VERSION}-${RELEASE}/usr/sbin
[439]151        ( cd ${TMPDIR}/.monarch_buildroot/jobmonarch-jobmond_${VERSION}-${RELEASE}/usr/sbin; \
[392]152        ln -s jobmond.py jobmond || true)
[378]153        install jobmond/jobmond.conf ${TMPDIR}/.monarch_buildroot/jobmonarch-jobmond_${VERSION}-${RELEASE}/etc
[439]154        install pkg/deb/init.d/jobmond ${TMPDIR}/.monarch_buildroot/jobmonarch-jobmond_${VERSION}-${RELEASE}/etc/init.d
155        install pkg/deb/default/jobmond ${TMPDIR}/.monarch_buildroot/jobmonarch-jobmond_${VERSION}-${RELEASE}/etc/default
[392]156        ( cd pkg/deb/jobmond/DEBIAN; \
[418]157        rsync -a --exclude=.svn --exclude=*_test* --exclude=*-example.php \
158        . ${TMPDIR}/.monarch_buildroot/jobmonarch-jobmond_${VERSION}-${RELEASE}/DEBIAN )
[391]159        ( cd ${TMPDIR}/.monarch_buildroot/; cat jobmonarch-jobmond_${VERSION}-${RELEASE}/DEBIAN/control \
160        | sed "s/^Version:.*$//Version: ${VERSION}-${RELEASE}/g" >jobmonarch-jobmond_${VERSION}-${RELEASE}/DEBIAN/control.new; \
161        mv jobmonarch-jobmond_${VERSION}-${RELEASE}/DEBIAN/control.new jobmonarch-jobmond_${VERSION}-${RELEASE}/DEBIAN/control )
[485]162        ( cd ${TMPDIR}/.monarch_buildroot/; ${FAKEROOT} dpkg -b jobmonarch-jobmond_${VERSION}-${RELEASE} )
[397]163        mv ${TMPDIR}/.monarch_buildroot/jobmonarch-jobmond_${VERSION}-${RELEASE}.deb ..
[378]164
[840]165clean:
[378]166        rm -rf ${TMPDIR}/.monarch_buildroot
[840]167        rm -rf ./jobmonarch.spec
168        rm -rf ./debian
Note: See TracBrowser for help on using the repository browser.