INCFILE = build/rules/incpre.inc

CC = gcc
DEBUGCFLAGS = -DDEBUG=3 -DLANDISK_LICFILE="\"build/sample-lic.txt\"" -ggdb3
DEBUGLDFLAGS_MALLOC = -L/usr/local/lib -lnjamd -Wl,-R -Wl,/usr/local/lib
DEBUGLDFLAGS =
CFLAGS = -Wall -O2 -D_XOPEN_SOURCE_EXTENDED $(PTHREADCFLAGS) $(DEBUGCFLAGS) $(OSCFLAGS)
LDFLAGS = -lm $(PTHREADLDFLAGS) $(DEBUGLDFLAGS) $(OSLDFLAGS)
LD = $(CC)
-include $(INCFILE)

prefix = /usr/local
PREFIX = $(prefix)
BINS = lanbdd lanbd-test-client
OBJS_lanbdd = lanbdd.o license.o net.o pqueue.o dendian.o lanbd_read.o lanbd_write.o lanbd_whohas.o lanbd-daemon.o blexport.o blcache.o
OBJS_lanbd_test_client = lanbd.o net.o lanbd-test-client.o lanbd_read.o lanbd_write.o lanbd_whohas.o dendian.o

pre:
	@build/rules/incpre.sh
	@$(MAKE) all_real
	@echo "" > $(INCFILE)
	

all: pre

all_real: $(BINS)
#	strip $^

test:
	$(MAKE) DEBUGCFLAGS="-DLANDISK_LICFILE=\\\"build/sample-lic.txt\\\"" DEBUGLDFLAGS=""

lanbdd: $(OBJS_lanbdd)
	$(LD) $(LDFLAGS) -o $@ $^

lanbd-test-client: $(OBJS_lanbd_test_client)
	$(LD) $(LDFLAGS) -o $@ $^

lanbd-test-client.o: lanbd.h config.h Makefile
lanbd_whohas.o: lanbd_whohas.c lanbd_whohas.h config.h lanbdd.h lanbd.h Makefile net.h
lanbd_write.o: lanbd_write.c lanbd_write.h config.h lanbdd.h lanbd.h Makefile net.h
lanbd_read.o: lanbd_read.c lanbd_read.h config.h lanbdd.h lanbd.h Makefile net.h
blexport.o: blexport.c blexport.h lanbd.h config.h Makefile
blcache.o: blcache.c blcache.h lanbd.h config.h Makefile
dendian.o: dendian.c dendian.h Makefile
license.o: license.c license.h lanbd.h config.h Makefile
lanbdd.o: lanbdd.c lanbd.h net.h lanbdd.h dendian.h config.h Makefile
pqueue.o: pqueue.c pqueue.h lanbd.h config.h Makefile
net.o: net.c net.h lanbd.h config.h Makefile
lanbd.o: lanbd.h config.h lanbd.c dendian.h Makefile
	$(CC) $(CFLAGS) $(CPPFLAGS) -U_REENTRANT -c -o $@ $(filter %.c, $^)
lanbd-daemon.o: lanbd.h config.h lanbd.c dendian.h Makefile
	$(CC) $(CFLAGS) $(CPPFLAGS) -DLANBDD -c -o $@ $(filter %.c, $^)

.PHONY: clean install test

clean:
	rm -f $(BINS) *.o
	@echo > $(INCFILE)

install:
	-mkdir -p $(prefix)/bin/
	cp $(BINS) $(prefix)/bin/
