cpfsyslog/src/Makefile

41 lines
1013 B
Makefile

CC=cc
override CFLAGS += -g -I. -Wall -Wpedantic -I ../deps/build/usr/local/include/ -std=gnu11
LIBPATH = ../deps/build/usr/local/lib/
LDFLAGS = -L $(LIBPATH)
LDLIBS = -ljson-c -lcurl -lpthread -lGeoIP
LDFLAGS += $(LDLIBS)
CFLAGS_STATIC = $(CFLAGS) --static
OBJ=helpers.o pfparser.o sysparser.o msgbuffer.o geo.o elasticsearch.o server.o vendor/argparse.o
TESTS=$(patsubst %.c,%.test,$(wildcard tests/*.c))
%.o: %.c $(DEPS)
$(CC) -c -o $@ $< $(CFLAGS)
csyslog: $(OBJ) main.o
$(CC) -o $@ $^ $(LDFLAGS)
static: $(OBJ) main.o
$(CC) -o csyslog $^ $(LDFLAGS) --static
.PHONY: docker
docker: static
sudo docker build -t csyslog .
.PHONY: clean
clean: cleantests
rm -vf *.o csyslog
.PHONY: cleantests
cleantests:
rm -vf tests/*.test
$(TESTS): tests/%.test: tests/%.c $(OBJ)
$(CC) -o $@ $(OBJ) tests/$*.c $(CFLAGS) $(LDFLAGS)
.PHONY: tests
tests: $(TESTS)
@bash -c 'for test in $^ ; do printf "======== %-30s ========\n" $$test ; LD_LIBRARY_PATH=$(LIBPATH) ./$$test ; printf "%48s\n" "RC: $$?" ; done'