CFLAGS	= -g  
KFLAGS 	= -R 
KSRCS	= list.kl1 synch.kl1 parser.kl1 input.kl1 place.kl1 klic2bss.kl1 tdep.kl1 bsp.kl1 kopr.kl1 result.kl1 trace.kl1 dev.kl1 bswaltz.kl1 bsgroeb.kl1
KOBJS	= list.o synch.o parser.o input.o place.o klic2bss.o tdep.o bsp.o kopr.o result.o trace.o dev.o bswaltz.o bsgroeb.o
CFILES	= list.c synch.c parser.c input.c place.c klic2bss.c tdep.c bsp.c kopr.c result.c trace.c dev.c bswaltz.c bsgroeb.c

INCLUDES = $(INC_PATH)
LIBS	=  $(LIB_PATH) -lbss -lklic -lnewt -lGroeb -lgmp


all: build archive

build: $(KOBJS)

$(KOBJS): $(KSRCS)
	cp pointers.h $(ROOT)/include;\
	$(KLIC) -c $(KFLAGS) $(INCLUDES) $(KSRCS);\

testw: all
	$(KLIC) -o testbsw $(KFLAGS) $(INCLUDES) $(LIBS) testbsw.kl1

testw1: all
	$(KLIC) -o testbsw1 $(KFLAGS) $(INCLUDES) $(LIBS) testbsw1.kl1

combine: all bsgroeb.o
	$(KLIC) -o combine $(KFLAGS) $(INCLUDES) $(LIBS) bswaltz.o bsgroeb.o combine.kl1

Bifurcation: bsgroeb.o
	$(KLIC) -o Bifurcation $(KFLAGS) $(INCLUDES) $(LIBS)  bsgroeb.o Bifurcation.kl1

Cox: bsgroeb.o
	$(KLIC) -o Cox $(KFLAGS) $(INCLUDES) $(LIBS)  bsgroeb.o Cox.kl1

Cyclo: bsgroeb.o
	$(KLIC) -o Cyclo $(KFLAGS) $(INCLUDES) $(LIBS)  bsgroeb.o Cyclo.kl1

Griewank: bsgroeb.o
	$(KLIC) -o Griewank $(KFLAGS) $(INCLUDES) $(LIBS)  bsgroeb.o Griewank.kl1

Parabola: bsgroeb.o
	$(KLIC) -o Parabola $(KFLAGS) $(INCLUDES) $(LIBS)  bsgroeb.o Parabola.kl1

Sympa: bsgroeb.o
	$(KLIC) -o Sympa $(KFLAGS) $(INCLUDES) $(LIBS)  bsgroeb.o Sympa.kl1

archive:
	ar rcv $(ROOT)/lib/libbss.a $(OBJS) $(KOBJS);\
	ranlib $(ROOT)/lib/libbss.a;\
        cp ./pointers.h $(ROOT)/include;\

clean:
	rm -f *.o $(CFILES) test atom.[ch] funct.[ch]  *.db *.ext core

