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
|