summaryrefslogtreecommitdiff
path: root/debian/rules
blob: 13705683e198ae5288c8baeea932a94ced796b62 (plain)
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#!/usr/bin/make -f
#
# debian/rules for pandoc.
# Copyright � 2006  Recai Okta� <roktasATdebian.org>
#
# This file is based on John Goerzen's Cabal Debian template.
# See http://www.n-heptane.com/nhlab/repos/cabalDebianTemplate/
#
# Licensed under the GNU General Public License, version 2.
# See the file 'http://www.gnu.org/copyleft/gpl.txt'.

THIS    := $(shell sed -ne 's/^Source: \(.*\)/\1/p' debian/control)
PREFIX  := /usr
DESTDIR := debian/$(THIS)
DATADIR := $(THIS)
DOCDIR  := doc/$(THIS)

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

ifeq (1,$(DH_VERBOSE))
HCFLAGS+=-v
endif

# Handle noopt in DEB_BUILD_OPTIONS.  Emulate CFLAGS (as HCFLAGS).
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
HCFLAGS+=-O0
else
# No optimisation seems optimum.
HCFLAGS+=-O0
endif

# Export all variables which will be used in various stages of build process.
export PREFIX DESTDIR DATADIR DOCDIR HCFLAGS

# Special code dealing with ghc 6.6 -> 6.8 transition.
.PHONY: cabalbackup cabalrestore
cabalbackup: $(THIS).cabal.ghccurrent
$(THIS).cabal.ghccurrent:
	if [ -f $(THIS).cabal.ghc66 ]; then                \
		mv $(THIS).cabal $(THIS).cabal.ghccurrent; \
		cp $(THIS).cabal.ghc66 $(THIS).cabal;      \
	fi
cabalrestore:
	if [ -f $(THIS).cabal.ghc66 ] && [ -f $(THIS).cabal.ghccurrent ]; then \
		mv $(THIS).cabal.ghccurrent $(THIS).cabal;                     \
	fi

configure: configure-stamp
configure-stamp: cabalbackup
	dh_testdir
	$(MAKE) configure

	touch configure-stamp

build: build-stamp
build-stamp: configure-stamp 
	dh_testdir

	touch build-stamp

clean:
	dh_testdir
	dh_testroot
	$(MAKE) clean
	rm -rf setup Setup.hi Setup.ho Setup.o .*config* dist html
	rm -f build-stamp configure-stamp

	dh_clean 

install: build
	dh_testdir
	dh_testroot
	dh_clean -k 
	dh_installdirs -a 

	dh_haskell -a

	# Hack!  Cabal builds executables while building libraries.  Move these
	# files to top dir where the Makefile install target expects to find.
	# See "BUGS" section at the following document:
	# http://www.n-heptane.com/nhlab/repos/cabalDebianTemplate/INSTRUCTIONS.txt
	find debian/libghc6-$(THIS)-dev -type d -name 'bin' -true | \
		while read bin; do mv $$bin/* .; rm -rf $$bin; done
	$(MAKE) install-program

build-indep: build-indep-stamp
build-indep-stamp:
	dh_testdir
	$(MAKE) build-lib-doc

install-indep: build-indep
	dh_testdir
	dh_testroot
	dh_clean -k
	dh_installdirs -i

	dh_haskell -i

# Build architecture-independent files here.
binary-indep: build-indep install-indep
	dh_testdir
	dh_testroot
	dh_installchangelogs -i
	dh_installdocs -i
	dh_installexamples -i
	dh_installman -i
	dh_link -i
	dh_strip -i
	dh_compress -i
	dh_fixperms -i
	dh_installdeb -i
	dh_shlibdeps -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i

# Build architecture-dependent files here.
binary-arch: build install
	dh_testdir
	dh_testroot
	dh_installchangelogs -a
	dh_installdocs -a
	dh_installexamples -a
	dh_installman -a
	dh_link -a
	dh_strip -a -Xhtml2 -Xmarkdown2 -Xlatex2 -Xrst2
	dh_compress -a
	dh_fixperms -a
	dh_installdeb -a
	dh_shlibdeps -a
	dh_gencontrol -a
	dh_md5sums -a
	dh_builddeb -a

binary: binary-indep binary-arch cabalrestore
.PHONY: build clean binary-indep binary-arch binary install build-indep install-indep