#!/bin/bash

# turn on verbose debugging output
set -x
# make errors fatal
set -e

SQLITE_VERSION="3.50.3"
SQLITE_VERSION_NUM="3500300"
SQLITE_SITE="https://www.sqlite.org/2025/"
SQLITE_SOURCE_DIR="sqlite-amalgamation-$SQLITE_VERSION_NUM"
SQLITE_ARCHIVE="$SQLITE_SOURCE_DIR.zip"

top=`pwd`
stage="$top/stage"
stage_release="$stage/lib/release"

OS="darwin64"

BUILDFLAGS="-m64 -fPIC -fno-strict-aliasing -fno-stack-protector -mmacosx-version-min=10.8"
DEBUGFLAGS="-g"
OPTFLAGS="-O2 -msse2 -mfpmath=sse -fno-delete-null-pointer-checks"
CONFIGFLAGS="-DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_ENABLE_SESSION=1 -DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_ENABLE_DBSTAT_VTAB=1 -DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_FTS3_PARENTHESIS=1 -DSQLITE_ENABLE_GEOPOLY=1 -DSQLITE_ENABLE_JSON1=1 -DSQLITE_ENABLE_RTREE=1 -DSQLITE_ENABLE_STMTVTAB=1 -DSQLITE_ENABLE_RBU=1 -DSQLITE_THREADSAFE=1"

cd $top
rm -rf "$stage/"
mkdir -p "$stage/include" "$stage_release"

if ! [ -d "$SQLITE_SOURCE_DIR" ] ; then
	if ! [ -f "$SQLITE_ARCHIVE" ] ; then
		curl -L -o "$SQLITE_ARCHIVE" "$SQLITE_SITE$SQLITE_ARCHIVE"
		if ! [ -f "$SQLITE_ARCHIVE" ] ; then
			exit 1
		fi
	fi
	unzip -q "$SQLITE_ARCHIVE"
fi

pushd "$SQLITE_SOURCE_DIR"

clang $OPTFLAGS $DEBUGFLAGS $BUILDFLAGS $CONFIGFLAGS -c sqlite3.c
ar r libsqlite3.a sqlite3.o
rm -f sqlite3.o

cp -a sqlite3.h "$stage/include/"
mv -f libsqlite3.a "$stage_release/"

popd

DATE=`date +%Y%m%d`
TARBALL="libsqlite3-$SQLITE_VERSION-$OS-$DATE.tar.bz2"
pushd "$stage"
tar cjf "../$TARBALL" .
popd
md5 -r "$TARBALL"
shasum "$TARBALL"
