File: rules

package info (click to toggle)
swi-prolog 9.2.9%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 84,456 kB
  • sloc: ansic: 401,705; perl: 374,799; lisp: 9,080; cpp: 8,920; java: 5,525; sh: 3,282; javascript: 2,690; python: 2,655; ruby: 1,594; yacc: 845; makefile: 440; xml: 317; sed: 12; sql: 6
file content (131 lines) | stat: -rwxr-xr-x 4,927 bytes parent folder | download
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
#!/usr/bin/make -f

export DH_VERBOSE = 1

export DEB_BUILD_MAINT_OPTIONS := hardening=+all
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/buildflags.mk

DEB_HOST_ARCH_BITS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_BITS)
DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)

ifneq (,$(filter 64,$(DEB_HOST_ARCH_BITS))$(filter i386,$(DEB_HOST_ARCH)))
  t64_provides := libswipl9
endif

ifeq ($(DEB_BUILD_ARCH),riscv64)
    DEB_LDFLAGS_MAINT_APPEND += -Wl,--no-as-needed -Wl,-latomic -Wl,--as-needed
    export DEB_LDFLAGS_MAINT_APPEND
endif

PLBASENAME := swi-prolog
PLBASE     := /usr/lib/$(PLBASENAME)/
JNIDIR     := /usr/lib/$(DEB_BUILD_MULTIARCH)/jni

CMAKE_OPTIONS = \
	-DSWIPL_CC=cc \
	-DSWIPL_CXX=c++ \
	-DSWIPL_PACKAGES_QT=OFF \
	-DSWIPL_INSTALL_DIR=$(PLBASENAME) \
	-DSWIPL_INSTALL_IN_LIB=ON \
	-DSWIPL_INSTALL_IN_SHARE=ON \
	-DINSTALL_TESTS=ON \
	-DCMAKE_BUILD_TYPE=DEB \
	-DJAVA_COMPATIBILITY=ON \
	-DJNIDIR=$(JNIDIR)

# List of architectures where -java package should be built.
JAVA_ARCHS = $(shell grep-dctrl -PX swi-prolog-java -nsArchitecture debian/control)

ifeq ($(filter $(DEB_BUILD_ARCH),$(JAVA_ARCHS)),)
    CMAKE_OPTIONS  += -DSWIPL_PACKAGES_JAVA=OFF
else
    JAVA_COMPONENTS = Java_interface
endif

CORE_COMPONENTS = \
	Core_system
COREPKGS_COMPONENTS = \
	Core_packages
NOX_COMPONENTS = \
	Archive_interface \
	Commandline_editors \
	OpenSSL_interface \
	Perl_regex \
	Python_interface \
	YAML_support
X_COMPONENTS = \
	Graphics_subsystem
ODBC_COMPONENTS = \
	ODBC_interface
BDB_COMPONENTS = \
	BerkeleyDB_interface
DOC_COMPONENTS = \
	Documentation \
	Examples
TEST_COMPONENTS = \
	Tests

ifeq ($(shell dpkg-architecture -qDEB_BUILD_ARCH_OS),linux)
    NOX_COMPONENTS += TIPC_networking
else
    CMAKE_OPTIONS  += -DSWIPL_PACKAGES_TIPC=OFF
endif

# install_component component deb_pkg
# env -C build doesn't work on Ubuntu 16.04 or older
define install_component
	cd build && env DESTDIR=$(CURDIR)/debian/$(2) \
	cmake -DCMAKE_INSTALL_COMPONENT=$(1) \
	      -P cmake_install.cmake

endef

# install_components plog_pkg_list deb_pkg
define install_components
	$(foreach component,$(1),$(call install_component,$(component),$(2)))
endef

%:
	dh $@ --builddirectory=build

override_dh_auto_configure:
	dh_auto_configure --builddirectory=build -- $(CMAKE_OPTIONS)

override_dh_auto_install:
	$(call install_components,$(CORE_COMPONENTS),swi-prolog-core)
	$(call install_components,$(COREPKGS_COMPONENTS),swi-prolog-core-packages)
	$(call install_components,$(NOX_COMPONENTS),swi-prolog-nox)
	$(call install_components,$(X_COMPONENTS),swi-prolog-x)
	$(call install_components,$(JAVA_COMPONENTS),swi-prolog-java)
	$(call install_components,$(ODBC_COMPONENTS),swi-prolog-odbc)
	$(call install_components,$(BDB_COMPONENTS),swi-prolog-bdb)
	$(call install_components,$(DOC_COMPONENTS),swi-prolog-doc)
	$(call install_components,$(TEST_COMPONENTS),swi-prolog-test)

	rm debian/swi-prolog-core/$(PLBASE)/library/INDEX.pl # This file is (re-)generated by postinst scripts

	rm -f debian/swi-prolog-test/usr/lib/swi-prolog/test/Tests/COPYING # Remove extra license file

	find debian/ -depth -type d -empty -exec rm -rfv {} \; # Remove empty directories

override_dh_install:

# tell the tests NOT to try to access http://www.swi-prolog.org.  This
# is used in some of the HTTP tests
USE_PUBLIC_NETWORK_TESTS=false
export USE_PUBLIC_NETWORK_TESTS

# we exclude the JPL test (-E jpl:) because embedded Java in Linux is
# currently non-functional. See
# https://stackoverflow.com/questions/44763387/jni-createjavavm-stack-corruption-in-recent-ubuntu-16-04

override_dh_auto_test:
	-cd build && ctest -V -E jpl:

override_dh_gencontrol:
	echo 't64:Provides=$(t64_provides)' >> debian/swi-prolog-core.substvars
	dh_gencontrol -- -Vswi-prolog:ABI="$(shell LD_LIBRARY_PATH=$(shell dirname $(shell find debian/swi-prolog-core -name libswipl.so)) debian/swi-prolog-core/usr/bin/swipl --abi-version | sed 's/.*-abi-//')" -Vswi-prolog:FABI="$(shell LD_LIBRARY_PATH=$(shell dirname $(shell find debian/swi-prolog-core -name libswipl.so)) debian/swi-prolog-core/usr/bin/swipl --abi-version | sed 's/.*-abi-//' | cut --delimiter=- -f 1)" -Vswi-prolog:BABI="$(shell LD_LIBRARY_PATH=$(shell dirname $(shell find debian/swi-prolog-core -name libswipl.so)) debian/swi-prolog-core/usr/bin/swipl --abi-version | sed 's/.*-abi-//' | cut --delimiter=- -f 2)" -Vswi-prolog:QLF="$(shell LD_LIBRARY_PATH=$(shell dirname $(shell find debian/swi-prolog-core -name libswipl.so)) debian/swi-prolog-core/usr/bin/swipl --abi-version | sed 's/.*-abi-//' | cut --delimiter=- -f 3)" -Vswi-prolog:SSTATES="$(shell LD_LIBRARY_PATH=$(shell dirname $(shell find debian/swi-prolog-core -name libswipl.so)) debian/swi-prolog-core/usr/bin/swipl --abi-version | sed 's/.*-abi-//' | cut --delimiter=- -f 4)"

.PHONY: override_dh_auto_configure override_dh_auto_install override_dh_auto_test
.PHONY: override_dh_install override_dh_gencontrol