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
|
#!/usr/bin/make -f
include /usr/share/dpkg/architecture.mk
DOUBLE_SUFFIX=double
LONGDOUBLE_SUFFIX=longdouble
FLOAT128_SUFFIX=float128
MPFR150_SUFFIX=mpfr150
BUILDDIR = $(CURDIR)/debian/build
tmpInstall = $(CURDIR)/debian/tmp
tmpDirMatplotLib = $(CURDIR)/debian/matplotlib
# do not build i386 parallely
ifneq (,$(filter $(DEB_HOST_ARCH), i386 s390x all))
parallelBuild=--no-parallel
endif
# We disable parallel builds on all platforms by now
# Ubuntu has problems with it and it causes sync-delays
parallelBuild=--no-parallel
%:
dh $@ --builddirectory=$(BUILDDIR) --with python3 $(parallelBuild)
export DEB_LDFLAGS_MAINT_APPEND = -Wl,--no-as-needed,-no-keep-memory
# no debug info to avoid running
# out of address space when linking
export DEB_CXXFLAGS_MAINT_APPEND += -g0
# Check, whether Build-Depends-Indep are installed
BUILD_DOC=$(shell dpkg -s python3-sphinx | grep -q "^Status:.* installed$$" && echo yes)
LD_LIBRARY_PATH_DOUBLE = $(tmpInstall)/usr/lib/$(DEB_HOST_MULTIARCH)/yade-$(DOUBLE_SUFFIX)/py:$(tmpInstall)/usr/lib/$(DEB_HOST_MULTIARCH)/yade-$(DOUBLE_SUFFIX):$(tmpInstall)/usr/lib/$(DEB_HOST_MULTIARCH)/yade-$(DOUBLE_SUFFIX)/py:$(tmpInstall)/usr/lib/$(DEB_HOST_MULTIARCH)/yade-$(DOUBLE_SUFFIX)/py/gts:$(tmpInstall)/usr/lib/$(DEB_HOST_MULTIARCH)/yade-$(DOUBLE_SUFFIX)/py/yade:$(tmpInstall)/usr/lib/$(DEB_HOST_MULTIARCH)/yade-$(DOUBLE_SUFFIX)/py/yade/qt:$(LD_LIBRARY_PATH)
LD_LIBRARY_PATH_LONGDOUBLE = $(tmpInstall)/usr/lib/$(DEB_HOST_MULTIARCH)/yade-$(LONGDOUBLE_SUFFIX)/py:$(tmpInstall)/usr/lib/$(DEB_HOST_MULTIARCH)/yade-$(LONGDOUBLE_SUFFIX):$(tmpInstall)/usr/lib/$(DEB_HOST_MULTIARCH)/yade-$(LONGDOUBLE_SUFFIX)/py:$(tmpInstall)/usr/lib/$(DEB_HOST_MULTIARCH)/yade-$(LONGDOUBLE_SUFFIX)/py/gts:$(tmpInstall)/usr/lib/$(DEB_HOST_MULTIARCH)/yade-$(LONGDOUBLE_SUFFIX)/py/yade:$(tmpInstall)/usr/lib/$(DEB_HOST_MULTIARCH)/yade-$(LONGDOUBLE_SUFFIX)/py/yade/qt:$(LD_LIBRARY_PATH)
LD_LIBRARY_PATH_FLOAT128 = $(tmpInstall)/usr/lib/$(DEB_HOST_MULTIARCH)/yade-$(FLOAT128_SUFFIX)/py:$(tmpInstall)/usr/lib/$(DEB_HOST_MULTIARCH)/yade-$(FLOAT128_SUFFIX):$(tmpInstall)/usr/lib/$(DEB_HOST_MULTIARCH)/yade-$(FLOAT128_SUFFIX)/py:$(tmpInstall)/usr/lib/$(DEB_HOST_MULTIARCH)/yade-$(FLOAT128_SUFFIX)/py/gts:$(tmpInstall)/usr/lib/$(DEB_HOST_MULTIARCH)/yade-$(FLOAT128_SUFFIX)/py/yade:$(tmpInstall)/usr/lib/$(DEB_HOST_MULTIARCH)/yade-$(FLOAT128_SUFFIX)/py/yade/qt:$(LD_LIBRARY_PATH)
LD_LIBRARY_PATH_MPFR150 = $(tmpInstall)/usr/lib/$(DEB_HOST_MULTIARCH)/yade-$(MPFR150_SUFFIX)/py:$(tmpInstall)/usr/lib/$(DEB_HOST_MULTIARCH)/yade-$(MPFR150_SUFFIX):$(tmpInstall)/usr/lib/$(DEB_HOST_MULTIARCH)/yade-$(MPFR150_SUFFIX)/py:$(tmpInstall)/usr/lib/$(DEB_HOST_MULTIARCH)/yade-$(MPFR150_SUFFIX)/py/gts:$(tmpInstall)/usr/lib/$(DEB_HOST_MULTIARCH)/yade-$(MPFR150_SUFFIX)/py/yade:$(tmpInstall)/usr/lib/$(DEB_HOST_MULTIARCH)/yade-$(MPFR150_SUFFIX)/py/yade/qt:$(LD_LIBRARY_PATH)
export MPLCONFIGDIR := $(tmpDirMatplotLib)
export HOME := $(tmpDirMatplotLib)
export DEB_HOST_MULTIARCH := $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
export YADE_PREFIX := $(tmpInstall)/usr
extra_flags += \
-DruntimePREFIX="/usr" \
-DCMAKE_INSTALL_PREFIX="/usr" \
-DLIBRARY_OUTPUT_PATH=lib/$(DEB_HOST_MULTIARCH) \
-DENABLE_SPH=OFF \
-DENABLE_MPFR=ON \
-DPYTHON_VERSION=3
# Do not use real_hp on arm64 and s390z.
# It fails because quadmath.h cannot be found. Can be checked with a newer boost (>1.74)
override_dh_auto_configure:
dh_auto_configure -- $(extra_flags) -B$(BUILDDIR)-$(DOUBLE_SUFFIX) -DSUFFIX=-$(DOUBLE_SUFFIX) -DREAL_DECIMAL_PLACES=15
ifeq (,$(filter $(DEB_HOST_ARCH), ppc64el)) # Disable longdouble on ppc64el due to crash
dh_auto_configure -- $(extra_flags) -B$(BUILDDIR)-$(LONGDOUBLE_SUFFIX) -DSUFFIX=-$(LONGDOUBLE_SUFFIX) -DREAL_DECIMAL_PLACES=18
endif
ifneq (,$(filter $(DEB_HOST_ARCH), amd64 i386))
dh_auto_configure -- $(extra_flags) -B$(BUILDDIR)-$(FLOAT128_SUFFIX) -DSUFFIX=-$(FLOAT128_SUFFIX) -DREAL_DECIMAL_PLACES=33
endif
dh_auto_configure -- $(extra_flags) -B$(BUILDDIR)-$(MPFR150_SUFFIX) -DSUFFIX=-$(MPFR150_SUFFIX) -DREAL_DECIMAL_PLACES=150
mkdir -p $(tmpDirMatplotLib)
mkdir -p $(tmpInstall)
#Output an information about available memory and CPU
-cat /proc/meminfo
-cat /proc/cpuinfo
override_dh_auto_build:
dh_auto_build -B$(BUILDDIR)-$(DOUBLE_SUFFIX)
ifeq (,$(filter $(DEB_HOST_ARCH), ppc64el))
dh_auto_build -B$(BUILDDIR)-$(LONGDOUBLE_SUFFIX)
endif
ifneq (,$(filter $(DEB_HOST_ARCH), amd64 i386))
dh_auto_build -B$(BUILDDIR)-$(FLOAT128_SUFFIX)
endif
dh_auto_build -B$(BUILDDIR)-$(MPFR150_SUFFIX)
override_dh_auto_install:
dh_auto_install -B$(BUILDDIR)-$(DOUBLE_SUFFIX)
ifeq (,$(filter $(DEB_HOST_ARCH), ppc64el))
dh_auto_install -B$(BUILDDIR)-$(LONGDOUBLE_SUFFIX)
endif
ifneq (,$(filter $(DEB_HOST_ARCH), amd64 i386))
dh_auto_install -B$(BUILDDIR)-$(FLOAT128_SUFFIX)
endif
dh_auto_install -B$(BUILDDIR)-$(MPFR150_SUFFIX)
# generate manpages
LD_LIBRARY_PATH=$(LD_LIBRARY_PATH_DOUBLE) help2man $(tmpInstall)/usr/bin/yade-double > yade.1
LD_LIBRARY_PATH=$(LD_LIBRARY_PATH_DOUBLE) help2man $(tmpInstall)/usr/bin/yade-double-batch > yade-batch.1
LD_LIBRARY_PATH=$(LD_LIBRARY_PATH_DOUBLE) $(tmpInstall)/usr/bin/yade-$(DOUBLE_SUFFIX) --test
LD_LIBRARY_PATH=$(LD_LIBRARY_PATH_DOUBLE) $(tmpInstall)/usr/bin/yade-$(DOUBLE_SUFFIX) --check
ifeq (,$(filter $(DEB_HOST_ARCH), ppc64el))
LD_LIBRARY_PATH=$(LD_LIBRARY_PATH_LONGDOUBLE) $(tmpInstall)/usr/bin/yade-$(LONGDOUBLE_SUFFIX) --test
LD_LIBRARY_PATH=$(LD_LIBRARY_PATH_LONGDOUBLE) $(tmpInstall)/usr/bin/yade-$(LONGDOUBLE_SUFFIX) --check
endif
ifneq (,$(filter $(DEB_HOST_ARCH), amd64 i386))
LD_LIBRARY_PATH=$(LD_LIBRARY_PATH_FLOAT128) $(tmpInstall)/usr/bin/yade-$(FLOAT128_SUFFIX) --test
LD_LIBRARY_PATH=$(LD_LIBRARY_PATH_FLOAT128) $(tmpInstall)/usr/bin/yade-$(FLOAT128_SUFFIX) --check
endif
ifeq (,$(filter $(DEB_HOST_ARCH), i386))
LD_LIBRARY_PATH=$(LD_LIBRARY_PATH_MPFR150) $(tmpInstall)/usr/bin/yade-$(MPFR150_SUFFIX) --test
LD_LIBRARY_PATH=$(LD_LIBRARY_PATH_MPFR150) $(tmpInstall)/usr/bin/yade-$(MPFR150_SUFFIX) --check
endif
dh_numpy3
ifeq ($(BUILD_DOC), yes)
#Generate docs
cd $(CURDIR)/doc/sphinx && LD_LIBRARY_PATH=$(LD_LIBRARY_PATH_DOUBLE) PYTHONPATH=. $(tmpInstall)/usr/bin/yade-$(DOUBLE_SUFFIX) yadeSphinx.py html && LD_LIBRARY_PATH=$(LD_LIBRARY_PATH_DOUBLE) PYTHONPATH=. $(tmpInstall)/usr/bin/yade-$(DOUBLE_SUFFIX) yadeSphinx.py latex && cd _build/latex && xelatex Yade.tex && xelatex Yade.tex && xelatex Yade.tex
cd $(CURDIR)/doc/sphinx/_build/html && find . -type f -print0 | xargs -0 sed -i 's/https:\/\/cdnjs\.cloudflare\.com\/ajax\/libs\/mathjax\/2\.7\.5\/latest.js/\/usr\/share\/javascript\/mathjax\/MathJax.js\//g'
cd $(CURDIR)/doc/sphinx/_build/html && find . -type f -print0 | xargs -0 sed -i 's/https:\/\/www\.youtube\.com//g'
endif
#Delete all pyc files
find $(tmpInstall) -name '*.pyc' -print0 | xargs -0 rm -f
find $(tmpInstall) -name '__pycache__' -print0 | xargs -0 rm -rf
find $(tmpInstall) -name 'yade.py' -print0 | xargs -0 rm -f
override_dh_installchangelogs:
dh_installchangelogs ChangeLog
override_dh_installman:
dh_installman -p yade yade.1 yade-batch.1
override_dh_compress:
dh_compress --all -X.py -X.stl -X.gts -X.geo -X.mesh -X.msh -X.pdf -X.png -X.svg -X.txt -X.js -X.inv
override_dh_auto_test:
ifeq ($(BUILD_DOC), yes)
execute_after_dh_installdocs:
dh_sphinxdoc
endif
execute_after_dh_auto_clean:
rm -rf $(BUILDDIR)-$(DOUBLE_SUFFIX)
rm -rf $(BUILDDIR)-$(LONGDOUBLE_SUFFIX)
rm -rf $(BUILDDIR)-$(FLOAT128_SUFFIX)
rm -rf $(BUILDDIR)-$(MPFR150_SUFFIX)
rm -rf $(CURDIR)/yade.1
rm -rf $(CURDIR)/yade-batch.1
rm -rf $(tmpDirMatplotLib)
rm -rf $(CURDIR)/doc/sphinx/_build
rm -rf $(CURDIR)/doc/sphinx/__pycache__
|