File: rules

package info (click to toggle)
swi-prolog 7.2.3%2Bdfsg-6
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 84,180 kB
  • ctags: 45,684
  • sloc: ansic: 330,358; perl: 268,104; sh: 6,795; java: 4,904; makefile: 4,561; cpp: 4,153; ruby: 1,594; yacc: 843; xml: 82; sed: 12; sql: 6
file content (161 lines) | stat: -rwxr-xr-x 5,683 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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
#!/usr/bin/make -f

DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH)
DEB_HOST_MULTIARCH := $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)

ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
MAKEFLAGS += -j$(NUMJOBS)
endif

CONFFLAGS = --libdir=/usr/lib --with-world --disable-libdirversion --enable-shared

COFLAGS := $(shell dpkg-buildflags --get CFLAGS)
CPPFLAGS := $(shell dpkg-buildflags --get CPPFLAGS) -fPIC $(shell pkg-config --cflags ncursesw)
LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS) $(shell dpkg-buildflags --get CFLAGS)

# FIXME implement a proper fix
ifeq ($(shell dpkg-architecture -qDEB_HOST_ARCH_OS),hurd)
CPPFLAGS += -DMAXPATHLEN=1024
endif

export COFLAGS CPPFLAGS LDFLAGS

JAVACFLAGS = -source 1.5 -target 1.5
export JAVACFLAGS

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

ifeq ($(filter $(DEB_HOST_ARCH),$(JAVA_ARCHS)),)
    DISABLE_PKGS=jpl
else
    JAVA_PACKAGES = jpl
endif

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

NOX_PACKAGES = clib cpp table sgml RDF semweb http chr clpqr nlp ssl pengines pldoc plunit zlib protobufs PDT utf8proc archive
X_PACKAGES = xpce
ODBC_PACKAGES = odbc cql

# Add here all packages that are not installed into deb packages
DISABLE_PKGS += windows
export DISABLE_PKGS

ifeq ($(shell dpkg-architecture -qDEB_HOST_ARCH_OS),linux)
    NOX_PACKAGES += tipc
else
    DISABLE_PKGS += tipc
endif

# install_package prolog_pkg deb_pkg
define install_package
	mkdir -p $(CURDIR)/debian/$(2)/$(PLBASE)/library
	$(MAKE) -C packages/$(1) \
		DESTDIR=$(CURDIR)/debian/$(2) \
		PL=$(CURDIR)/src/swipl.sh \
		PLEXE=$(CURDIR)/src/swipl.sh \
		install < /dev/null

endef

# install_packages plog_pkg_list deb_pkg
define install_packages
	$(foreach pkg,$(1),$(call install_package,$(pkg),$(2)))
endef

%:
	dh $@ --with=autotools_dev,autoreconf

override_dh_auto_configure:
	$(SHELL) -c "ulimit -a"
	$(SHELL) -c "ulimit -Ha"
	dh_auto_configure -- $(CONFFLAGS) PL="swipl" PLARCH=$(DEB_HOST_ARCH)

override_dh_auto_build:
	$(MAKE) < /dev/null

override_dh_auto_clean:
	[ ! -f Makefile ] || $(MAKE) clean
	[ ! -f Makefile ] || $(MAKE) distclean

override_dh_auto_install:
	$(MAKE) DESTDIR=$(CURDIR)/debian/swi-prolog-nox install-lite

	mkdir -p $(CURDIR)/debian/swi-prolog-x/usr/bin

	$(call install_packages,$(NOX_PACKAGES),swi-prolog-nox)
	$(call install_packages,$(X_PACKAGES),swi-prolog-x)
	$(call install_packages,$(JAVA_PACKAGES),swi-prolog-java)
	$(call install_packages,$(ODBC_PACKAGES),swi-prolog-odbc)

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

	# Make swipl-lfr.pl executable
	chmod +x debian/swi-prolog-nox/$(PLBASE)/library/dialect/sicstus/swipl-lfr.pl

	# Generate xpce's autoload index
	echo "make_library_index('$(CURDIR)/debian/swi-prolog-x/$(PLBASE)/xpce/prolog/lib/')." | $(CURDIR)/src/swipl.sh

	# Remove superfluous copies of the GPL
	rm debian/swi-prolog-x/$(PLBASE)/xpce/COPYING

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

	mv $(CURDIR)/debian/swi-prolog-nox/$(PLBASE)/lib/$(DEB_HOST_ARCH)/libswipl.so* $(CURDIR)/debian/swi-prolog-nox/usr/lib/
	mv $(CURDIR)/debian/swi-prolog-nox/$(PLBASE)/lib/$(DEB_HOST_ARCH)/libswipl.a $(CURDIR)/debian/swi-prolog-nox/usr/lib/

	# Link libjpl.so from the JNI directory so java can load it without LD_LIBRARY_PATH
	mkdir -p $(CURDIR)/debian/swi-prolog-java/$(JNIDIR)
	ln -sf $(PLBASE)/lib/$(DEB_HOST_ARCH)/libjpl.so \
	       $(CURDIR)/debian/swi-prolog-java/$(JNIDIR)/

	install -m755 debian/debhelper/dh_swi_prolog debian/swi-prolog-nox/usr/bin/
	install -d debian/swi-prolog-nox/usr/share/man/man1
	pod2man debian/debhelper/dh_swi_prolog > debian/swi-prolog-nox/usr/share/man/man1/dh_swi_prolog.1

	install -d debian/swi-prolog-nox/usr/share/perl5/Debian/Debhelper/Sequence
	install -m644 debian/debhelper/swi_prolog.pm debian/swi-prolog-nox/usr/share/perl5/Debian/Debhelper/Sequence/

override_dh_install:

override_dh_gencontrol:
	debian/debhelper/dh_swi_prolog -pswi-prolog-nox
	dh_gencontrol

override_dh_auto_test:
	# TODO enable other tests
	# Some tests are disabled because they require network connection
	# pengines check is disables for ppc64el since it is failing for unknown yet reason
	$(MAKE) -C $(CURDIR)/src check
	$(MAKE) -C $(CURDIR)/packages/RDF check
	$(MAKE) -C $(CURDIR)/packages/archive check
	$(MAKE) -C $(CURDIR)/packages/chr check
	$(MAKE) -C $(CURDIR)/packages/clib check
	$(MAKE) -C $(CURDIR)/packages/cpp check
	# $(MAKE) -C $(CURDIR)/packages/http check
	$(MAKE) -C $(CURDIR)/packages/nlp check
	$(MAKE) -C $(CURDIR)/packages/odbc check
	$(MAKE) -C $(CURDIR)/packages/pldoc check
	$(MAKE) -C $(CURDIR)/packages/plunit check
	$(MAKE) -C $(CURDIR)/packages/protobufs check
	# $(MAKE) -C $(CURDIR)/packages/semweb check
	$(MAKE) -C $(CURDIR)/packages/sgml check
	# $(MAKE) -C $(CURDIR)/packages/ssl check
	$(MAKE) -C $(CURDIR)/packages/table check
	$(MAKE) -C $(CURDIR)/packages/zlib check
ifneq ($(JAVA_PACKAGES),)
	$(MAKE) -C $(CURDIR)/packages/jpl check
endif

override_dh_makeshlibs: V=$(shell dpkg-parsechangelog|awk '/^Version:/ {sub("-[^-]*$$", "",$$2); print $$2}')
override_dh_makeshlibs:
	# This library is not for external apps for now
	dh_makeshlibs -V"swi-prolog-nox (>= $(V)~), swi-prolog-nox (<< $(V).0~)"

.PHONY: override_dh_auto_configure override_dh_auto_build override_dh_auto_clean override_dh_auto_install
.PHONY: override_dh_install override_dh_auto_test override_dh_gencontrol