all:
	make cli
	make file
debug:
	make cli-debug
	make file-debug
cli:
	gcc -c exit.c -o exit.o
	make -C parseopt/ cli
	gcc -c la.c -o la.o
	gcc -c mem.c -o mem.o
	gcc parseopt/parseopt.o exit.o la.o -o sysfence-la
	gcc parseopt/parseopt.o exit.o mem.o -o sysfence-mem
	strip sysfence-la
	strip sysfence-mem
cli-debug:
	gcc -DDEBUG -ggdb -c exit.c -o exit.o
	make -C parseopt/ cli-debug
	gcc -DDEBUG -ggdb -c la.c -o la.o
	gcc -DDEBUG -ggdb -c mem.c -o mem.o
	gcc -ggdb parseopt/parseopt.o exit.o la.o -o sysfence-la
	gcc -ggdb parseopt/parseopt.o exit.o mem.o -o sysfence-mem
	strip sysfence-la
	strip sysfence-mem
file:
	gcc -c exit.c -o exit.o
	gcc -c conditions.c -o conditions.o
	gcc -c xalloc.c -o xalloc.o
	gcc -c getstats.c -o getstats.o
	make -C parseopt/ file
	gcc -c mainloop.c -o mainloop.o
	gcc -c log.c -o log.o
	gcc -c sysfence.c -o sysfence.o
	gcc sysfence.o exit.o xalloc.o getstats.o conditions.o mainloop.o log.o \
		parseopt/lex.o parseopt/parse.o parseopt/confread.o -lpthread \
		-o sysfence
	strip sysfence
file-debug:
	gcc -DDEBUG -ggdb -c exit.c -o exit.o
	gcc -DDEBUG -ggdb -c conditions.c -o conditions.o
	gcc -DDEBUG -ggdb -c xalloc.c -o xalloc.o
	gcc -DDEBUG -ggdb -c getstats.c -o getstats.o
	make -C parseopt/ file-debug
	gcc -DDEBUG -ggdb -c mainloop.c -o mainloop.o
	gcc -DDEBIG -ggdb -c log.c -o log.o
	gcc -DDEBUG -ggdb -c sysfence.c -o sysfence.o
	gcc -ggdb sysfence.o exit.o xalloc.o getstats.o conditions.o mainloop.o log.o \
		parseopt/lex.o parseopt/parse.o parseopt/confread.o -lpthread \
		-o sysfence
clean:
	make -C parseopt/ clean
	rm -f *.o sysfence-la sysfence-mem sysfence
install:
	install -d $(DESTDIR)$(PREFIX)/bin
	install -d $(DESTDIR)/usr/share/doc/sysfence
	install -m 0755 sysfence-mem sysfence-la sysfence $(DESTDIR)$(PREFIX)/bin
	install -m 0644 README doc/example.conf $(DESTDIR)/usr/share/doc/sysfence
