#******************************************************************************#
#*                                                                            *#
#*     Product  : Symbolic Channel Router                                     *#
#*     File     : makefile                                                    *#
#*     Contents :                                                             *#
#*                                                                            *#
#*     (c) Copyright 1992 Laboratoire MASI equipe CAO & VLSI                  *#
#*     All rights reserved                                                    *#
#*     Hot line  : cao-vlsi@masi.ibp.fr (e-mail)                              *#
#*                                                                            *#
#*     Author(s)   : El housseine REJOUAN               Date : 11/07/1991     *#
#*     Modified by : El housseine REJOUAN               Date : 17/03/1992     *#
#*     Modified by : El housseine REJOUAN               Date : 29/07/1992     *#
#*     Modified by : El housseine REJOUAN               Date : 09/10/1992     *#
#*                                                                            *#
#******************************************************************************#

#******************************************************************************#
#*                      LIBRARY PATH & INCLUDE PATH                           *#
#******************************************************************************#
include $(TOP)/etc/$(MACHINE).mk

ALC_INC = -I$(ALLIANCE_INCLUDE) \
          -DMLU_H='"mlu411.h"' \
          -DMPU_H='"mpu402.h"' \
          -DMLO_H='"mlo404.h"' \
          -DMPH_H='"mph402.h"' \
          -DAPR_H='"apr101.h"' \
          -DMUT_H='"mut315.h"'

ALC_LIB = -L$(ALLIANCE_LIB) \
           -lMlu411 \
           -lMpu402 \
           -lMcp401 \
           -lMap402 \
           -lMmg401 \
           -lMcl408 \
           -lMal404 \
           -lMvl406 \
           -lMel406 \
           -lMsl608 \
           -lMhl402 \
           -lMlo404 \
           -lMph402 \
           -lApr101 \
           -lMut315


APR_LIB = -lm $(ALC_LIB)

LIB_APR  = libApr101.a
APR_INC  = apr101.h
OBJ_PATH = ../obj/
BIN_PATH = ../bin/
LIB_PATH = ../lib/
INC_PATH = ../include/

################################################################################
# 			Symbolic Channel Router                                #
################################################################################
GSCR_SRC = gscr_StaticUtil.c gscr_DynamicUtil.c gscr_AllowFree.c \
           gscr_GreedyRout.c gscr_SymbChanRout.c gscr_main.c

GSCR_HEADERS  = gscr_StaticUtil.h gscr_DynamicUtil.h gscr_AllowFree.h \
                gscr_GreedyRout.h gscr_SymbChanRout.h gscr_DataBase.h \
                $(APR_INC)
 
GSCR_OBJS = gscr_StaticUtil.o gscr_DynamicUtil.o gscr_AllowFree.o \
            gscr_GreedyRout.o gscr_SymbChanRout.o 

GSCR_LOCAL_CFLAGS  = $(CFLAGS) -DMAXLINE=500 -DMAXCOL=1000 
# use -DSCR_DEBUG to verbose mode

################################################################################
# 			Symbolic Place                                         #
################################################################################
SCP_LOCAL_CFLAGS = -g $(CFLAGS)

#******************************************************************************#
#*                       SOURCES FILES FOR SCP                                *#
#******************************************************************************#
SCP_SRC = scp_inits.c scp_main.c scp_mbk2scp.c scp_modif.c \
          scp_channel.c scp_time.c scp_placer.c scp_scp2mbk.c

#******************************************************************************#
#*                       HEADERS FILES FOR SCP                                *#
#******************************************************************************#
SCP_HEADERS = scp_inits.h scp_main.h scp_mbk2scp.h scp_modif.h \
	      scp_types.h scp_time.h scp_channel.h scp_placer.h $(APR_INC)\
              scp_scp2mbk.h

#******************************************************************************#
#*                       OBJ. FILES FOR SCP                                   *#
#******************************************************************************#
SCP_OBJS   = scp_inits.o scp_main.o scp_mbk2scp.o scp_modif.o \
             scp_time.o scp_channel.o 

#******************************************************************************#
# OBJECTS FILES :                                                              #
#******************************************************************************#

$(BIN_PATH)gscr : $(LIB_PATH)$(APR_LIB) $(GSCR_HEADERS) gscr_main.o
	-$(MV) $(BIN_PATH)gscr $(BIN_PATH)gscr.old
	$(CC) $(ALC_INC) $(GSCR_LOCAL_CFLAGS) -o $(BIN_PATH)gscr $(GSCR_OBJS) $(ALC_LIB)
	$(STRIP) $(BIN_PATH)gscr
	$(CP) $(APR_INC) $(INC_PATH)

distrib : $(LIB_PATH)$(LIB_APR)
	@$(TOUCH) distrib
	@if [ -f ../lib/INSTALLED ] ; then $(RM) ../lib/INSTALLED  ; else exit 0 ; fi
	@if [ -f ../include/INSTALLED ] ; then $(RM) ../include/INSTALLED  ; else exit 0 ; fi

$(LIB_PATH)$(LIB_APR) : $(GSCR_OBJS) $(SCP_OBJS)
	$(CP) $(APR_INC) $(INC_PATH)
	$(AR) $(ARFLAGS) $(LIB_PATH)$(LIB_APR) $(GSCR_OBJS) $(SCP_OBJS)
	-$(RANLIB) $(LIB_PATH)$(LIB_APR)

gscr_StaticUtil.o : gscr_StaticUtil.c $(APR_INC) gscr_DataBase.h
	$(CC) $(ALC_INC) $(GSCR_LOCAL_CFLAGS) -c gscr_StaticUtil.c -o gscr_StaticUtil.o

gscr_DynamicUtil.o : gscr_DynamicUtil.c gscr_greedy.h gscr_DataBase.h
	$(CC) $(ALC_INC) $(GSCR_LOCAL_CFLAGS) -c gscr_DynamicUtil.c -o gscr_DynamicUtil.o

gscr_AllowFree.o : gscr_AllowFree.c gscr_DataBase.h
	$(CC) $(ALC_INC) $(GSCR_LOCAL_CFLAGS) -c gscr_AllowFree.c -o gscr_AllowFree.o

gscr_GreedyRout.o : gscr_GreedyRout.c gscr_greedy.h gscr_DynamicUtil.c
	$(CC) $(ALC_INC) $(GSCR_LOCAL_CFLAGS) -c gscr_GreedyRout.c -o gscr_GreedyRout.o

gscr_SymbChanRout.o : gscr_SymbChanRout.c $(GSCR_HEADERS)
	$(CC) $(ALC_INC) $(GSCR_LOCAL_CFLAGS) -c gscr_SymbChanRout.c -o gscr_SymbChanRout.o

gscr_main.o : gscr_main.c $(GSCR_HEADERS)
	$(CC) $(ALC_INC) $(GSCR_LOCAL_CFLAGS) -c gscr_main.c -o gscr_main.o

#******************************************************************************#
#*			OBJ. FILES FOR SCP				      *#
#******************************************************************************#
$(BIN_PATH)scp : $(LIB_PATH)$(LIB_APR) $(SCP_HEADERS) scp_placer.o scp_scp2mbk.o
	-$(MV) $(BIN_PATH)scp $(BIN_PATH)scp.old
	$(CC) $(ALC_INC) $(SCP_LOCAL_CFLAGS) -o $(BIN_PATH)scp $(SCP_OBJS) $(APR_LIB)
	$(STRIP) $(BIN_PATH)scp
	$(CP) $(APR_INC) $(INC_PATH)

scp_inits.o : scp_inits.c $(SCP_HEADERS)
	$(CC) $(ALC_INC) $(SCP_LOCAL_FALGS) -c scp_inits.c -o scp_inits.o

scp_main.o :	scp_main.c $(SCP_HEADERS)
	$(CC) $(ALC_INC) $(SCP_LOCAL_FALGS) -c scp_main.c -o scp_main.o

scp_mbk2scp.o : scp_mbk2scp.c $(SCP_HEADERS)
	$(CC) $(ALC_INC) $(SCP_LOCAL_FALGS) -c scp_mbk2scp.c -o scp_mbk2scp.o

scp_modif.o : scp_modif.c $(SCP_HEADERS)
	$(CC) $(ALC_INC) $(SCP_LOCAL_FALGS) -c scp_modif.c -o scp_modif.o

scp_placement.o : scp_placement.c $(SCP_HEADERS)
	$(CC) $(ALC_INC) $(SCP_LOCAL_FALGS) -c scp_placement.c -o scp_placement.o

scp_time.o : scp_time.c $(SCP_HEADERS)
	$(CC) $(ALC_INC) $(SCP_LOCAL_FALGS) -c scp_time.c -o scp_time.o

scp_channel.o : scp_channel.c $(SCP_HEADERS)
	$(CC) $(ALC_INC) $(SCP_LOCAL_FALGS) -c scp_channel.c -o scp_channel.o

scp_scp2mbk.o : scp_scp2mbk.c $(SCP_HEADERS)
	$(CC) $(ALC_INC) $(SCP_LOCAL_FALGS) -c scp_scp2mbk.c -o scp_scp2mbk.o

scp_placer.o : scp_placer.c $(SCP_HEADERS)
	$(CC) $(ALC_INC) $(SCP_LOCAL_FALGS) -c scp_placer.c -o scp_placer.o

################################################################################
# 			                             			       #
################################################################################
clean :
	-$(RM) -f $(GSCR_OBJS) $(SCP_OBJS) $(LIB_PATH)/*.a $(INC_PATH)/*.h $(BIN_PATH)/* distrib

#******************************************************************************#
