mirror of https://gitee.com/openkylin/db5.3.git
242 lines
7.2 KiB
Makefile
Executable File
242 lines
7.2 KiB
Makefile
Executable File
#!/usr/bin/make -f
|
|
# -*- makefile -*-
|
|
# debian/rules for Berkeley DB defaults
|
|
# Copyright (C) 2011 Ondřej Surý
|
|
# Published under the GNU GPL license
|
|
# Partially based on previous work by Clint Adams
|
|
#
|
|
# Uncomment this to turn on verbose mode.
|
|
export DH_VERBOSE=1
|
|
|
|
export DH_ALWAYS_EXCLUDE=.arch-ids
|
|
|
|
include /usr/share/dpkg/architecture.mk
|
|
|
|
# Don't try to build this file if missing
|
|
/usr/share/javahelper/java-vars.mk:
|
|
:
|
|
|
|
-include /usr/share/javahelper/java-vars.mk
|
|
|
|
JAVA_BROKEN_ARCHS =
|
|
|
|
ENABLE_JAVA=no
|
|
|
|
ifeq (,$(filter $(DEB_HOST_ARCH), $(JAVA_BROKEN_ARCHS)))
|
|
ENABLE_JAVA=yes
|
|
endif
|
|
|
|
ifneq (,$(filter nojava,$(DEB_BUILD_PROFILES)))
|
|
ENABLE_JAVA=no
|
|
endif
|
|
|
|
CONFIGURE_SWITCHES = --prefix=/usr \
|
|
--mandir=\$${prefix}/share/man \
|
|
--localstatedir=/var \
|
|
--sysconfdir=/etc \
|
|
--libexecdir=/usr/lib \
|
|
--enable-cxx \
|
|
--enable-compat185 \
|
|
--enable-sql \
|
|
--enable-stl \
|
|
--enable-dbm
|
|
|
|
ifeq (,$(filter pkg.db5.3.notcl,$(DEB_BUILD_PROFILES)))
|
|
ENABLE_TESTS=yes
|
|
CONFIGURE_SWITCHES += --enable-tcl
|
|
ifneq (,$(wildcard /usr/lib/$(DEB_HOST_MULTIARCH)/tcl*))
|
|
CONFIGURE_SWITCHES += --with-tcl=/usr/lib/$(DEB_HOST_MULTIARCH)
|
|
else
|
|
CONFIGURE_SWITCHES += --with-tcl=/usr/lib
|
|
endif
|
|
else
|
|
ENABLE_TESTS=no
|
|
CONFIGURE_SWITCHES += --disable-tcl
|
|
DH_OPTIONS += -Nlibdb5.1-tcl
|
|
endif
|
|
|
|
ifneq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
|
|
ENABLE_TESTS=no
|
|
endif
|
|
|
|
ifeq (zx86_64-linux-gnuz,z$(DEB_HOST_GNU_TYPE)z)
|
|
CONFIGURE_SWITCHES += --with-mutex=POSIX/pthreads/library
|
|
endif
|
|
ifeq (zavr32-linux-gnuz,z$(DEB_HOST_GNU_TYPE)z)
|
|
CONFIGURE_SWITCHES += --enable-posixmutexes
|
|
endif
|
|
|
|
ifeq (yes,$(ENABLE_JAVA))
|
|
JAVACFLAGS=-source 1.7 -target 1.7
|
|
JAVA_HOME ?= /usr/lib/jvm/default-java
|
|
CFLAGS += -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux
|
|
CONFIGURE_SWITCHES += --enable-java
|
|
DH_PLUGINS += --with=javahelper
|
|
else
|
|
CONFIGURE_SWITCHES += --disable-java
|
|
endif
|
|
|
|
ifneq (,$(filter pkg.db5.3.nosql,$(DEB_BUILD_PROFILES)))
|
|
CONFIGURE_SWITCHES += --disable-sql
|
|
endif
|
|
|
|
|
|
BROKEN_CPUS = zs390z
|
|
VERY_BROKEN_CPUS = zhppaz
|
|
BROKEN_SYSTEMS = zgnuz
|
|
VERY_BROKEN_SYSTEMS =
|
|
|
|
TCLSH=/usr/bin/tclsh
|
|
|
|
export DH_OPTIONS
|
|
|
|
package=db5.3
|
|
bdbversion=5.3
|
|
|
|
version=$(shell expr `pwd` : '.*-\([0-9.]*\)')
|
|
version_major=$(shell expr `pwd` : '.*-\([0-9]*\).[0-9.]*')
|
|
|
|
LIBTOOL_AUX_FILES=config.guess config.sub install-sh ltmain.sh
|
|
LIBTOOL_MACROS_FILES=libtool.m4 ltoptions.m4 ltsugar.m4 ltversion.m4 lt~obsolete.m4
|
|
|
|
RECONF_FILES=dist/config.hin \
|
|
dist/configure \
|
|
$(patsubst %,dist/%,$(LIBTOOL_AUX_FILES)) \
|
|
$(patsubst %,dist/aclocal/%,$(LIBTOOL_MACROS_FILES)) \
|
|
lang/sql/sqlite/aclocal.m4 \
|
|
lang/sql/sqlite/configure \
|
|
$(patsubst %,lang/sql/sqlite/%,$(LIBTOOL_AUX_FILES))
|
|
|
|
%:
|
|
dh $@ --with=autotools-dev $(DH_PLUGINS)
|
|
|
|
override_dh_auto_configure:
|
|
if [ ! -d $(CURDIR)/debian/s_config ]; then \
|
|
mkdir -p $(CURDIR)/debian/s_config/dist/aclocal/ \
|
|
$(CURDIR)/debian/s_config/lang/sql/sqlite/; \
|
|
fi
|
|
for f in $(RECONF_FILES); do \
|
|
if [ ! -f $(CURDIR)/debian/s_config/$$f ]; then \
|
|
mv $(CURDIR)/$$f $(CURDIR)/debian/s_config/`dirname $$f`; \
|
|
fi; \
|
|
done
|
|
cd dist && libtoolize -cfi
|
|
cd lang/sql/sqlite && libtoolize -cfi
|
|
cd dist && ./s_config
|
|
ifeq ($(ENABLE_TESTS),yes)
|
|
JAVACFLAGS="$(JAVACFLAGS)" dh_auto_configure -Ddist -Bbuild-test -- $(CONFIGURE_SWITCHES) --enable-test
|
|
endif
|
|
JAVACFLAGS="$(JAVACFLAGS)" dh_auto_configure -Ddist -Bbuild-production -- $(CONFIGURE_SWITCHES) --disable-test
|
|
|
|
override_dh_auto_clean:
|
|
ifeq ($(ENABLE_TESTS),yes)
|
|
dh_auto_clean -Ddist -Bbuild-test
|
|
endif
|
|
dh_auto_clean -Ddist -Bbuild-production
|
|
rm -f $(CURDIR)/debian/build_signature.txt
|
|
for f in $(RECONF_FILES); do \
|
|
if [ -f $(CURDIR)/debian/s_config/$$f ]; then \
|
|
mv $(CURDIR)/debian/s_config/$$f $(CURDIR)/`dirname $$f`; \
|
|
fi; \
|
|
done
|
|
if [ -d $(CURDIR)/debian/s_config/ ]; then \
|
|
rmdir $(CURDIR)/debian/s_config/dist/aclocal/ \
|
|
$(CURDIR)/debian/s_config/dist/ \
|
|
$(CURDIR)/debian/s_config/lang/sql/sqlite/ \
|
|
$(CURDIR)/debian/s_config/lang/sql/ \
|
|
$(CURDIR)/debian/s_config/lang/ \
|
|
$(CURDIR)/debian/s_config/; \
|
|
fi
|
|
|
|
override_dh_auto_test:
|
|
ifeq (,$(findstring z$(DEB_BUILD_GNU_CPU)z,$(VERY_BROKEN_CPUS))$(findstring z$(DEB_BUILD_GNU_SYSTEM)z,$(VERY_BROKEN_SYSTEMS)))
|
|
ifeq ($(ENABLE_TESTS),yes)
|
|
cd build-test && make cutest && ./cutest
|
|
echo 'source ../test/tcl/test.tcl; run_std;' | tclsh
|
|
|
|
ifeq (,$(findstring z$(DEB_BUILD_GNU_CPU)z,$(BROKEN_CPUS))$(findstring z$(DEB_BUILD_GNU_SYSTEM)z,$(BROKEN_SYSTEMS)))
|
|
! grep ^FAIL build-test/ALL.OUT
|
|
else
|
|
# Testsuite failures are marked as non-fatal on $(DEB_BUILD_GNU_SYSTEM)-$(DEB_BUILD_GNU_CPU)
|
|
grep ^FAIL build-test/ALL.OUT || true
|
|
endif
|
|
else
|
|
# Testsuite has been disabled by DEB_BUILD_OPTIONS=$(DEB_BUILD_OPTIONS)
|
|
endif
|
|
else
|
|
# Testsuite has been disabled on $(DEB_BUILD_GNU_SYSTEM)-$(DEB_BUILD_GNU_CPU)
|
|
endif
|
|
|
|
override_dh_auto_install:
|
|
dh_auto_install -Ddist -Bbuild-production
|
|
|
|
# Remove .la files
|
|
rm -f $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/*.la
|
|
|
|
# Remove libdb*-5.so from all packages, we don't provide generic libdb5 packages
|
|
rm -f $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/libdb*5.so
|
|
|
|
# Reduce duplication in duplicate .a files by symlinking
|
|
for v in "" _cxx _sql _stl _tcl; do \
|
|
rm -f debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/libdb$$v.a; \
|
|
ln -s libdb$$v-$(bdbversion).a $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/libdb$$v.a; \
|
|
done
|
|
|
|
# only works for the native build
|
|
ifeq ($(DEB_HOST_ARCH),$(DEB_BUILD_ARCH))
|
|
# Compare built-in signature and fail build if it is different
|
|
cc -o$(CURDIR)/debian/db_signature \
|
|
-I$(CURDIR)/debian/tmp/usr/include \
|
|
$(CURDIR)/debian/db_signature.c \
|
|
$(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/libdb.a
|
|
|
|
$(CURDIR)/debian/db_signature > $(CURDIR)/debian/build_signature_$(DEB_HOST_ARCH).txt
|
|
|
|
echo -n "Berkeley DB signature is:"; $(CURDIR)/debian/db_signature
|
|
|
|
ifneq (,$(filter nojava pkg.db5.3.notcl,$(DEB_BUILD_PROFILES)))
|
|
if [ -f $(CURDIR)/debian/saved_signature_$(DEB_HOST_ARCH).txt ]; then \
|
|
cmp $(CURDIR)/debian/saved_signature_$(DEB_HOST_ARCH).txt \
|
|
$(CURDIR)/debian/build_signature_$(DEB_HOST_ARCH).txt \
|
|
|| ( echo "Region environment signatures differ."; exit 1; ); \
|
|
fi
|
|
endif
|
|
endif
|
|
|
|
mv $(CURDIR)/debian/tmp/usr/bin/dbsql $(CURDIR)/debian/tmp/usr/bin/db_sql
|
|
rm -f $(CURDIR)/debian/tmp/usr/bin/sqlite3
|
|
|
|
for i in $(CURDIR)/debian/tmp/usr/bin/db_*; do \
|
|
mv $$i $$(echo $$i | sed -e 's{usr/bin/db_{usr/bin/$(package)_{'); \
|
|
done
|
|
|
|
override_dh_install:
|
|
dh_install -a -Xusr/doc --list-missing
|
|
ifeq (,$(filter pkg.db5.3.notcl,$(DEB_BUILD_PROFILES)))
|
|
tcltk-depends
|
|
endif
|
|
|
|
override_dh_installdocs-indep:
|
|
dh_installdocs -pdb5.3-doc -plibdb5.3-java
|
|
|
|
override_dh_installdocs-arch:
|
|
dh_installdocs --link-doc=libdb5.3
|
|
ifeq ($(DEB_HOST_ARCH),$(DEB_BUILD_ARCH))
|
|
# Install build_signature_$(DEB_HOST_ARCH).txt to docs
|
|
mkdir -p $(CURDIR)/debian/libdb5.3/usr/share/doc/libdb5.3/
|
|
install -m 644 debian/build_signature_$(DEB_HOST_ARCH).txt $(CURDIR)/debian/libdb5.3/usr/share/doc/libdb5.3/
|
|
endif
|
|
|
|
override_dh_strip:
|
|
dh_strip -s --dbg-package=libdb5.3-dbg
|
|
|
|
override_dh_clean:
|
|
rm -rf build
|
|
rm -f $(CURDIR)/debian/db_signature
|
|
DH_OPTIONS="" dh_clean
|
|
|
|
override_jh_installlibs:
|
|
ifeq (yes,$(ENABLE_JAVA))
|
|
jh_installlibs
|
|
endif
|