-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
73 lines (56 loc) · 2.56 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
name=argus-pap
tag=1_6
# the GitHub repo where source tarball will be fetched from
git=git://github.com/argus-authz/argus-pap.git
# needed dirs
debbuild_dir=$(shell pwd)/debbuild
# determine the pom version and set the deb version
pom_version=$(shell grep "<version>" $(name)-$(deb_version)/pom.xml | head -1 | sed -e 's/<version>//g' -e 's/<\/version>//g' -e "s/[ \t]*//g")
deb_version=1.6.2
deb_age=1
# mvn settings mirror conf url
mirror_conf_url=https://raw.github.com/italiangrid/build-settings/master/maven/cnaf-mirror-settings.xml
# name of the mirror settings file
mirror_conf_name=mirror-settings.xml
# directory where jar deps will be searched for
libs_dir=/var/lib/$(name)/lib
# mvn settings passed to build
mvn_settings=-s $(mirror_conf_name)
.PHONY: clean deb
all: deb
print-info:
@echo
@echo
@echo "Packaging $(name) fetched from $(git) for tag $(tag)."
@echo "Maven settings: $(mirror_conf_url)"
@echo
@echo
prepare-sources: sanity-checks clean
# get the source, without git files
git clone $(git) $(name)-$(deb_version)
cd $(name)-$(deb_version) && git checkout $(tag) && git archive --format=tar --prefix=$(name)-$(deb_version)/ $(tag) > $(name)_$(deb_version).tar
# add maven mirror settings
wget --no-check-certificate $(mirror_conf_url) -O $(name)-$(deb_version)/$(mirror_conf_name)
tar -r -f $(name)-$(deb_version)/$(name)_$(deb_version).tar $(name)-$(deb_version)/$(mirror_conf_name)
prepare-deb-files: prepare-sources
sed -e 's#@@DEB_VERSION@@#$(deb_version)-$(deb_age)#g' debian/changelog.in > debian/changelog
sed -e 's#@@MVN_SETTINGS@@#$(mvn_settings)#g' debian/rules.in > debian/rules && chmod 755 debian/rules
cp -r debian $(name)-$(deb_version)
tar -r -f $(name)-$(deb_version)/$(name)_$(deb_version).tar $(name)-$(deb_version)/debian && gzip $(name)-$(deb_version)/$(name)_$(deb_version).tar
cp $(name)-$(deb_version)/$(name)_$(deb_version).tar.gz $(name)_$(deb_version).tar.gz
rm -rf $(name)-$(deb_version)
prepare-debbuilddir: prepare-deb-files
mkdir -p $(debbuild_dir)
mv $(name)_$(deb_version).tar.gz $(name)_$(deb_version).src.tar.gz
cp $(name)_$(deb_version).src.tar.gz $(debbuild_dir)/$(name)_$(deb_version).orig.tar.gz
cd $(debbuild_dir) && tar xzvf $(name)_$(deb_version).orig.tar.gz
deb-src: prepare-debbuilddir
cd $(debbuild_dir) && dpkg-source -b $(name)-$(deb_version)
deb: print-info deb-src
cd $(debbuild_dir)/$(name)-$(deb_version) && debuild -us -uc
clean:
@rm -rf $(name)-$(deb_version) $(name)_$(deb_version).src.tar.gz $(debbuild_dir) debian/rules debian/changelog
sanity-checks:
ifndef tag
$(error tag is undefined)
endif