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
|
#!/usr/bin/make -f
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
tmp = debian/tmp
INSTALL_DIR = install -p -d -o root -g root -m 755
INSTALL_FILE = install -p -o root -g root -m 644
ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
INSTALL_PROGRAM += -s
endif
ifeq ($(shell dpkg-architecture -qDEB_BUILD_ARCH),arm)
CFLAGS += -O0
CXXFLAGS += -O0
endif
# The MPI code currently builds on all architectures. If it should fail
# on some architecture, that architecture should set NO_MPI = 1 and
# configmpi = --disable-mpi .
#
NO_MPI = 0
configmpi = MPICXX=/usr/bin/mpicxx.mpich
# Find the default python version so we can pass it to ./configure. This
# keeps things sane when multiple python*-dev packages are installed.
pyver = $(subst python,,$(shell /usr/bin/pyversions --default))
-include debian/debiandirs
debian/debiandirs: admin/debianrules
perl -w admin/debianrules echodirs > debian/debiandirs
configure: configure-stamp
configure-stamp:
dh_testdir
# Update to debian's patched scripts.
# admin/ac_gen
# aclocal
# autoheader
# autoconf
# automake
# perl -w admin/am_edit
# Patch regina-python to explicitly use the same python version that
# we are building against.
sed 's|`which python`|"/usr/bin/python$(pyver)"|' \
< python/regina-python.in > python/regina-python.in.new
mv -f python/regina-python.in.new python/regina-python.in
# Back to the standard configure.
chmod a+x configure
CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" \
./configure --disable-maintainer-mode PKGNAME=regina-normal \
--with-python-version=$(pyver) \
--includedir=/usr/include $(configkde) $(configmpi) \
--includedir=/usr/include
# Stop for a sanity check to see if the right bits and pieces are
# going to be built (i.e., if all the required dependencies were
# found). It's a long build, and we'd rather know now than later.
#
# If any of these grep tests fails, it means that either something is
# missing from the build-depends, or else one of the build dependencies
# has recently changed in a way that makes it incompatible with the
# current packaging.
grep '^REGINA_BUILD_DOCSENGINE=.engine.$$' config.log > /dev/null
grep '^REGINA_BUILD_ENGINE=.engine.$$' config.log > /dev/null
grep '^REGINA_BUILD_KDEUI=.kdeui.$$' config.log > /dev/null
grep '^REGINA_BUILD_MPI=.mpi.$$' config.log > /dev/null
grep '^REGINA_BUILD_PYTHON=.python.$$' config.log > /dev/null
grep '^REGINA_BUILD_TESTSUITE=.testsuite.$$' config.log > /dev/null
grep '^REGINA_BUILD_UTILS=.utils.$$' config.log > /dev/null
# All good!
touch configure-stamp
build: configure-stamp build-stamp
build-stamp:
dh_testdir
$(MAKE)
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
$(MAKE) check
endif
touch build-stamp
clean:
dh_testdir
dh_testroot
[ ! -f Makefile ] || $(MAKE) distclean
rm -f build-stamp configure-stamp
rm -f debian/debiandirs
dh_clean
install: build
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
# Main install.
$(MAKE) install DESTDIR=`pwd`/$(tmp)
# Make sure we've got the multithreaded boost.python, not the
# single-threaded boost.python.
# --
# Disabled by KiBi, there are no more st/mt versions:
# sh debian/mtcheck
ifneq ($(NO_MPI),1)
# Make sure MPI support was enabled.
if ! test -e $(tmp)/usr/bin/tricensus-mpi; then \
echo "ERROR: MPI utilities were not built and installed."; \
echo " Check your configure options."; \
/bin/false; \
fi
endif
# Split into separate binary packages.
dh_install --sourcedir=debian/tmp --list-missing
# Ensure sample data files are stored as compressed XML.
for i in debian/regina-normal/usr/share/doc/regina-normal/examples/*.rga; do \
utils/regconvert -x $$i $$i; \
done
# Install linda and lintian overrides.
for pkg in `dh_listpackages`; do \
if test -e debian/$$pkg.override; then \
$(INSTALL_DIR) debian/$$pkg/usr/share/lintian/overrides; \
$(INSTALL_FILE) debian/$$pkg.override \
debian/$$pkg/usr/share/lintian/overrides/$$pkg; \
fi; \
if test -e debian/$$pkg.linda; then \
$(INSTALL_DIR) debian/$$pkg/usr/share/linda/overrides; \
$(INSTALL_FILE) debian/$$pkg.linda \
debian/$$pkg/usr/share/linda/overrides/$$pkg; \
fi; \
done
# Build architecture-independent files here.
binary-indep: build install
dh_testdir
dh_testroot
dh_installdocs -i
dh_installexamples -i
dh_installman -i
dh_installmenu -i
dh_installmime -i
dh_installchangelogs -i CHANGES.txt
dh_link -i
dh_strip -i
dh_compress -i -X.bz2 -X.css -X.docbook -X.rga
dh_fixperms -i
# dh_makeshlibs -i
dh_installdeb -i
dh_perl -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_installdocs -a
dh_installexamples -a
dh_installman -a
dh_installmenu -a
dh_installmime -a
dh_installchangelogs -a CHANGES.txt
dh_link -a
dh_strip -a
dh_compress -a -X.bz2 -X.css -X.docbook -X.rga
for i in `find debian/regina-normal/usr/share/doc/kde -name "*.gz"`; do \
gunzip $$i; done
dh_fixperms -a
dh_makeshlibs -a
# Only run the python scripts on regina-normal.
dh_pysupport -pregina-normal /usr/lib/regina-normal/python
dh_installdeb -a
dh_perl -a
dh_shlibdeps -a -ldebian/regina-normal/usr/lib
dh_gencontrol -a
dh_md5sums -a
dh_builddeb -a
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install configure
|