File: rules

package info (click to toggle)
dh-clojure 0.2.0
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 144 kB
  • sloc: perl: 101; makefile: 72; sh: 13
file content (88 lines) | stat: -rwxr-xr-x 2,884 bytes parent folder | download
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#!/usr/bin/make -f

SHELL := /bin/bash

include /usr/share/dpkg/pkg-info.mk

export DEB_DH_CLJ_LEIN_CREATE_MAVEN_REPO := $(CURDIR)/create-test-maven-repo

pages := dh-clojure-lein.7 dh-clojure.7

pf := set -o pipefail

define deb_sub
  perl -p \
    -e "s|\@DEB_VERSION\@|$(DEB_VERSION)|go;"
endef

define create_page
  pod2man \
    -n $(basename $@) \
    -c 'Debhelper Clojure tools' \
    -r '$(DEB_VERSION)' \
    -s $(patsubst .%,%,$(suffix $@)) \
    $< $@
endef

deb_lein := LEIN_OFFLINE=true
deb_lein += LEIN_HOME=$(CURDIR)/debian/lein-home
deb_lein += /usr/bin/lein update-in : assoc :local-repo '"/usr/share/maven-repo"' --

dh_clj_lein_ver != $(pf); cd dh-clojure-lein \
  && $(deb_lein) update-in :version println -- version | head -1

ifneq "0" "$(.SHELLSTATUS)"
  $(error "Unable to determine dh-clojure-lein version (.SHELLSTATUS $(.SHELLSTATUS))")
endif

%:
	dh $@

%.7: %.7.pod; $(create_page)

override_dh_auto_build: $(pages)
	cd dh-clojure-lein && $(deb_lein) pom ../debian/dh-clojure-lein-pom.xml
	cd dh-clojure-lein && $(deb_lein) jar

execute_after_dh_auto_install:
	echo debian/dh-clojure-lein-pom.xml \
	  --artifact=dh-clojure-lein/target/dh-clojure-lein-$(dh_clj_lein_ver).jar \
	  --usj-name=dh-clojure-lein \
	  --java-lib > debian/dh-clojure.poms
	mh_install
	mh_resolve_dependencies --non-interactive --offline --build -pdh-clojure --non-explore

ex_env = DEB_DH_CLJ_LEIN_OVERRIDE_JAR=$(CURDIR)/dh-clojure-lein/target/dh-clojure-lein-debian.jar
ex_env += PERLLIB=$(CURDIR)/lib

override_dh_auto_test:
  ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
	cd dh-clojure-lein && $(deb_lein) test
	cd example-clojure && $(ex_env) debian/rules clean
	cd example-clojure && $(ex_env) debian/rules binary
	test -f libexample-clojure_0.1.0_all.deb
	dpkg-deb -c libexample-clojure_0.1.0_all.deb | grep -Fq \
		-e './usr/share/java/example.jar' \
		-e './usr/share/java/example-test.jar' \
		-e './usr/share/maven-repo/example/example/0.1.0-SNAPSHOT/example-0.1.0-SNAPSHOT.pom' \
		-e './usr/share/maven-repo/example/example/0.1.0-SNAPSHOT/example-0.1.0-SNAPSHOT.jar' \
		-e './usr/share/maven-repo/example/example/0.1.0-SNAPSHOT/example-test-0.1.0-SNAPSHOT.jar' \
		-e './usr/share/maven-repo/example/example/debian/example-debian.pom' \
		-e './usr/share/maven-repo/example/example/debian/example-test-debian.jar'
	dpkg-deb --info libexample-clojure_0.1.0_all.deb | grep -F Depends: | grep -q libclojure-java
  endif

override_dh_clean:
	cd example-clojure && $(ex_env) debian/rules clean
	cd dh-clojure-lein && $(deb_lein) clean
        # dh-clojure-lein/pom.xml via create-test-maven-repo lein install
	dh_clean \
	  $(pages) \
	  .debianVersion \
	  debian/dh-clojure-lein-pom.xml \
	  debian/dh-clojure-lein-pom.xml.save \
	  debian/dh-clojure.poms \
	  debian/lein-home/ \
	  dh-clojure-lein/.lein-failures \
	  dh-clojure-lein/pom.xml \
	  libexample-*.deb