aboutsummaryrefslogtreecommitdiffhomepage
path: root/distrib/debian/rules
blob: d4e1d3376887e70413035681218995911fa84419 (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
#!/usr/bin/make -f

export DH_COMPAT=3

COQPREF=$(CURDIR)/debian/coq
ADDPREF=COQINSTALLPREFIX=${COQPREF}

# in version 3.04, ocamlopt has several bugs: on some arches, it produces
# executables that sometimes fail mysteriously or loop.
# We use a workaround to detect this kind of situations:
# - we try to make Coq with timeouts (TMAKE)
# - once this is done, we check make succeeded (timeout does not
# return the exit status of MAKE)
#
TMAKE=timeout 5300 ${MAKE}
MAKEQ=${MAKE} -q

CONFIGUREOPTS=--prefix /usr --mandir /usr/share/man --emacslib /usr/share/emacs/site-lisp/coq --reals all

configure: configure-stamp
configure-stamp:
	dh_testdir
	./configure -opt ${CONFIGUREOPTS} || ./configure ${CONFIGUREOPTS}
	touch configure-stamp

build: configure-stamp build-stamp
build-stamp:
	dh_testdir
	if grep -q BEST=opt config/Makefile; \
	then (${TMAKE} bin/coqmktop bin/coqc bin/coqtop.byte \
	      && ${MAKEQ} bin/coqmktop bin/coqc bin/coqtop.byte \
	      && ${TMAKE} bin/coqtop.opt bin/coqtop \
	      && ${MAKEQ} bin/coqtop.opt bin/coqtop \
	      && ${TMAKE} states \
	      && ${MAKEQ} states \
	      && ${TMAKE} world \
	      && ${MAKEQ} world) \
          ||  (echo WARNING: NATIVE CODE COMPILATION FAILED \
	    && echo Trying to build coq in bytecode \
	    && ${MAKE} archclean clean \
	    && ${MAKE} BEST=byte world \
	    && echo NATIVE CODE COMPILATION FAILED \
	    && echo Coq was built in bytecode instead); \
	else ${MAKE} world; \
	fi
	${MAKE} check
	touch build-stamp

clean:
	dh_testdir
	dh_testroot
	rm -f build-stamp configure-stamp

	-$(MAKE) clean
	-$(MAKE) archclean

	dh_clean

install: build
	dh_testdir
	dh_testroot
	dh_clean -k
	dh_installdirs

	$(MAKE) ${ADDPREF} install || $(MAKE) BEST=byte ${ADDPREF} install
	-strip -R .note -R .comment ${COQPREF}/usr/bin/coqtop.opt

# Build architecture-independent files here.
binary-indep: build install
# We have nothing to do by default.

# Build architecture-dependent files here.
binary-arch: build install
	dh_testdir
	dh_testroot
	dh_installdocs
	dh_installemacsen
	dh_installchangelogs CHANGES
	dh_link
	dh_compress
	dh_fixperms
	dh_installdeb
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb

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