CC=gcc
LDFLAGS=-lpthread
CFLAGS=-Wall
objects=exit.o conditions.o xalloc.o getstats.o mainloop.o log.o sysfence.o
parseopt=parseopt/{confread,lex,parse}.o

%.o: %.c
	$(CC) -c $(CFLAGS) $< -o $@

sysfence: $(objects)
	make -C parseopt/ all
	$(CC) $(CFLAGS) $(LDFLAGS) -o sysfence $(objects) $(parseopt)
	strip sysfence

all: sysfence

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/ 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
install:
	install -d $(DESTDIR)$(PREFIX)/bin
	install -d $(DESTDIR)/usr/share/doc/sysfence
	install -m 0755 sysfence $(DESTDIR)$(PREFIX)/bin
	install -m 0644 README doc/example.conf $(DESTDIR)/usr/share/doc/sysfence
