diff options
Diffstat (limited to 'debian/rules')
-rwxr-xr-x | debian/rules | 188 |
1 files changed, 188 insertions, 0 deletions
diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..d8f3875 --- /dev/null +++ b/debian/rules @@ -0,0 +1,188 @@ +#!/usr/bin/make -f +#-*- makefile -*- + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +export DEB_BUILD_ARCH_OS ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH_OS) + +export LC_ALL:=C.UTF-8 + +export DEB_BUILD_MAINT_OPTIONS = hardening=+all future=+lfs +DPKG_EXPORT_BUILDFLAGS = 1 +include /usr/share/dpkg/buildflags.mk + +DESTDIR=$(CURDIR)/debian/tmp + +DDEBUG=`if (echo $(DEB_BUILD_OPTIONS) | grep -q debug) then \ + echo "--enable-debug"; \ + else \ + echo ""; \ + fi` + +export DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) +export DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +export DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) + +export LDFLAGS += -Wl,--as-needed +ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE)) + confflags += --build $(DEB_HOST_GNU_TYPE) --with-tcl=/usr/lib/$(DEB_HOST_MULTIARCH)/tcl8.6 + export CROSS_BUILDING=no +else + confflags += --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE) --with-tcl=/usr/lib/$(DEB_HOST_MULTIARCH)/tcl8.6 + LDFLAGS += -L/usr/lib/$(DEB_HOST_MULTIARCH) + export CROSS_BUILDING=yes +endif + +ifeq ($(origin CC),default) + HOST_CC ?= $(DEB_HOST_GNU_TYPE)-gcc +else + HOST_CC ?= $(CC) +endif + +export CFLAGS += -O2 -fno-strict-aliasing \ + -DSQLITE_SECURE_DELETE -DSQLITE_ENABLE_COLUMN_METADATA \ + -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS \ + -DSQLITE_ENABLE_RTREE=1 -DSQLITE_SOUNDEX=1 \ + -DSQLITE_ENABLE_UNLOCK_NOTIFY \ + -DSQLITE_OMIT_LOOKASIDE=1 -DSQLITE_ENABLE_DBSTAT_VTAB \ + -DSQLITE_ALLOW_ROWID_IN_VIEW \ + -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT=1 \ + -DSQLITE_ENABLE_LOAD_EXTENSION \ + -DSQLITE_ENABLE_JSON1 \ + -DSQLITE_LIKE_DOESNT_MATCH_BLOBS \ + -DSQLITE_THREADSAFE=1 \ + -DSQLITE_ENABLE_FTS3_TOKENIZER=1 \ + -DSQLITE_USE_URI=1 \ + -DSQLITE_MAX_SCHEMA_RETRY=25 \ + -DSQLITE_ENABLE_PREUPDATE_HOOK \ + -DSQLITE_ENABLE_SESSION \ + -DSQLITE_ENABLE_STMTVTAB \ + -DSQLITE_MAX_VARIABLE_NUMBER=250000 + +configure: configure-stamp +configure-stamp: + dh_testdir + dh_autoreconf --as-needed + dh_update_autotools_config + ./configure --prefix=/usr --mandir="/usr/share/man" \ + $(confflags) --enable-threadsafe \ + --enable-load-extension \ + --enable-json \ + --enable-fts4 \ + --enable-fts5 \ + --disable-amalgamation \ + --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) \ + --libexecdir=\$${libdir}/sqlite3 \ + TCLLIBDIR=/usr/lib/tcltk/sqlite3 \ + SHELL=/bin/sh \ + $(DDEBUG) + + # remove double -ldl from sqlite3.pc + sed -i "s/\([-ldl .+]\) -ldl/\1/" sqlite3.pc + + touch $@ + +build-arch: build-stamp +build-indep: build-stamp + +build: build-arch build-indep +build-stamp: configure + dh_testdir + $(MAKE) +ifeq (,$(findstring $(DEB_BUILD_ARCH_OS),kfreebsd)) + # build tools + $(MAKE) showdb showjournal showstat4 showwal sqldiff sqlite3_analyzer +endif +ifneq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE)) + $(MAKE) lemon +endif + cd ext/misc && $(HOST_CC) $(LDFLAGS) $(CPPFLAGS) $(CFLAGS) -g -fPIC -I../.. -shared csv.c -o csv.so + + touch $@ + +clean: + dh_testdir + dh_testroot + rm -f configure-stamp build-stamp + rm -f config.log config.h pkgIndex.tcl configure + [ ! -f Makefile ] || $(MAKE) distclean + rm -f config.h sqlite3session.h mksourceid + rm -f ext/misc/csv.so + dh_autoreconf_clean + dh_clean + +install: build + dh_testdir + dh_testroot + + $(MAKE) install DESTDIR=$(DESTDIR) + chrpath -d $(DESTDIR)/usr/bin/sqlite3 + chrpath -d $(DESTDIR)/usr/lib/tcltk/sqlite3/libtclsqlite3.so + install -m 0664 libtclsqlite3.la $(DESTDIR)/usr/lib/tcltk/sqlite3/ + install -d $(DESTDIR)/usr/share/lemon + install -m 0664 tool/lempar.c $(DESTDIR)/usr/share/lemon/ +ifeq (,$(findstring $(DEB_BUILD_ARCH_OS),kfreebsd)) + install -m 0775 showdb showjournal showstat4 showwal \ + sqldiff sqlite3_analyzer \ + $(DESTDIR)/usr/bin/ +endif + install -m 0775 lemon $(DESTDIR)/usr/bin/ + install -d $(DESTDIR)/usr/lib/$(DEB_HOST_MULTIARCH)/sqlite/ + install -m 0775 ext/misc/csv.so \ + $(DESTDIR)/usr/lib/$(DEB_HOST_MULTIARCH)/sqlite/ + + # Remove *.la files per policy 3.9.1.0 + rm $(DESTDIR)/usr/lib/$(DEB_HOST_MULTIARCH)/libsqlite3.la + + # Create the pkgIndex.tcl file for the Tcl module. This generated file + # actually turns out to be relocatable. +ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE)) + echo "pkg_mkIndex -verbose $(DESTDIR)/usr/lib/tcltk/sqlite3" | \ + LD_LIBRARY_PATH=$(DESTDIR)/usr/lib/$(DEB_HOST_MULTIARCH) \ + tclsh8.6 + grep -q 'package ifneeded sqlite3' \ + $(DESTDIR)/usr/lib/tcltk/sqlite3/pkgIndex.tcl || \ + (echo "pkgIndex.tcl seems to be wrong" && exit 1) +else + echo "" > $(DESTDIR)/usr/lib/tcltk/sqlite3/pkgIndex.tcl +endif + +binary-indep: build install + dh_testdir + dh_testroot + + dh_install -i --sourcedir=$(DESTDIR) + dh_installdocs -i + lynx -dump -nolist www/changes.html >changelog + dh_installchangelogs -i www/changes.html changelog + rm changelog + dh_compress -i + dh_fixperms -i + dh_installdeb -i + dh_gencontrol -i + dh_md5sums -i + dh_builddeb -i + +binary-arch: build install + dh_testdir + dh_testroot + + dh_install -a --sourcedir=$(DESTDIR) + dh_installman -a + dh_installdocs -a + lynx -dump -nolist www/changes.html >changelog + dh_installchangelogs -a www/changes.html changelog + rm changelog + dh_strip -a + dh_compress -a + dh_fixperms -a + dh_makeshlibs -a + dh_installdeb -a + dh_shlibdeps -a -Ldebian/libsqlite3-0/usr/lib/$(DEB_HOST_MULTIARCH) + dh_gencontrol -a + dh_md5sums -a + dh_builddeb -a + +binary: binary-indep binary-arch +.PHONY: build build-indep build-arch clean configure binary-indep binary-arch binary |