CC = gcc CFLAGS = -Wall -g -std=gnu2x -DMG_TLS=MG_TLS_OPENSSL -ffunction-sections -fdata-sections LDFLAGS = INCLUDES = -I./src/lib -I./src SRCS = $(wildcard src/lib/*.c src/file_db/*.c src/*.c) OBJS = $(SRCS:.c=.o) TARGET = auth_service BUILD_DIR=./build CROSS_COMPILE = LIBS = -lpthread -lcrypto -lssl USE_SQLITE3 ?= 0 WERROR ?= 0 ifeq ($(shell uname), Linux) LDFLAGS += -Wl,--gc-sections endif ifeq ($(USE_SQLITE3), 1) CFLAGS += -DUSE_SQLITE3 LIBS += -lsqlite3 SRCS = $(wildcard src/lib/*.c src/sqlite_db/*.c src/file_db/*.c src/*.c) endif ifeq ($(WERROR), 1) CFLAGS += -Werror endif all: $(TARGET) $(TARGET): $(OBJS) $(CROSS_COMPILE)$(CC) $(LDFLAGS) $^ -o $@ $(LIBS) %.o: %.c $(CROSS_COMPILE)$(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@ clean: rm -f $(OBJS) $(TARGET) $(shell find . -type f -name '*.log') users.db users_db.json test: $(TARGET) bash ./tests.sh