INPUT_PATH=${CNC_HOME}/examples-input
CNC_GRAPH_FILE=choleskyHJ.cnc
MAIN_CLASS=CholeskyMain
MAIN_FILE=${MAIN_CLASS}.hj

CNC_NUM_WORKERS=16
MATRIX_SIZE=100
TILE_SIZE=25
POLICY=NonBlocking

INPUT_FILE=${INPUT_PATH}/Cholesky/m_${MATRIX_SIZE}.in
VERIFY_FILE=${INPUT_PATH}/Cholesky/cholesky_out_${MATRIX_SIZE}.txt

all: translate build run verify
all-hf: translate build-hf run-hf verify

translate:
	cnc_t ${CNC_GRAPH_FILE}

build:
	cnc_c -d classes ${MAIN_FILE}
	javac -d classes Compare.java 
	
#non blocking by default
run:
	cnc_run -CNC_NUM_WORKERS $(CNC_NUM_WORKERS) -cp classes -policy=$(POLICY) ${MAIN_CLASS} -noGC -dumpOutput ${MATRIX_SIZE} ${TILE_SIZE} $(INPUT_FILE)
	
verify:
	java -cp classes Compare cholesky_out.txt ${VERIFY_FILE}
	
build-hf:
	cnc_c -d classes -sp ${CNC_HOME}/../Habanero-Java/src:. -rt h ${MAIN_FILE}
	
run-hf:
	cnc_run_hf -cp classes -verbose ${MAIN_CLASS} -dumpOutput ${MATRIX_SIZE} ${TILE_SIZE} ${INPUT_FILE}

clean:
	rm -Rf A* choleskyHJGraph.hj *TagCollection* cholesky_out.txt
	rm -Rf classes
	rm -Rf *.class
