CFLAGS=-Wall -Wextra -ggdb LIBWS=./vendor/libmicrohttpd/ LIBSHA=./vendor/sha256/ SHARED_LIB_FILES=output/libpath.a output/libnoh.a output/libusers.a output/libsha.a SHARED_LIBS=-L./output -lpath -lnoh -lusers -lsha ################################################################################ SERVER_LDFLAGS=-lm -luuid -L $(LIBWS)lib -lmicrohttpd $(SHARED_LIBS) SERVER_INCL_FLAGS=-I$(LIBWS)include SERVER_SRC=src/server.c \ src/id_store.c src/library.c \ src/opds_handler.c src/get_handler.c server: output/server output/server: $(SERVER_SRC) $(SHARED_LIB_FILES) | output gcc $(CFLAGS) $(SERVER_INCL_FLAGS) -o output/server src/server.c $(SERVER_LDFLAGS) ################################################################################ USERCTL_LDFLAGS=-lm $(SHARED_LIBS) USERCTL_INCL_FLAGS= USERCTL_SRC=src/userctl.c userctl: output/userctl output/userctl: $(USERCTL_SRC) $(SHARED_LIB_FILES) | output gcc $(CFLAGS) $(USERCTL_INCL_FLAGS) -o output/userctl src/userctl.c $(USERCTL_LDFLAGS) ################################################################################ output/libusers.a: src/users.c src/users.h output/libsha.a | output gcc $(CFLAGS) -x c -c -o output/users.o src/users.c -L ./output -lnoh -lsha -I$(LIBSHA) ar rcsD output/libusers.a output/users.o output/libsha.a: $(LIBSHA)sha256.c $(LIBSHA)sha256.h | output gcc $(CFLAGS) -c -o output/sha.o $(LIBSHA)sha256.c ar rcsD output/libsha.a output/sha.o output/libpath.a: src/path.c src/path.h | output gcc $(CFLAGS) -x c -c -o output/path.o src/path.c -L ./output -lnoh ar rcsD output/libpath.a output/path.o output/libnoh.a: src/noh.h | output gcc $(CFLAGS) -x c -c -o output/noh.o src/noh.h -DNOH_IMPLEMENTATION ar rcsD output/libnoh.a output/noh.o ################################################################################ output: mkdir -p output