#!/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 include /usr/share/dpkg/buildtools.mk 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) TCLV_PRIMARY = 8.6 TCLV_SECONDARY = 9.1 export LDFLAGS += -Wl,--as-needed ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE)) confflags += --build=$(DEB_HOST_GNU_TYPE) export CROSS_BUILDING=no else confflags += --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) 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 -DSQLITE_SOUNDEX=1 \ -DSQLITE_ENABLE_UNLOCK_NOTIFY \ -DSQLITE_ENABLE_DBSTAT_VTAB \ -DSQLITE_ENABLE_DBPAGE_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_USE_URI=1 \ -DSQLITE_MAX_SCHEMA_RETRY=25 \ -DSQLITE_ENABLE_PREUPDATE_HOOK \ -DSQLITE_ENABLE_SESSION \ -DSQLITE_ENABLE_STMTVTAB \ -DSQLITE_STRICT_SUBTYPE=1 \ -DSQLITE_MAX_VARIABLE_NUMBER=250000 configure: configure-stamp configure-stamp: dh_testdir for v in $(TCLV_PRIMARY) $(TCLV_SECONDARY) ; do \ mkdir -p $(CURDIR)/debian/$$v && \ cd $(CURDIR)/debian/$$v && \ ../../configure \ $(confflags) \ --prefix=/usr \ --mandir=/usr/share/man \ --with-tcl=/usr/lib/$(DEB_HOST_MULTIARCH)/tcl$$v \ --enable-threadsafe \ --soname=legacy \ --disable-rpath \ --dynlink-tools \ --enable-load-extension \ --enable-json \ --enable-fts4 \ --enable-fts5 \ --disable-amalgamation \ --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) \ --libexecdir=\$${libdir}/sqlite3 \ TCLLIBDIR=/usr/lib/tcltk/$(DEB_HOST_MULTIARCH)/sqlite3 \ SHELL=/bin/sh \ $(DDEBUG) ; \ done touch $@ build-arch: build-stamp build-indep: build-stamp build: build-arch build-indep build-stamp: configure dh_testdir for v in $(TCLV_PRIMARY) $(TCLV_SECONDARY) ; do \ $(MAKE) -C$(CURDIR)/debian/$$v ; \ done $(MAKE) -C$(CURDIR)/debian/$(TCLV_PRIMARY) lemon ifeq (,$(findstring $(DEB_BUILD_ARCH_OS),kfreebsd)) # build tools $(MAKE) -C$(CURDIR)/debian/$(TCLV_PRIMARY) showdb showjournal showstat4 showwal sqldiff sqlite3_analyzer sqlite3_rsync endif ifneq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE)) $(MAKE) -C$(CURDIR)/debian/$(TCLV_PRIMARY) lemon endif cd ext/misc && $(HOST_CC) $(LDFLAGS) $(CPPFLAGS) $(CFLAGS) -g -fPIC -I$(CURDIR)/debian/$(TCLV_PRIMARY) -shared csv.c -o csv.so cd ext/icu && $(HOST_CC) $(LDFLAGS) $(CPPFLAGS) $(CFLAGS) -g -fPIC -I$(CURDIR)/debian/$(TCLV_PRIMARY) -I../../src -shared icu.c $(shell $(PKG_CONFIG) --libs --cflags icu-uc icu-io) -o icu.so touch $@ clean: dh_testdir dh_testroot for v in $(TCLV_PRIMARY) $(TCLV_SECONDARY) ; do \ $(RM) -rf $(CURDIR)/debian/$$v ; \ done $(RM) -f configure-stamp build-stamp $(RM) -f config.log config.h pkgIndex.tcl [ ! -f Makefile ] || $(MAKE) distclean $(RM) -f ext/misc/csv.so $(RM) -f ext/icu/icu.so dh_clean install: build dh_testdir dh_testroot $(MAKE) -C$(CURDIR)/debian/$(TCLV_PRIMARY) install DESTDIR=$(DESTDIR) $(MAKE) -C$(CURDIR)/debian/$(TCLV_SECONDARY) install-tcl DESTDIR=$(DESTDIR) chrpath -d $(DESTDIR)/usr/bin/sqlite3 chrpath -d $(DESTDIR)/usr/lib/tcltk/$(DEB_HOST_MULTIARCH)/sqlite3/lib*.so install -d $(DESTDIR)/usr/share/lemon install -m 0664 tool/lempar.c $(DESTDIR)/usr/share/lemon/ ifeq (,$(findstring $(DEB_BUILD_ARCH_OS),kfreebsd)) for f in showdb showjournal showstat4 showwal sqldiff sqlite3_analyzer sqlite3_rsync ; do \ install -m 0775 $(CURDIR)/debian/$(TCLV_PRIMARY)/$$f $(DESTDIR)/usr/bin/ ; \ done endif install -m 0775 $(CURDIR)/debian/$(TCLV_PRIMARY)/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/ install -m 0775 ext/icu/icu.so \ $(DESTDIR)/usr/lib/$(DEB_HOST_MULTIARCH)/sqlite/ # Enhance the pkgIndex.tcl file for the Tcl module. The file generated # by default does not support multiple Tcl versions ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE)) PKGINDEX="$(DESTDIR)/usr/lib/tcltk/$(DEB_HOST_MULTIARCH)/sqlite3/pkgIndex.tcl" ; \ VER=$$(cat VERSION) ; \ echo "if {[package vsatisfies [package provide Tcl] 9]} {" > $$PKGINDEX ; \ echo " package ifneeded sqlite3 $$VER [list load [file join \$$dir libtcl9sqlite$$VER.so] Sqlite3]" >> $$PKGINDEX ; \ echo "} {" >> $$PKGINDEX ; \ echo " package ifneeded sqlite3 $$VER [list load [file join \$$dir libsqlite$$VER.so] Sqlite3]" >> $$PKGINDEX ; \ echo "}" >> $$PKGINDEX else echo "" > $(DESTDIR)/usr/lib/tcltk/$(DEB_HOST_MULTIARCH)/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