#
# Makefile for dribble
#
# (C) 2000, Ingvar Mattsson, <ingvar@bofh.se>
#

# Paths
LIBPATH=/usr/local/lib
MANPATH=/usr/local/man
INCPATH=/usr/local/include
# Enter default playground here
# BASEPATH=/usr/local/share/dribble
BASEPATH=/home/ingvar/src/dribble/playground

PROGRAMS=mapbuilder wfshell wfnetshell wf-server
DIRS=testsys
LIBRARIES=wflib.a

# targets
all: $(PROGRAMS) $(DIRS)
testsys: wflib.a wfnetlib.a wf-engine.h llist.h
	(cd testsys;make all)

mapbuilder: mapbuilder.o llist.o
	$(CC) -o mapbuilder $+

mapbuilder.o: mapbuilder.c llist.h
	$(CC) $(CFLAGS) -c $< -DBASEPATH="\"$(BASEPATH)\""

wflib.a: wf-engine.o llist.o
	$(AR) rcs wflib.a $+
	ranlib wflib.a

wfnetlib.a: wf-client.o wfclientlib.o llist.o
	$(AR) rcs wfnetlib.a $+
	ranlib wfnetlib.a

wf-engine.o: wf-engine.c wf-engine.h llist.h
	$(CC) $(CFLAGS) -c $< -DBASEPATH="\"$(BASEPATH)\""

llist.o: llist.c llist.h
	$(CC) $(CFLAGS) -c $<

wfshell.o: wfshell.c llist.h wf-engine.h
	$(CC) $(CFLAGS) -c $<

wfshell: wfshell.o wflib.a
	 $(CC) $(CFLAGS) -o wfshell $+

wfnetshell: wfshell.o wfnetlib.a
	 $(CC) $(CFLAGS) -o wfnetshell $+
clean:
	$(RM) -f *.o *~ core
	(cd docs && make clean)
	(cd testsys && make clean)

dist-clean: clean
	$(RM) -f *.a *.so $(PROGRAMS)
	(cd testsys && make dist-clean)
	rm -f playground/actions/*/items/*

wfservlib.o: wf-net.c llist.h wf-engine.h wf-net.h
	$(CC) $(CFLAGS) -c wf-net.c -o wfservlib.o -DSERVER

wfclientlib.o: wf-net.c llist.h wf-net.h
	$(CC) $(CFLAGS) -c wf-net.c -o wfclientlib.o -DCLIENT

wf-server.o: wf-server.c wf-net.h
	$(CC) $(CFLAGS) -c wf-server.c

wf-server: wf-server.o wfservlib.o wflib.a
	$(CC) $(CFLAGS) -o wf-server $+
