all:
docker compose up -d --build
docker compose exec shell make build
build: build_sqlite build_project
build_project:
gcc ft.c -ljansson libsqlite3.a -static -o ft
build_sqlite:
gcc -c -static sqlite/sqlite3.c -O3 \
-DNDEBUG \
-DSQLITE_USE_URI \
-DSQLITE_ENABLE_FTS5 \
-DSQLITE_ENABLE_JSON1 \
-DSQLITE_ENABLE_RTREE \
-DSQLITE_ENABLE_UPDATE_DELETE_LIMIT \
-DSQLITE_ENABLE_PREUPDATE_HOOK \
-DSQLITE_ENABLE_UNLOCK_NOTIFY \
-DSQLITE_MAX_SQL_LENGTH=1000000 \
-DSQLITE_DEFAULT_PAGE_SIZE=4096 \
-DSQLITE_ENABLE_SESSION \
-DSQLITE_ENABLE_DESERIALIZE \
-DSQLITE_USE_URI \
-DSQLITE_DQS \
-DSQLITE_TEMP_STORE=2 \
-DSQLITE_DEFAULT_MEMSTATUS \
-DSQLITE_ENABLE_STAT4 \
-DSQLITE_ENABLE_DBSTAT_VTAB \
-DSQLITE_ALLOW_URI_AUTHORITY \
-DSQLITE_ENABLE_COLUMN_METADATA \
-DSQLITE_ENABLE_UNLOCK_NOTIFY \
-DSQLITE_USE_ALLOCA \
-DSQLITE_ENABLE_PREUPDATE_HOOK \
-DSQLITE_ENABLE_MEMSYS5 \
-DSQLITE_DEFAULT_JOURNAL_MODE='"wal"' \
-DSQLITE_DEFAULT_SYNCHRONOUS=0 \
-DSQLITE_OMIT_SHARED_CACHE \
-DSQLITE_ENABLE_LOAD_EXTENSION \
-DSQLITE_THREADSAFE=1 -o sqlite3.o -march=native -flto
ar rcs libsqlite3.a sqlite3.o