# /*------------------------------------------------------------\
# |                                                             |
# | Tool   :                 Library VEX103                     |
# |                                                             |
# | File   :                    Makefile                        |
# |                                                             |
# | Author :                  Jacomme Ludovic                   |
# |                                                             |
# | Date   :                    28.10.94                        |
# |                                                             |
# \------------------------------------------------------------*/

include $(ALLIANCE_TOP)/etc/$(ALLIANCE_OS).mk
include $(ALLIANCE_TOP)/etc/libraries.mk
include local.mk

# /*------------------------------------------------------------\
# |                                                             |
# |                            Varivexes                        |
# |                                                             |
# \------------------------------------------------------------*/

LOCAL_CFLAGS = $(CFLAGS) -g -D$(ALLIANCE_OS)

# /*------------------------------------------------------------\
# |                                                             |
# |                             Include                         |
# |                                                             |
# \------------------------------------------------------------*/

LOCAL_INCLUDE = -I$(LOCAL_TARGET_INC) -I$(ALLIANCE_INCLUDE)

# /*------------------------------------------------------------\
# |                                                             |
# |                             Library                         |
# |                                                             |
# \------------------------------------------------------------*/

LOCAL_LIB = -L$(LOCAL_TARGET_LIB) \
            -L$(ALLIANCE_LIB) \
             $(VEX_L) \
             $(AUT_L) \
             $(MUT_L)

# /*------------------------------------------------------------\
# |                                                             |
# |                             Define                          |
# |                                                             |
# \------------------------------------------------------------*/

LOCAL_MBK_DEFINE = -DMUT_H='"$(MUT_H)"'
LOCAL_VEX_DEFINE = -DAUT_H='"$(AUT_H)"' \
                   -DVEX_H='"vex103.h"'

LOCAL_DEFINE = $(LOCAL_MBK_DEFINE) $(LOCAL_VEX_DEFINE)

LOCAL_HEADER = $(LOCAL_INCLUDE) $(LOCAL_DEFINE)

LOCAL_VEX_LIB    = libVex103.a
LOCAL_VEX_INC    = vex103.h
LOCAL_VEX_TST    = vextest

# /*------------------------------------------------------------\
# |                                                             |
# |                             Object                          |
# |                                                             |
# \------------------------------------------------------------*/

LOCAL_VEX_OBJ = vexerror.o vexenv.o   vexalloc.o   vexfree.o  \
                vexadd.o   vexdel.o   vexcreate.o  vexis.o    \
                vexdup.o   vexview.o  vexget.o     vexoptim.o \
                vexsimp.o  vexeval.o  vexextend.o  vexslice.o vexunflat.o

#               vexget.o  \
#               vexsubst.o vexsimp.o   vexflat.o   vexpolar.o  vexdev.o  \
#               vexmap.o   vexstr.o    vexvhdl.o   vexunflat.o vexview.o \
#               vexctlsimp.o vexctlnorm.o vexoptim.o

LOCAL_TST_OBJ = main.o

LOCAL_OBJ = $(LOCAL_VEX_OBJ)

.c.o : $(LOCAL_TARGET_INC)/$(LOCAL_VEX_INC)
	$(CC) -c $(LOCAL_CFLAGS) $(LOCAL_HEADER) $<

# /*------------------------------------------------------------\
# |                                                             |
# |                         Library Vpn                         |
# |                                                             |
# \------------------------------------------------------------*/

distrib : $(LOCAL_TARGET_INC)/$(LOCAL_VEX_INC) \
          $(LOCAL_TARGET_LIB)/$(LOCAL_VEX_LIB)

test : $(LOCAL_TARGET_INC)/$(LOCAL_VEX_INC) \
       $(LOCAL_TARGET_LIB)/$(LOCAL_VEX_LIB) \
       $(LOCAL_TARGET_BIN)/$(LOCAL_VEX_TST)


$(LOCAL_TARGET_INC)/$(LOCAL_VEX_INC) : $(LOCAL_VEX_INC)
	$(CP) $(LOCAL_VEX_INC) $(LOCAL_TARGET_INC)/$(LOCAL_VEX_INC)

$(LOCAL_TARGET_LIB)/$(LOCAL_VEX_LIB) : $(LOCAL_OBJ)
	$(AR) $(ARFLAGS) $(LOCAL_TARGET_LIB)/$(LOCAL_VEX_LIB) $(LOCAL_VEX_OBJ)
	$(RANLIB) $(LOCAL_TARGET_LIB)/$(LOCAL_VEX_LIB)

# /*------------------------------------------------------------\
# |                                                             |
# |                              Clean                          |
# |                                                             |
# \------------------------------------------------------------*/

clean :
	$(RM) -f $(LOCAL_OBJ) main.o

realclean : clean
	$(RM) -f $(LOCAL_TARGET_BIN)/$(LOCAL_VEX_TST) \
                 $(LOCAL_TARGET_LIB)/$(LOCAL_VEX_LIB) \
                 $(LOCAL_TARGET_INC)/$(LOCAL_VEX_INC)

# /*------------------------------------------------------------\
# |                                                             |
# |                          Clean Object                       |
# |                                                             |
# \------------------------------------------------------------*/

cleanobj :
	$(RM) -f $(LOCAL_OBJ) $(LOCAL_TST_OBJ)

# /*------------------------------------------------------------\
# |                                                             |
# |                            Test                             |
# |                                                             |
# \------------------------------------------------------------*/

$(LOCAL_TARGET_BIN)/$(LOCAL_VEX_TST) : $(LOCAL_TST_OBJ) \
     $(LOCAL_TARGET_LIB)/$(LOCAL_VEX_LIB)
	$(CC) -o $(LOCAL_TARGET_BIN)/$(LOCAL_VEX_TST) $(LOCAL_TST_OBJ) $(LOCAL_LIB)
