Skip to content

Instantly share code, notes, and snippets.

@MisterRager
Created November 10, 2017 00:16
Show Gist options
  • Save MisterRager/1b4e6851ac06aa843b63a68f1060a66b to your computer and use it in GitHub Desktop.
Save MisterRager/1b4e6851ac06aa843b63a68f1060a66b to your computer and use it in GitHub Desktop.
Build FTS5 Module for SQLite
# http://www.sqlite.org/download.html
SQLITE_VERSION ?= 3200100
SQLITE_YEAR ?= 2017
SQLITE_BASENAME := sqlite-src-$(SQLITE_VERSION)
# Complete URL sample: https://sqlite.org/2017/sqlite-3200100.zip
SQLITE_URL := http://www.sqlite.org/$(SQLITE_YEAR)/$(SQLITE_BASENAME).zip
CC = gcc
CPP = g++
CFLAGS = -ggdb -shared -rdynamic -fPIC
LIB = -ldl -lpthread
UNAME_S := $(shell uname -s)
LIBNAME_BASE = fts5
SQLITE_HEADER = ${SQLITE_BASENAME}/sqlite3.h
FTS_HEADER = ${SQLITE_BASENAME}/fts5.h
FTS_SOURCE = ${SQLITE_BASENAME}/fts5.c
ifeq ($(UNAME_S),Darwin)
LIBNAME = ${LIBNAME_BASE}.dylib
else
LIBNAME = ${LIBNAME_BASE}.so
endif
${LIBNAME}: fts5.c fts5.h sqlite3.h
${CC} $^ -o $@ ${CFLAGS}
sqlite3.h: ${SQLITE_BASENAME}/config.h
cd ${SQLITE_BASENAME} && ${MAKE} sqlite3.c && cp sqlite3.h ../
fts5.c fts5.h: ${SQLITE_BASENAME}/config.h
cd ${SQLITE_BASENAME} && ${MAKE} fts5.c && cp fts5.c ../ && cp fts5.h ../
${SQLITE_BASENAME}/config.h: ${SQLITE_BASENAME}
cd ${SQLITE_BASENAME} && ${MAKE} clean && ./configure
${SQLITE_BASENAME}: ${SQLITE_BASENAME}.zip
unzip -o $@.zip
${SQLITE_BASENAME}.zip:
wget -N -c "${SQLITE_URL}"
clean:
rm -rf ${SQLITE_BASENAME}
rm -f ${SQLITE_BASENAME}.zip
rm -f ${LIBNAME}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment