From e3a41da5a0a3d70ac53591f2b66144f2be2b3871 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yaroslav=20de=20la=20Pe=C3=B1a=20Smirnov?= Date: Sun, 7 Nov 2021 02:02:45 +0300 Subject: Initial commit. Almost functional but still missing features and lacking testing. --- Makefile | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 Makefile (limited to 'Makefile') diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..ed44d6e --- /dev/null +++ b/Makefile @@ -0,0 +1,47 @@ +CC?=gcc +XFLAGS=-D_XOPEN_SOURCE=500 -D_POSIX_C_SOURCE=200809L +CFLAGS?=-std=c99 -O2 -Wall $(XFLAGS) + +LIBS:=-lexif +LIBS+=$(shell pkg-config --cflags --libs GraphicsMagickWand) +IDIRS:=$(addprefix -iquote,include unja/src unja parcini/include) + +BUILDIR?=build/release + +ifdef DEBUG +BUILDIR:=build/debug +CFLAGS:=-std=c99 -O0 -g -DDEBUG $(XFLAGS) +endif + +OBJDIR=$(BUILDIR)/obj + +UNJA_SRCS+=$(shell find unja -name '*.c' -not -path '*/tests/*') +UNJA_OBJS:=$(UNJA_SRCS:%.c=$(OBJDIR)/%.o) +PARCINI_SRCS:=$(wildcard parcini/src/*.c) +PARCINI_OBJS:=$(PARCINI_SRCS:%.c=$(OBJDIR)/%.o) +REVELA_SRCS:=$(shell find src -name '*.c' -not -path '*/tests/*') +REVELA_OBJS:=$(REVELA_SRCS:%.c=$(OBJDIR)/%.o) +ALL_OBJS:=$(UNJA_OBJS) $(PARCINI_OBJS) $(REVELA_OBJS) +TEST_OBJS:=$(filter-out $(OBJDIR)/src/revela.o,$(ALL_OBJS)) + +all: revela + +test: tests/config tests/fs + +tests/%: $(OBJDIR)/src/tests/%.o $(TEST_OBJS) + mkdir -p $(BUILDIR)/$(@D) + $(CC) -o $(BUILDIR)/$@ $^ $(LDFLAGS) $(IDIRS) $(LIBS) + +$(OBJDIR)/%.o: %.c + mkdir -p $(@D) + $(CC) -c $(CFLAGS) $(IDIRS) -o $@ $< $(LIBS) + +revela: $(ALL_OBJS) + $(CC) $(LDFLAGS) -o $(BUILDIR)/$@ $^ $(LIBS) $(CFLAGS) + +clean: + rm -r build + +.PHONY: clean all test + +.PRECIOUS: $(OBJDIR)/src/tests/%.o -- cgit v1.2.3