summaryrefslogtreecommitdiffstats
path: root/debian/rules
diff options
context:
space:
mode:
Diffstat (limited to 'debian/rules')
-rwxr-xr-xdebian/rules188
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