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

LOCAL_INC = -DMUT_H='<mut315.h>' -DMLO_H='<mlo404.h>' -DMPH_H='<mph402.h>' \
            -DBEH_H='<beh106.h>' -DLOG_H='<log200.h>' -DBVL_H='<bvl108.h>'

LOCAL_LIB = -L$(ALLIANCE_LIB) -lMgn319 -lMpu402 -lMlu411 -lMmg401 -lMcp401 -lMcl408 -lMap402 -lMal404 -lMhl402 -lMvl406 -lMsl608 -lMel406 -lMph402 -lMlo404 -lBvl108 -lBeh106 -llog200 -lMut315 -lm

LOCAL_OBJ = ablorder/sl_order.o \
        bddorder/bdd_order.o \
        compil/sl_compile.o compil/sl_util.o \
        facto/bdd2.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 fpga/x3000.o

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

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

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/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/
fpga/x3000.o : fpga/x3000.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) fpga/x3000.c
	$(MV) x3000.o fpga/
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
