# 
# PACE Project, Resource Characterization Subproject
#
# Makefile for "MemTest"
#
config: Lib AddCost BC Cache IntTLB L1 Reconcile TLB
	
#
Lib AddCost BC Cache IntTLB L1 Reconcile TLB :
	make extract
#
extract:
	tar xvf R1.tar
	(cd Lib ; tar xvf export.tar)
	(cd AddCost ; tar xvf export.tar)
	(cd BC ; tar xvf export.tar)
	(cd Cache ; tar xvf export.tar)
	(cd IntTLB ; tar xvf export.tar)
	(cd L1 ; tar xvf export.tar)
	(cd NA ; tar xvf export.tar)
	(cd Reconcile ; tar xvf export.tar)
	(cd TLB ; tar xvf export.tar)
#
export:		AddCost/export.tar BC/export.tar \
		Cache/export.tar IntTLB/export.tar \
		L1/export.tar Lib/export.tar NA/export.tar \
		Reconcile/export.tar TLB/export.tar
		tar cvf R1.tar AddCost/export.tar BC/export.tar Cache/export.tar IntTLB/export.tar L1/export.tar Lib/export.tar NA/export.tar Reconcile/export.tar TLB/export.tar Makefile README
# 
Lib/export.tar: Lib/Makefile
		(cd Lib; make export)
#
AddCost/export.tar: AddCost/Makefile
		(cd AddCost; make export);
#
BC/export.tar: BC/Makefile
		(cd BC; make export)
#
Cache/export.tar: Cache/Makefile
		(cd Cache; make export)
#
IntTLB/export.tar: IntTLB/Makefile
		(cd IntTLB; make export)
#
L1/export.tar: L1/Makefile
		(cd L1; make export)
#
NA/export.tar:	NA/Makefile
		(cd NA; make export)
#
Reconcile/export.tar: Reconcile/Makefile
		(cd Reconcile; make export)
#
TLB/export.tar: TLB/Makefile
		(cd TLB; make export)
#
#
remove:		
		rm R1.tar
#
build:
		make -C Lib build
		make -C AddCost build
		make -C BC build
		make -C Cache build
		make -C IntTLB build
		make -C L1 build
		make -C NA build
		make -C Reconcile build
#		make -C TLB build
		mkdir Logs Tempdir build
#
run: 		Logs/addcost-log \
		Logs/l1-log Logs/na-log \
		Logs/bc-log Logs/cache-log Logs/inttlb-log \
		Logs/reconcile-log
#               Logs/tlb-log
#
Logs/addcost-log:
	(env PACE_TEMP="Tempdir" run_program 1 ./AddCost/addcost; mv Log ./Logs/addcost-log)
#
Logs/bc-log:
	(env PACE_TEMP="Tempdir" run_program 1 ./BC/bctest ;      mv Log ./Logs/bc-log)
#
Logs/cache-log:
	(env PACE_TEMP="Tempdir" run_program 1 ./Cache/clatency ; mv Log ./Logs/cache-log)
#
Logs/inttlb-log:
#	echo "Not yet stable; not run" >Logs/inttlb-log
	(env PACE_TEMP="Tempdir" run_program 1 ./IntTLB/tlbtest ; mv Log ./Logs/inttlb-log)
#
Logs/l1-log:  
	(env PACE_TEMP="Tempdir" run_program 1 ./L1/l1test ;      mv Log ./Logs/l1-log)
#
Logs/na-log:
	(env PACE_TEMP="Tempdir" run_program 1 ./NA/natest;       mv Log ./Logs/na-log)
#
Logs/tlb-log:
#	(env PACE_TEMP="Tempdir" run_program 1 ./TLB/tlbtest ;    mv Log ./Logs/tlb-log)
#
Logs/reconcile-log:
	(env PACE_TEMP="Tempdir" run_program 1 ./Reconcile/recon >> ../pace_rcdb ; mv Log ./Logs/reconcile-log)
#
#
#
clean:		AddCost BC Cache IntTLB L1 Lib TLB Reconcile
		rm -rf AddCost BC Cache IntTLB NA L1 Lib TLB Tempdir Logs Reconcile README

