#=======================================================================
# 6.375 Makefile for enc-fp
#-----------------------------------------------------------------------
# $Id: Makefile,v 1.1 2007/03/21 17:11:55 jrk Exp $
#
# This makefile will use Cadence Encounter to floorplan modules,
# rams, and create a power distribution grid.
#

default : all

basedir  = ../..

#--------------------------------------------------------------------
# Sources
#--------------------------------------------------------------------

vsrcs = ../dc-synth/current/synthesized.v

# Specify what the toplevel verilog module is

toplevel = mkProc

#--------------------------------------------------------------------
# Build rules
#--------------------------------------------------------------------

build_suffix   := $(shell date +%Y-%m-%d_%H-%M)
build_dir      := build-$(build_suffix)
curr_build_dir := current
fp_file        := $(curr_build_dir)/floorplan.fp

fp_conf        := fp.conf
fp_tcl         := fp.tcl
scripts        := $(fp_conf) $(fp_tcl)
makegen_tcl    := make_generated_vars.tcl

libdir = $(MIT6375_HOME)/libs/tsl180/tsl18fs120
fp_vars = \
	set VERILOG_SRC      { $(addprefix ../, $(vsrcs)) }; \
	set VERILOG_TOPLEVEL $(toplevel); \
	set LEF_FILES        { $(libdir)/lef/tsl18_6lm.lef $(libdir)/lef/tsl18fs120.lef }; \

define new-build-dir-cmds
	mkdir $(build_dir)
	rm -f $(curr_build_dir)
	ln -s $(build_dir) $(curr_build_dir)
	cp $(scripts) $(curr_build_dir)
	echo '$(fp_vars)' > $(curr_build_dir)/$(makegen_tcl)
endef

new-build-dir :
	$(new-build-dir-cmds)

$(fp_file) : $(vsrcs) $(scripts) 
	$(new-build-dir-cmds)
	cd $(curr_build_dir); \
	encounter -nowin -init $(fp_tcl) | tee enc.log; \
	cd ..

fp : $(fp_file)

junk += 

.PHONY : fp new-build-dir

#--------------------------------------------------------------------
# Default make target
#--------------------------------------------------------------------

all : fp

#--------------------------------------------------------------------
# Clean up
#--------------------------------------------------------------------

clean :
	rm -rf build-[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]_[0-9][0-9]-[0-9][0-9] \
	       current $(junk) *~ \#*
