SRCDIR = source/
BINDIR = bin/
COMDIR = ../common/

VPATH = $(COMDIR) $(SRCDIR)
INCS = -I$(COMDIR) -I$(SRCDIR)

PACKDEP = $(BINDIR)main.o $(BINDIR)log.o $(BINDIR)gems-server.o \
	$(BINDIR)call_script.o 
COMMONPACKDEP = $(COMDIR)protocol.o $(COMDIR)sighandlers.o

MAINDEP = main.c defaults.h sock_info.h gems-server.h log.h version_server.h \
	common.h version.h protocol.h call_script.h main.h

LOGDEP = log.c log.h version_server.h version.h

SERVERDEP = gems-server.c common.h version.h version_server.h protocol.h \
	defaults.h sock_info.h log.h call_script.h gems-server.h sighandlers.h

SCRIPTDEP = call_script.c defaults.h call_script.h common.h \
	version_server.h version.h

##################################################

.PHONY: all bindir remove clean install uninstall

all: bindir $(BINDIR)gems-server

bindir:
	@if [ ! -d "$(BINDIR)" ] ; then mkdir "$(BINDIR)"; fi

$(BINDIR)gems-server : $(PACKDEP) $(COMMONPACKDEP)
	$(CC) $(CFLAGS) $(CDEFINES) $(INCS) $^ -o $@

$(BINDIR)main.o : $(MAINDEP)
	$(CC) $(CFLAGS) $(CDEFINES) $(INCS) -c $< -o $@

$(BINDIR)log.o : $(LOGDEP)
	$(CC) $(CFLAGS) $(CDEFINES) $(INCS) -c $< -o $@

$(BINDIR)call_script.o : $(SCRIPTDEP)
	$(CC) $(CFLAGS) $(CDEFINES) $(INCS) -c $< -o $@

$(BINDIR)gems-server.o : $(SERVERDEP)
	$(CC) $(CFLAGS) $(CDEFINES) $(INCS) -c $< -o $@

$(COMDIR)protocol.o: protocol.c common.h version.h protocol.h
	cd $(COMDIR) && $(MAKE)	

$(COMDIR)sighandlers.o: ../common/sighandlers.c ../common/sighandlers.h
	cd $(COMDIR) && $(MAKE)	

clean remove:
	rm -f $(PACKDEP) $(BINDIR)gems-server

install: $(BINDIR)gems-server
	install -m755 -D $< $(BINPATH)/gems-server

uninstall:
	rm -fv $(BINPATH)/gems-server
