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

LOCAL_TRGLIB = ../../lib
LOCAL_TRGINC = ../../include
LOCAL_TRGBIN = ../../bin

OPTION   = PARIS6

LOCAL_INC = -I$(ALLIANCE_INCLUDE)

LIB_DSB  = libDsb296.a
L_DSB    = lDsb296
LIB_D2V  = libd2v301.a
L_D2V    = ld2v301
LIB_FCF  = libfcf107.a
L_FCF    = lfcf107
LIB_INF  = libinf106.a
L_INF    = linf106

LOCAL_CFLAGS   = $(CFLAGS) -g
LOCAL_CPPFLAGS = $(CPPFLAGS) -c -g $(LOCAL_INC) \
                 -DMUT_H='<$(MUT_H)>' \
                 -DMLO_H='<$(MLO_H)>' \
                 -DMLU_H='<$(MLU_H)>' \
                 -DBEH_H='<$(BEH_H)>' \
                 -DBHL_H='<$(BHL_H)>' \
                 -DBVL_H='<$(BVL_H)>' \
                 -DLOG_H='<$(LOG_H)>'

OBJ = desb.o trans.o cone.o branche.o driver.o desachain.o test_ext.o \
tautol.o desa_util.o path_para.o switch.o alim.o verif_cone.o info.o \
mem.o instance.o dsbmbk.o error.o regist.o thashloc.o

LIB = -L$(LOCAL_TRGLIB) -$(L_DSB) -$(L_D2V) -$(L_FCF) -$(L_INF) \
      -L$(ALLIANCE_LIB) \
      $(MLU_L) $(MCL_L) $(MAL_L) $(MHL_L) $(MVL_L) $(MSL_L) $(MEL_L) \
      $(MLO_L) $(BVL_L) $(BHL_L) $(BEH_L) $(LOG_L) $(MUT_L) \
      -lm

.c.o :
	$(CC) $(LOCAL_CPPFLAGS) -D$(OPTION) $<

distrib : $(LOCAL_TRGBIN)/desb
	@if [ -f $(LOCAL_TRGLIB)/INSTALLED ] ; then $(RM) $(LOCAL_TRGLIB)/INSTALLED ; else exit 0 ; fi
	@if [ -f $(LOCAL_TRGINC)/INSTALLED ] ; then $(RM) $(LOCAL_TRGINC)/INSTALLED ; else exit 0 ; fi
	@if [ -f $(LOCAL_TRGBIN)/INSTALLED ] ; then $(RM) $(LOCAL_TRGBIN)/INSTALLED ; else exit 0 ; fi
	@$(TOUCH) distrib

$(LOCAL_TRGBIN)/desb : $(LOCAL_TRGLIB)/$(LIB_DSB) \
                       $(LOCAL_TRGLIB)/$(LIB_INF) \
                       $(LOCAL_TRGLIB)/$(LIB_D2V) \
                       $(LOCAL_TRGLIB)/$(LIB_FCF) \
                       pgm.o
	$(CC) $(LOCAL_CFLAGS) -o $(LOCAL_TRGBIN)/desb  pgm.o $(LIB) 

$(LOCAL_TRGLIB)/$(LIB_DSB) : $(OBJ) $(HEADERS)
	$(AR) $(ARFLAGS) $(LIB_DSB) $(OBJ)
	$(MV)  $(LIB_DSB) $(LOCAL_TRGLIB)
	$(RANLIB) $(LOCAL_TRGLIB)/$(LIB_DSB)
	$(CP) desb.h $(LOCAL_TRGINC)
	$(CP) vars.h $(LOCAL_TRGINC)

$(OBJ) : desb.h vars.h 

clean:
	-@$(RM) -f $(OBJ) pgm.o > /dev/null 2>&1
	-@$(RM) -f $(LOCAL_TRGLIB)/$(LIB_DSB) > /dev/null 2>&1
	-@$(RM) -f $(LOCAL_TRGBIN)/desb > /dev/null 2>&1
	-@$(RM) -f distrib > /dev/null 2>&1
	-@$(RM) -f $(LOCAL_TRGINC)/desb.h > /dev/null 2>&1
	-@$(RM) -f $(LOCAL_TRGINC)/vars.h > /dev/null 2>&1
