File: rules

package info (click to toggle)
pari 2.17.3-1
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 24,508 kB
  • sloc: ansic: 281,184; sh: 861; perl: 420; yacc: 214; makefile: 162; f90: 88
file content (193 lines) | stat: -rwxr-xr-x 7,353 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
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
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
#!/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 FORCE_SOURCE_DATE = 1
export SOURCE_DATE_EPOCH = $(shell date -d "$$(dpkg-parsechangelog -SDate)" +%s)
export LC_ALL = C
#Architecture
PARI_CPU:=$(shell dpkg-architecture -qDEB_HOST_GNU_CPU)
PARI_CPU:=$(if $(findstring $(PARI_CPU),i586),i386,$(PARI_CPU))
PARI_CPU:=$(if $(findstring $(PARI_CPU),i686),i386,$(PARI_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)
DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)

CFLAGS_DBG = -g -O0 -Wall -fno-strict-aliasing -ffp-contract=off

DBGMAP = -fdebug-prefix-map=$(CURDIR)=.
LDFLAGS = -Wl,-z,relro
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
CFLAGS_NOMAP = $(CFLAGS_DBG)
CFLAGS = $(CFLAGS_NOMAP) $(DBGMAP)
CFLAGS_LTO = $(CFLAGS)
else
CFLAGS_NOMAP = -g -O3 -Wall -fno-strict-aliasing -ffp-contract=off
CFLAGS = $(CFLAGS_NOMAP) $(DBGMAP)
CFLAGS_LTO = $(CFLAGS) -flto
endif

export PATH := $(CURDIR)/debian/path/:$(PATH)

ifeq ($(origin CC),default)
CC := `which $(DEB_HOST_GNU_TYPE)-gcc`
else
CC := `which $(CC)`
endif

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

build: build-arch

config: config-stamp
config-stamp:
	mkdir -p debian/path && ln -s $(CC) debian/path/cc
	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_NOMAP)" LDFLAGS="$(LDFLAGS)" DLLDFLAGS="$(LDFLAGS)" \
	  ./Configure --mt=pthread\
            --prefix=/usr --host=$(PARI_CPU)-$(PARI_SYSTEM) \
            --libdir=/$(libtriplet) --sysdatadir=/$(libtriplet)/pari \
            --includedir=/$(inctriplet) \
            --builddir=obj-cfg --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="$(CFLAGS_LTO)" LDFLAGS="$(LDFLAGS)" DLLDFLAGS="$(LDFLAGS)" \
	  ./Configure --mt=pthread \
            --prefix=/usr --host=$(PARI_CPU)-$(PARI_SYSTEM) \
            --libdir=/$(libtriplet) --sysdatadir=/$(libtriplet)/pari \
            --includedir=/$(inctriplet) \
            --builddir=obj-lto --graphic=X11 --with-gmp
	CC=cc CFLAGS="$(CFLAGS_DBG)" 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-lto gp-sta RUNPTH=
ifeq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
	$(MAKE) -C obj-dyn gp-dyn
	$(MAKE) dobench -C obj-dyn dump_dif=1
	$(MAKE) dobench -C obj-sta dump_dif=1
	$(MAKE) statest-all -C obj-dyn dump_dif=1
endif
	touch build-arch-stamp

build-indep: build-indep-stamp
build-indep-stamp: config-stamp
	$(MAKE) doc docpdf TEX=etex
	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 obj-lto obj-cfg
	-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
	-rm -rf debian/path
	dh_clean -Xnumber_theoretical/core

install: install-indep install-arch
install-indep: build-indep-stamp
	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
	dh_installexamples -i

install-arch: build-arch-stamp
	dh_testdir
	dh_testroot
	dh_prep -a -Xnumber_theoretical/core
	dh_installdirs -a
	$(MAKE) -C obj-lto 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-cfg/pari.cfg > obj-cfg/pari.cfg.deb
	install -p -m 644 obj-cfg/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_dwz -a
	dh_strip -a
	dh_makeshlibs -a -V '$(libpkg)'
	dh_shlibdeps -a -l debian/$(libpkg)/$(libtriplet) -L$(libpkg)
	dh_installexamples -a
	rm debian/pari-gp/usr/share/doc/pari-gp/examples/Makefile
	install -p -m 644 obj-cfg/Makefile.examples debian/pari-gp/usr/share/doc/pari-gp/examples/Makefile

#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 -p pari-gp CHANGES-*
	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