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
|
#!/usr/bin/make -f
include /usr/share/dpkg/pkg-info.mk
export DEB_BUILD_MAINT_OPTIONS=hardening=+all
DEB_ARCH_REVLISTOF_LIBQUAMATH ?= amd64 i386 kfreebsd-amd64 kfreebsd-i386 hurd-i386 x32
export DEB_PKG_VERSION = $(DEB_VERSION)
export UPS_PKG_VERSION = $(firstword $(subst +ds, ,$(DEB_PKG_VERSION)))
export UPS_PKG_VERSION_INT = $(subst .,,$(UPS_PKG_VERSION))
DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
DEB_VIRT_EVOLVER_FLAVOUR_VARIANT_LISTOF_DHFILE = .install .manpages
DEB_VIRT_EVOLVER_FLAVOUR_FLAVOUR_LISTOF_DHFILE = .lintian-overrides .postinst .prerm .README.Debian
DEB_VIRT_EVOLVER_LISTOF_FLAVOUR = nox ogl
DEB_VIRT_EVOLVER_LISTOF_FLOATINGPOINTFORMAT = d
ifneq ($(DEB_HOST_ARCH), ppc64el)
DEB_VIRT_EVOLVER_LISTOF_FLOATINGPOINTFORMAT += ld
endif
ifneq (,$(filter $(DEB_HOST_ARCH),$(DEB_ARCH_REVLISTOF_LIBQUAMATH)))
DEB_VIRT_EVOLVER_LISTOF_FLOATINGPOINTFORMAT += q
endif
# deduced variables
DEB_VIRT_EVOLVER_FLAVOUR_LISTOF_DHFILE = \
$(DEB_VIRT_EVOLVER_FLAVOUR_VARIANT_LISTOF_DHFILE) \
$(DEB_VIRT_EVOLVER_FLAVOUR_FLAVOUR_LISTOF_DHFILE)
DEB_VIRT_EVOLVER_LISTOF_VARIANT = \
$(foreach ef, $(DEB_VIRT_EVOLVER_LISTOF_FLAVOUR), \
$(foreach fpf, $(DEB_VIRT_EVOLVER_LISTOF_FLOATINGPOINTFORMAT), \
$(ef)-$(fpf) \
) \
)
#
CFLAGS := $(subst -O2,-O3,$(CFLAGS))
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
MAKEFLAGS += -j$(NUMJOBS)
endif
SED_KEY_FLAVOUR_nox = NOX
SED_KEY_FLAVOUR_ogl = GLUT
SED_KEY_FPF_d = UNDEFINED
SED_KEY_FPF_ld = LONGDOUBLE
SED_KEY_FPF_q = FLOAT128
default:
@uscan --no-conf --dehs --report || true
%:
dh $@ --builddirectory=_build
override_dh_auto_configure-arch:
mkdir -p $(foreach ev, $(DEB_VIRT_EVOLVER_LISTOF_VARIANT), _build/$(ev)/src )
$(foreach ef, $(DEB_VIRT_EVOLVER_LISTOF_FLAVOUR), \
$(foreach fpf, $(DEB_VIRT_EVOLVER_LISTOF_FLOATINGPOINTFORMAT), \
sed \
-e "s|#>$(SED_KEY_FLAVOUR_$(ef))<#||g" \
-e "s|#>>$(SED_KEY_FPF_$(fpf))<<#||g" \
src/Makefile > _build/$(ef)-$(fpf)/src/Makefile \
$(NEWLINE) ) \
)
override_dh_prep-arch:
mkdir -p _build/DEBIAN
$(foreach ev, $(DEB_VIRT_EVOLVER_LISTOF_VARIANT), \
$(eval _ef:=$(firstword $(subst -, $(EMPTY), $(ev)))) \
$(foreach dhf, $(DEB_VIRT_EVOLVER_FLAVOUR_VARIANT_LISTOF_DHFILE), \
sed \
-e "s|@VARIANT@|$(ev)|g" \
debian/templates/evolver-FLAVOUR$(dhf).in >> debian/evolver-$(_ef)$(dhf) \
$(NEWLINE) ) \
)
$(foreach ef, $(DEB_VIRT_EVOLVER_LISTOF_FLAVOUR), \
$(foreach dhf, $(DEB_VIRT_EVOLVER_FLAVOUR_FLAVOUR_LISTOF_DHFILE), \
sed \
-e "s|@FLAVOUR@|$(ef)|g" \
-e "s|@LISTOF_VARIANT@|$(filter $(ef)%, $(DEB_VIRT_EVOLVER_LISTOF_VARIANT))|g" \
debian/templates/evolver-FLAVOUR$(dhf).in > debian/evolver-$(ef)$(dhf) \
$(NEWLINE) ) \
)
$(foreach ev, $(DEB_VIRT_EVOLVER_LISTOF_VARIANT), \
$(MAKE) -C _build/DEBIAN -f ../../debian/adhoc/Makefile manpages VARIANT=$(ev) TOP_SRCDIR=../.. VPATH=../$(ev)/src $(NEWLINE) \
)
dh_prep -a
override_dh_auto_build-arch:
$(foreach ev, $(DEB_VIRT_EVOLVER_LISTOF_VARIANT), $(MAKE) -C _build/$(ev)/src EXEC_SUFFIX=-$(ev) VPATH=../../../src $(NEWLINE) )
override_dh_auto_build-indep:
override_dh_auto_install-arch:
$(foreach ev, $(DEB_VIRT_EVOLVER_LISTOF_VARIANT), \
$(MAKE) -f debian/adhoc/Makefile install-exec VARIANT=$(ev) TOP_BUILDDIR=_build/$(ev) DESTDIR=debian/tmp $(NEWLINE) \
)
override_dh_auto_install-indep:
$(MAKE) -f debian/adhoc/Makefile install-doc DESTDIR=debian/tmp
override_dh_link-indep:
dh_link -p evolver-doc \
/usr/share/doc/evolver/manual$(UPS_PKG_VERSION_INT).pdf /usr/share/doc/evolver/manual.pdf \
/usr/share/doc/evolver/examples /usr/share/doc/evolver/fe
override_dh_compress-indep:
dh_compress -Xevhelp.txt -X.pdf -Xexamples
override_dh_auto_clean-arch:
dh_auto_clean -a
rm -rf _build
rm -f $(foreach ev, $(DEB_VIRT_EVOLVER_LISTOF_FLAVOUR), $(foreach dhf, $(DEB_VIRT_EVOLVER_FLAVOUR_LISTOF_DHFILE), debian/evolver-$(ev)$(dhf) ))
update-debian-control: debian/templates/control.in debian/rules
sed \
-e "s|@braCSket_DEB_ARCH_REVLISTOF_LIBQUAMATH@|[$(DEB_ARCH_REVLISTOF_LIBQUAMATH)]|g" \
$< > debian/control
define NEWLINE
endef
EMPTY :=
EMPTY +=
|