File: rules

package info (click to toggle)
pari 2.9.1-1
  • links: PTS
  • area: main
  • in suites: stretch
  • size: 18,264 kB
  • ctags: 16,155
  • sloc: ansic: 203,761; sh: 853; perl: 376; yacc: 202; makefile: 129
file content (159 lines) | stat: -rwxr-xr-x 5,834 bytes parent folder | download | duplicates (2)
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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
#!/usr/bin/make -f 
# Sample debian/rules that uses debhelper.
# GNU copyright 1997 to 1999 by Joey Hess.
# Adapted for the PARI Debian package by Bill Allombert 2001-2011

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

# This has to be exported to make some magic below work.
export DH_OPTIONS
export SOURCE_DATE_EPOCH = $(shell date -d "$$(dpkg-parsechangelog -SDate)" +%s)
export LC_ALL = C
#Architecture 
#PARI use sparcv8_micro for Debian/sparc and sparcv9 for Debian/sparc64
#
PARI_CPU:=$(shell dpkg-architecture -qDEB_HOST_GNU_CPU)
PARI_CPU:=$(if $(findstring $(PARI_CPU),sparc),sparcv8_micro,$(PARI_CPU))
PARI_CPU:=$(if $(findstring $(PARI_CPU),sparc64),sparcv9,$(PARI_CPU))
#Catch mips/mipsel
PARI_CPU:=$(if $(findstring $(PARI_CPU),mipsel),mips,$(PARI_CPU))
PARI_CPU:=$(if $(findstring $(PARI_CPU),mips64el),mips64,$(PARI_CPU))
#Catch powerpc/powerpc64
PARI_CPU:=$(if $(findstring $(PARI_CPU),powerpc64le),ppc,$(PARI_CPU))
PARI_CPU:=$(if $(findstring $(PARI_CPU),powerpc64),ppc,$(PARI_CPU))
#Catch s390/s390x
PARI_CPU:=$(if $(findstring $(PARI_CPU),s390x),s390,$(PARI_CPU))
PARI_SYSTEM:=$(shell dpkg-architecture -qDEB_HOST_GNU_SYSTEM)
PARI_SYSTEM:=$(patsubst linux-gnu%,linux,$(PARI_SYSTEM))
PARI_SYSTEM:=$(patsubst %-gnu,gnu%,$(PARI_SYSTEM))
DEBIAN_ARCH:=$(shell dpkg-architecture -qDEB_HOST_ARCH)

DBGCFLAGS = -g -O0 -Wall -fno-strict-aliasing
LDFLAGS = -Wl,-z,relro
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
CFLAGS = $(DBGCFLAGS)
else
CFLAGS = -g -O3 -Wall -fomit-frame-pointer -fno-strict-aliasing
endif

libpkg = libpari-gmp-tls5
libtriplet = usr/lib/$(DEB_HOST_MULTIARCH)
inctriplet = usr/include/$(DEB_HOST_MULTIARCH)

build: build-arch 

config: config-stamp
config-stamp:
	dh_testdir
	CC=cc CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" DLLDFLAGS="$(LDFLAGS)" \
	  ./Configure --mt=pthread\
            --prefix=/usr --host=$(PARI_CPU)-$(PARI_SYSTEM) \
            --libdir=/$(libtriplet) --sysdatadir=/$(libtriplet)/pari \
            --includedir=/$(inctriplet) \
            --builddir=obj-dyn --graphic=X11 --with-gmp 
	CC=cc CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" DLLDFLAGS="$(LDFLAGS)" \
	  ./Configure --mt=pthread \
            --prefix=/usr --host=$(PARI_CPU)-$(PARI_SYSTEM) \
            --libdir=/$(libtriplet) --sysdatadir=/$(libtriplet)/pari \
            --includedir=/$(inctriplet) \
            --builddir=obj-sta --graphic=X11 --with-gmp
	CC=cc CFLAGS="$(DBGCFLAGS)" LDFLAGS="$(LDFLAGS)" DLLDFLAGS="$(LDFLAGS)" \
	  ./Configure --mt=pthread \
            --prefix=/usr --host=$(PARI_CPU)-$(PARI_SYSTEM) \
            --libdir=/$(libtriplet) --sysdatadir=/$(libtriplet)/pari \
            --includedir=/$(inctriplet) \
            --builddir=obj-dbg --graphic=X11 --with-gmp
	touch config-stamp

build-arch: build-arch-stamp
build-arch-stamp: config-stamp
	$(MAKE) -C obj-dyn lib-dyn #"LIBS=-lc -lm -lgmp"
	$(MAKE) -C obj-sta lib-sta DLCFLAGS=
	$(MAKE) -C obj-sta gp-sta RUNPTH=
ifeq (,$(findstring notest,$(DEB_BUILD_OPTIONS)))
	$(MAKE) -C obj-dyn gp-dyn
	$(MAKE) dobench -C obj-dyn
	$(MAKE) -C obj-sta gp-sta
	$(MAKE) dobench -C obj-sta
endif
	touch build-arch-stamp

build-indep: build-indep-stamp
build-indep-stamp: config-stamp
	$(MAKE) doc docpdf
	touch build-indep-stamp
clean:
	dh_testdir
	dh_testroot
	if [ -f doc/Makefile ]; then $(MAKE) clean -C doc; fi
	-rm -rf obj-dyn obj-sta obj-dbg
	-rm -f gp Makefile* examples/Makefile* 
	-rm -f doc/Makefile doc/gphelp doc/paricfg.tex
	-rm -f misc/tex2mail
	-rm -f pari.log
	-rm -f src/desc/pari.desc
	dh_clean -Xnumber_theoretical/core

install: install-indep install-arch
install-indep:
	dh_testdir
	dh_testroot
	dh_prep -i -Xnumber_theoretical/core
	dh_installdirs -i
	$(MAKE) -C obj-dyn install-doc install-docpdf DESTDIR=`pwd`/debian/pari-doc/
	dh_install -i
	dh_installman -i

install-arch:
	dh_testdir
	dh_testroot
	dh_prep -a -Xnumber_theoretical/core
	dh_installdirs -a
	$(MAKE) -C obj-sta install-bin-sta install-man LIBS="-lm" RLLIBS=-lreadline STRIP=true RUNPTH_FINAL= DESTDIR=`pwd`/debian/pari-gp
	rm debian/pari-gp/usr/share/man/man1/gphelp.1
	test ! -d debian/pari-gp/usr/lib
	$(MAKE) -C obj-dyn install-lib-dyn DESTDIR=`pwd`/debian/$(libpkg)
	$(MAKE) -C obj-sta install-lib-sta DESTDIR=`pwd`/debian/libpari-dev
	$(MAKE) -C obj-dyn install-include install-cfg DESTDIR=`pwd`/debian/libpari-dev
	mv debian/$(libpkg)/$(libtriplet)/libpari.so debian/libpari-dev/$(libtriplet)
	dh_install -a
	sed -ne '/^TOP=/ !p' < obj-dyn/pari.cfg > obj-dyn/pari.cfg.deb
	install -p -m 644 obj-dyn/pari.cfg.deb debian/libpari-dev/$(libtriplet)/pari/pari.cfg
	sed -ne '/^TOP=/ !p' < obj-dbg/pari.cfg > obj-dbg/pari.cfg.deb
	install -p -m 644 obj-dbg/pari.cfg.deb debian/libpari-dev/$(libtriplet)/pari/pari.cfg.dbg
	install -p -m 644 debian/misc-readme debian/pari-gp/usr/share/doc/pari-gp/misc/README.Debian
	install -p -m 644 debian/gprc.dft debian/pari-gp/etc/gprc
	dh_strip -a
	dh_makeshlibs -a -V '$(libpkg) (>= 2.9.0~pre1-1)'
	dh_shlibdeps -a -l debian/$(libpkg)/$(libtriplet) -L$(libpkg)

#Must not depend on anything. This is to be called by binary-arch/binary-indep
# in another 'make' thread.
binary-common:
	dh_testdir
	dh_testroot
	dh_installdocs CHANGES-2.8
	dh_installexamples
	dh_installmenu
	dh_installchangelogs CHANGES
	dh_link
	dh_compress -Xparimacro
	dh_fixperms
	dh_installdeb
	dh_perl
	dh_gencontrol
	dh_md5sums
	dh_builddeb
# Build architecture independant packages using the common target.
binary-indep: build-indep install-indep
	$(MAKE) -f debian/rules DH_OPTIONS=-i binary-common

# Build architecture dependant packages using the common target.
binary-arch: build-arch install-arch
	$(MAKE) -f debian/rules DH_OPTIONS=-a binary-common

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