Files
lf/Makefile
2021-11-10 10:46:55 -05:00

46 lines
1.2 KiB
Makefile

# Makefile for easily building LF on MacOS, Linux, BSD, etc.
UNAME_S := $(shell uname -s | tr '[:upper:]' '[:lower:]')
CC := cc
CFLAGS := -O3 -std=c99
SQLITE3_FLAGS := \
-Inative/sqlite3 \
-DVERSION=\"3.28.0\" \
-DSTDC_HEADERS=1 \
-DHAVE_SYS_TYPES_H=1 \
-DHAVE_SYS_STAT_H=1 \
-DHAVE_STDLIB_H=1 \
-DHAVE_STRING_H=1 \
-DHAVE_MEMORY_H=1 \
-DHAVE_STRINGS_H=1 \
-DHAVE_INTTYPES_H=1 \
-DHAVE_STDINT_H=1 \
-DHAVE_UNISTD_H=1 \
-DHAVE_USLEEP=1 \
-DHAVE_LOCALTIME_R=1 \
-DHAVE_GMTIME_R=1 \
-DHAVE_DECL_STRERROR_R=1 \
-DHAVE_STRERROR_R=1 \
-DSQLITE_OMIT_LOAD_EXTENSION=1 \
-DSQLITE_THREADSAFE=0
all: lf
lf: native_if
go build -trimpath -ldflags -s -o ./lf cmd/lf/lf.go
native_if: FORCE
if [ ! -f native/db_$(UNAME_S).o ]; then $(CC) $(CFLAGS) -c -o native/db_$(UNAME_S).o native/db.c; fi
if [ ! -f native/sqlite3_$(UNAME_S).o ]; then $(CC) $(CFLAGS) $(SQLITE3_FLAGS) -c -o native/sqlite3_$(UNAME_S).o native/sqlite3/sqlite3.c; fi
native: FORCE
$(CC) $(CFLAGS) -c -o native/db_$(UNAME_S).o native/db.c
$(CC) $(CFLAGS) $(SQLITE3_FLAGS) -c -o native/sqlite3_$(UNAME_S).o native/sqlite3/sqlite3.c
clean: FORCE
rm -rf lf lf-db-test native/*.o native/*.a
FORCE: