File: rules

package info (click to toggle)
evolver 2.70%2Bds-4
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 17,148 kB
  • sloc: ansic: 127,395; makefile: 209; sh: 98
file content (129 lines) | stat: -rwxr-xr-x 4,214 bytes parent folder | download | duplicates (2)
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 +=