include $(TOP)/etc/$(MACHINE).mk
include $(TOP)/etc/libraries.mk

LOCAL_INC = 	-I$(ALLIANCE_INCLUDE)   \
	        -DMACHINE=$(MACHINE)    \
        	-DMUT_H='<$(MUT_H)>'    \
        	-DMLO_H='<$(MLO_H)>'    \
        	-DBEH_H='<$(BEH_H)>'    \
        	-DBVL_H='<$(BVL_H)>'    \
        	-DLOG_H='<$(LOG_H)>'

LOCAL_LIB =	-L$(ALLIANCE_LIB)	\
		$(MUT_L)                \
        	$(BHL_L)                \
        	$(BVL_L)                \
        	$(BEH_L)                \
        	$(LOG_L)

LOCAL_OBJ =	ablorder/sl_order.o \
        	bddorder/bdd_order.o \
        	compil/sl_compile.o compil/sl_util.o \
        	facto/bdd2.o facto/cliqueZ.o facto/jacoX.o facto/sl_DC.o	\
		facto/optimexpr.o facto/optim.o facto/sl_facto.o \
        	prepar/bib.o prepar/carac.o prepar/compact.o prepar/prep.o \
        	proof/proof_util.o proof/proof_main.o fpgasce/x3000.o fpgasce/lut.o

LOCAL_CFLAGS = $(CFLAGS) -c -DMACHINE=$(MACHINE)
LOCAL_CPPFLAGS = $(CPPFLAGS)

../bin/proof : $(LOCAL_OBJ)
	$(CC) -o ../bin/proof $(LOCAL_OBJ) $(LOCAL_LIB) -lm

ablorder/sl_order.o : ablorder/sl_order.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) ablorder/sl_order.c
	$(MV) sl_order.o ablorder/
bddorder/bdd_order.o : bddorder/bdd_order.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) bddorder/bdd_order.c
	$(MV) bdd_order.o bddorder/
compil/sl_compile.o : compil/sl_compile.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) compil/sl_compile.c
	$(MV) sl_compile.o compil/
compil/sl_util.o : compil/sl_util.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) compil/sl_util.c
	$(MV) sl_util.o compil/
facto/bdd2.o : facto/bdd2.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) facto/bdd2.c
	$(MV) bdd2.o facto/
facto/cliqueZ.o : facto/cliqueZ.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) facto/cliqueZ.c
	$(MV) cliqueZ.o facto/
facto/jacoX.o : facto/jacoX.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) facto/jacoX.c
	$(MV) jacoX.o facto/
facto/sl_DC.o : facto/sl_DC.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) facto/sl_DC.c
	$(MV) sl_DC.o facto/
facto/optimexpr.o : facto/optimexpr.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) facto/optimexpr.c
	$(MV) optimexpr.o facto/
facto/optim.o : facto/optim.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) facto/optim.c
	$(MV) optim.o facto/
facto/sl_facto.o : facto/sl_facto.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) facto/sl_facto.c
	$(MV) sl_facto.o facto/
prepar/bib.o : prepar/bib.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) prepar/bib.c
	$(MV) bib.o prepar/
prepar/carac.o : prepar/carac.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) prepar/carac.c
	$(MV) carac.o prepar/
prepar/compact.o : prepar/compact.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) prepar/compact.c
	$(MV) compact.o prepar/
prepar/prep.o : prepar/prep.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) prepar/prep.c
	$(MV) prep.o prepar/
proof/proof_util.o : proof/proof_util.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) proof/proof_util.c
	$(MV) proof_util.o proof/
proof/proof_main.o : proof/proof_main.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) proof/proof_main.c
	$(MV) proof_main.o proof/
fpgasce/x3000.o : fpgasce/x3000.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) fpgasce/x3000.c
	$(MV) x3000.o fpgasce/
fpgasce/lut.o : fpgasce/lut.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) fpgasce/lut.c
	$(MV) lut.o fpgasce/
distrib : ../bin/proof
	@$(TOUCH) distrib
	@if [ -f ../bin/INSTALLED ] ; then $(RM) ../bin/INSTALLED ; else exit 0 ; fi

clean :
	$(RM) -f $(LOCAL_OBJ) ../bin/proof distrib
