#******************************************************************************#
#*                                                                            *#
#*                    CAO & VLSI's cad tools chain Alliance                   *#
#*                                                                            *#
#*     Product  : STANDARD CELLS PLACER AND 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 : 13/01/1993     *#
#*     Modified by : El housseine REJOUAN               Date : 08/10/1993     *#
#*     Modified by :                                    Date : ../../....     *#
#*     Modified by :                                    Date : ../../....     *#
#*                                                                            *#
#******************************************************************************#

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

#******************************************************************************#
#*			LIBRARY PATH & INCLUDE PATH                           *#
#******************************************************************************#
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

SCR_LIB = $(ALC_LIB) -lm

#******************************************************************************#
#*                      FLAGS FOR COMPILATION                                 *#
#******************************************************************************#
BIN_PATH = ../bin/

LOCAL_FLAGS = $(CFLAGS) -g

#******************************************************************************#
#*			SOURCES FILES FOR SCR				      *#
#******************************************************************************#
SCR_SOURCES = ScrSesame.c LoadDataBase.c ViewDataBase.c \
              GlobalRouter.c main.c

#******************************************************************************#
#*			HEADERS FILES FOR SCR				      *#
#******************************************************************************#
SCR_HEADERS = ScrDataBase.h $(APR_H) LoadDataBase.h \
              ViewDataBase.h GlobalRouter.h SCR_Type.h

#******************************************************************************#
#*			OBJ. FILES FOR SCR				      *#
#******************************************************************************#
SCR_OBJS   = ScrSesame.o LoadDataBase.o ViewDataBase.o GlobalRouter.o \
             y.tab.o lex.yy.o main.o

#******************************************************************************#
#*	                 ALLIANCE DISTRIBUTION INPUT                          *#
#******************************************************************************#
distrib : $(BIN_PATH)scr
	@$(TOUCH) distrib
	@if [ -f ../bin/INSTALLED ] ; then $(RM) ../bin/INSTALLED  ; else exit 0 ; fi


#******************************************************************************#
#*	      EXECUTABLE FOR STANDARD CELLS PLACER AND ROUTER                 *#
#******************************************************************************#
$(BIN_PATH)scr : $(SCR_OBJS) $(SCR_HEADERS)
	$(CC) $(ALC_INC) $(LOCAL_FLAGS) -o $(BIN_PATH)scr $(SCR_OBJS) $(SCR_LIB) 
#	$(STRIP) $(BIN_PATH)scr
#	-$(RM) $(SCR_OBJS)

#******************************************************************************#
#*			OBJ. LEX and YACC 				      *#
#******************************************************************************#
y.tab.c : scr.yac SCR_Type.h
	$(YACC) $(YACCFLAGS) -d scr.yac

y.tab.o : y.tab.c
	$(CC) $(ALC_INC) $(LOCAL_FLAGS) -c y.tab.c -o y.tab.o

lex.yy.c : scr.lex SCR_Type.h
	$(LEX) scr.lex

lex.yy.o : lex.yy.c
	$(CC) $(ALC_INC) $(LOCAL_FLAGS) -c lex.yy.c -o lex.yy.o

#******************************************************************************#
#*			OBJS FILES FOR SCR				      *#
#******************************************************************************#
ScrSesame.o : ScrSesame.c 
	$(CC) $(ALC_INC) $(LOCAL_FLAGS) -c ScrSesame.c -o ScrSesame.o

LoadDataBase.o : LoadDataBase.c SCR_Type.h
	$(CC) $(ALC_INC) $(LOCAL_FLAGS) -c LoadDataBase.c -o LoadDataBase.o

ViewDataBase.o : ViewDataBase.c SCR_Type.h
	$(CC) $(ALC_INC) $(LOCAL_FLAGS) -c ViewDataBase.c -o ViewDataBase.o

GlobalRouter.o : GlobalRouter.c SCR_Type.h
	$(CC) $(ALC_INC) $(LOCAL_FLAGS) -c GlobalRouter.c -o GlobalRouter.o

main.o : main.c $(SCR_HEADERS)
	$(CC) $(ALC_INC) $(LOCAL_FLAGS) -c main.c -o main.o

#******************************************************************************#
#*			                             			      *#
#******************************************************************************#
clean :
	-$(RM) $(SCR_OBJS) y.tab.c y.tab.h lex.yy.c $(BIN_PATH)scr distrib

flow :
	cflow -r $(ALC_INC) $(SCR_SOURCES)  > scr.rflow
	cflow  $(ALC_INC) $(SCR_SOURCES) > scr.flow

ctags :
	/usr/ucb/ctags -v $(SCR_SOURCES) | sort -f > scr.index

lint :
	lint $(ALC_INC) $(SCR_SOURCES) > scr.lint

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