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

LOCAL_INC =	-I$(ALLIANCE_INCLUDE)   \
        	-DMUT_H='<$(MUT_H)>'    \
        	-DMLO_H='<$(MLO_H)>'    \
        	-DMPH_H='<$(MPH_H)>'    \
        	-DBEH_H='<$(BEH_H)>'    \
        	-DBHL_H='<$(BHL_H)>'    \
        	-DBVL_H='<$(BVL_H)>'    \
		-DIAC_H='<$(IAC_H)>' \
        	-DICU_H='<$(ICU_H)>' \
        	-DICN_H='<$(ICN_H)>' \
        	-DLOG_H='<$(LOG_H)>'


LOCAL_LIB = 	-L$(ALLIANCE_LIB)	\
		$(MUT_L)                \
        	$(MGN_L)                \
        	$(MPU_L)                \
        	$(MLU_L)                \
        	$(MMG_L)                \
        	$(MCP_L)                \
        	$(MCL_L)                \
        	$(MAP_L)                \
        	$(MAL_L)                \
        	$(MHL_L)                \
        	$(MVL_L)                \
        	$(MSL_L)                \
        	$(MEL_L)                \
        	$(MPH_L)                \
        	$(MLO_L)                \
        	$(BVL_L)                \
        	$(BEH_L)                \
        	$(ICU_L)                \
        	$(ICA_L)                \
        	$(ICC_L)                \
        	$(ICN_L)                \
        	$(LOG_L)

LOCAL_OBJ =	ablorder/sl_order.o					\
        	bddorder/bdd_order.o					\
        	carac4/sens.o						\
        	cccc/genicon.o cccc/c4_icon.o cccc/c4.o			\
		cccc/c4_debug.o cccc/c4_genlib.o			\
		cccc/c4_stretch.o cccc/c4_lofig.o			\
        	compil/lax_param.o compil/sl_compile.o compil/sl_util.o \
        	decomp/dec4.o decomp/high1.o decomp/low1.o decomp/not1.o\
		decomp/tie.o decomp/not1p.o decomp/buf.o decomp/latch1.o\
		decomp/latch2.o decomp/bus1.o decomp/latch1n.o		\
		decomp/latch2n.o decomp/bd1.o decomp/bd1n.o		\
        	facto/jacoX.o facto/cliqueZ.o facto/bdd2.o		\
		facto/sl_DC.o facto/optimexpr.o facto/optim.o		\
		facto/sl_facto.o					\
        	mapping/moteur.o mapping/generic.o mapping/arbres.o	\
		mapping/compile.o mapping/cout.o mapping/decomp.o	\
		mapping/display.o mapping/mapper.o mapping/oper.o	\
		mapping/regles.o mapping/util.o				\
        	menu/auvol.o menu/sl_corps.o				\
        	mbk/sl_mbk.o						\
        	prepar/balance.o prepar/bib.o prepar/carac.o		\
		prepar/compact.o prepar/devxor.o prepar/flatpol.o	\
		prepar/map.o prepar/post.o prepar/prep.o		\
		param/sl_param.o					\
        	proof/proof_util.o synthe/sl_system.o			\
		synthe/sl_systemp.o synthe/sl_main.o			\
        	fpgasce/x3000.o	fpgasce/lut.o

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

../bin/logic : $(LOCAL_OBJ)
	$(CC) -o ../bin/logic $(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/
carac4/sens.o : carac4/sens.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) carac4/sens.c
	$(MV) sens.o carac4/
cccc/genicon.o : cccc/genicon.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) cccc/genicon.c
	$(MV) genicon.o cccc/
cccc/c4_icon.o : cccc/c4_icon.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) cccc/c4_icon.c
	$(MV) c4_icon.o cccc/
cccc/c4.o : cccc/c4.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) cccc/c4.c
	$(MV) c4.o cccc/
cccc/c4_debug.o : cccc/c4_debug.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) cccc/c4_debug.c
	$(MV) c4_debug.o cccc/
cccc/c4_genlib.o : cccc/c4_genlib.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) cccc/c4_genlib.c
	$(MV) c4_genlib.o cccc/
cccc/c4_stretch.o : cccc/c4_stretch.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) cccc/c4_stretch.c
	$(MV) c4_stretch.o cccc/
cccc/c4_lofig.o : cccc/c4_lofig.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) cccc/c4_lofig.c
	$(MV) c4_lofig.o cccc/
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/
compil/lax_param.o : compil/lax_param.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) compil/lax_param.c
	$(MV) lax_param.o compil/
decomp/dec4.o : decomp/dec4.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) decomp/dec4.c
	$(MV) dec4.o decomp/
decomp/tie.o : decomp/tie.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) decomp/tie.c
	$(MV) tie.o decomp/
decomp/high1.o : decomp/high1.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) decomp/high1.c
	$(MV) high1.o decomp/
decomp/low1.o : decomp/low1.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) decomp/low1.c
	$(MV) low1.o decomp/
decomp/not1.o : decomp/not1.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) decomp/not1.c
	$(MV) not1.o decomp/
decomp/not1p.o : decomp/not1p.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) decomp/not1p.c
	$(MV) not1p.o decomp/
decomp/buf.o : decomp/buf.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) decomp/buf.c
	$(MV) buf.o decomp/
decomp/latch1.o : decomp/latch1.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) decomp/latch1.c
	$(MV) latch1.o decomp/
decomp/latch2.o : decomp/latch2.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) decomp/latch2.c
	$(MV) latch2.o decomp/
decomp/bd1.o : decomp/bd1.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) decomp/bd1.c
	$(MV) bd1.o decomp/
decomp/bd1n.o : decomp/bd1n.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) decomp/bd1n.c
	$(MV) bd1n.o decomp/
decomp/latch1n.o : decomp/latch1n.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) decomp/latch1n.c
	$(MV) latch1n.o decomp/
decomp/latch2n.o : decomp/latch2n.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) decomp/latch2n.c
	$(MV) latch2n.o decomp/
decomp/bus1.o : decomp/bus1.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) decomp/bus1.c
	$(MV) bus1.o decomp/
facto/jacoX.o : facto/jacoX.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) facto/jacoX.c
	$(MV) jacoX.o facto/
facto/cliqueZ.o : facto/cliqueZ.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) facto/cliqueZ.c
	$(MV) cliqueZ.o facto/
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/
mapping/arbres.o : mapping/arbres.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) mapping/arbres.c
	$(MV) arbres.o mapping/
mapping/compile.o : mapping/compile.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) mapping/compile.c
	$(MV) compile.o mapping/
mapping/cout.o : mapping/cout.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) mapping/cout.c
	$(MV) cout.o mapping/
mapping/decomp.o : mapping/decomp.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) mapping/decomp.c
	$(MV) decomp.o mapping/
mapping/display.o : mapping/display.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) mapping/display.c
	$(MV) display.o mapping/
mapping/generic.o : mapping/generic.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) mapping/generic.c
	$(MV) generic.o mapping/
mapping/mapper.o : mapping/mapper.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) mapping/mapper.c
	$(MV) mapper.o mapping/
mapping/moteur.o : mapping/moteur.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) mapping/moteur.c
	$(MV) moteur.o mapping/
mapping/oper.o : mapping/oper.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) mapping/oper.c
	$(MV) oper.o mapping/
mapping/regles.o : mapping/regles.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) mapping/regles.c
	$(MV) regles.o mapping/
mapping/util.o : mapping/util.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) mapping/util.c
	$(MV) util.o mapping/
menu/auvol.o : menu/auvol.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) menu/auvol.c
	$(MV) auvol.o menu/
menu/sl_corps.o : menu/sl_corps.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) menu/sl_corps.c
	$(MV) sl_corps.o menu/
mbk/sl_mbk.o : mbk/sl_mbk.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) mbk/sl_mbk.c
	$(MV) sl_mbk.o mbk/
prepar/balance.o : prepar/balance.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) prepar/balance.c
	$(MV) balance.o prepar/
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/devxor.o : prepar/devxor.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) prepar/devxor.c
	$(MV) devxor.o prepar/
prepar/flatpol.o : prepar/flatpol.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) prepar/flatpol.c
	$(MV) flatpol.o prepar/
prepar/map.o : prepar/map.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) prepar/map.c
	$(MV) map.o prepar/
prepar/post.o : prepar/post.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) prepar/post.c
	$(MV) post.o prepar/
prepar/prep.o : prepar/prep.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) prepar/prep.c
	$(MV) prep.o prepar/
param/sl_param.o : param/sl_param.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) param/sl_param.c
	$(MV) sl_param.o param/
proof/proof_util.o : proof/proof_util.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) proof/proof_util.c
	$(MV) proof_util.o proof/
synthe/sl_system.o : synthe/sl_system.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) -DALLIANCE_VERSION=$(ALLIANCE_VERSION) synthe/sl_system.c
	$(MV) sl_system.o synthe/
synthe/sl_systemp.o : synthe/sl_systemp.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) synthe/sl_systemp.c
	$(MV) sl_systemp.o synthe/
synthe/sl_main.o : synthe/sl_main.c
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) $(LOCAL_INC) synthe/sl_main.c
	$(MV) sl_main.o synthe/
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/logic
	@$(TOUCH) distrib
	@if [ -f ../bin/INSTALLED ] ; then $(RM) ../bin/INSTALLED ; else exit 0 ; fi

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