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
|