File: rules

package info (click to toggle)
swi-prolog 8.0.2+dfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster, sid
  • size: 71,944 kB
  • sloc: ansic: 349,612; perl: 306,654; java: 5,208; cpp: 4,436; sh: 3,042; ruby: 1,594; yacc: 845; makefile: 136; xml: 82; sed: 12; sql: 6
file content (101 lines) | stat: -rwxr-xr-x 2,922 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
#!/usr/bin/make -f

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

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

CMAKE_OPTIONS = \
	-DSWIPL_PACKAGES_QT=OFF \
	-DSWIPL_INSTALL_DIR=$(PLBASENAME) \
	-DSWIPL_INSTALL_IN_LIB=ON \
	-DJAVA_COMPATIBILITY=ON \
	-DCMAKE_BUILD_TYPE=DEB \
	-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

NOX_COMPONENTS = \
	Core_system \
	Core_packages \
	Archive_interface \
	Commandline_editors \
	Perl_regex \
	YAML_support \
	OpenSSL_interface \
	Documentation \
	Examples
X_COMPONENTS = \
	Graphics_subsystem
ODBC_COMPONENTS = \
	ODBC_interface
BDB_COMPONENTS = \
	BerkeleyDB_interface

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,$(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)

	# This file is generated by swi-prolog-nox postinst (updated by triggers)
	rm debian/swi-prolog-nox/$(PLBASE)/library/INDEX.pl

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

	# mv $(CURDIR)/debian/swi-prolog-nox/$(PLBASE)/lib/$(DEB_BUILD_ARCH)/libswipl.* $(CURDIR)/debian/swi-prolog-nox/usr/lib/

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:

.PHONY: override_dh_auto_configure override_dh_auto_install
.PHONY: override_dh_install override_dh_auto_test