# Template file for 'sqlite'
pkgname=sqlite
version=3.45.3
revision=2
_amalgamationver=$(printf "%d%02d%02d00\n" ${version//./ })
build_style=gnu-configure
# Even when it is included in the build, memsys5 is disabled by default.
configure_args="--enable-threadsafe --enable-load-extension --enable-math
 --enable-fts3 --enable-fts4 --enable-fts5 --enable-memsys5
 --enable-rtree --enable-geopoly
 --with-tcl=$XBPS_CROSS_BASE/usr/lib"
hostmakedepends="tcl"
makedepends="libedit-devel zlib-devel tcl-devel"
short_desc="SQL Database Engine in a C Library"
maintainer="Orphaned <orphan@voidlinux.org>"
license="Public Domain"
homepage="https://sqlite.org/"
changelog="https://www.sqlite.org/changes.html"
distfiles="https://sqlite.org/2024/sqlite-src-${_amalgamationver}.zip"
checksum=ec0c959e42cb5f1804135d0555f8ea32be6ff2048eb181bccd367c8f53f185d1

CFLAGS="-DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_COLUMN_METADATA \
 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_SECURE_DELETE \
 -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS4 \
 -DSQLITE_ENABLE_FTS3_TOKENIZER=1 -DSQLITE_ENABLE_BATCH_ATOMIC_WRITE=1 \
 -DSQLITE_ENABLE_DESERIALIZE -DSQLITE_USE_URI=1"
# explicitly enable fdatasync
CFLAGS+=" -DHAVE_FDATASYNC"
disable_parallel_build=yes

# explicitly set byte order to avoid bad autodetection macros
case "$XBPS_TARGET_ENDIAN" in
	le) CFLAGS+=" -DSHA3_BYTEORDER=1234 -DSQLITE_BYTEORDER=1234";;
	be) CFLAGS+=" -DSHA3_BYTEORDER=4321 -DSQLITE_BYTEORDER=4321";;
esac


_tools="showdb showjournal showstat4 showwal sqldiff sqlite3_analyzer"
post_build() {
	make $_tools
	cd tool
	echo $CC $CFLAGS $LDFLAGS -o lemon lemon.c
	$CC $CFLAGS $LDFLAGS -o lemon lemon.c
}

sqlite-devel_package() {
	depends="${sourcepkg}>=${version}_${revision}"
	short_desc+=" - development files"
	pkg_install() {
		vmove usr/include
		vmove usr/lib/pkgconfig
		vmove "usr/lib/*.a"
		vmove "usr/lib/*.so"
	}
}

sqlite-lemon_package() {
	short_desc="LALR(1) Parser Generator from sqlite"
	pkg_install() {
		vbin tool/lemon
		vinstall tool/lempar.c 644 usr/share/lemon
	}
}

sqlite-tools_package() {
	short_desc+=" - tools"
	pkg_install() {
		local t
		for t in $_tools; do
			vbin $t
		done
	}
}

sqlite-tcl_package() {
	short_desc+=" - tcl bindings"
	pkg_install() {
		vmove "usr/lib/tcl*"
	}
}
