#
# Hitmap 1.1
# Makefile template for examples
#

#
# 1. DEFINITIONS, FLAGS, AND EXTERNAL LIBRARIES FOR THIS PARTICULAR APPLICATION
# 	(THEY WILL BE AUTOMATICALLY ADDED TO THE MAIN COMPILATION COMMAND)
#
APP_FLAGS=
APP_LIBS=

#
# 2. DECLARE APPLICATION TARGETS
#
APP_TARGETS=refMPICannon cannonAsyncInt cannonAsync cannonSync cannonAsyncTestPadding cannonAsyncInt_write cannonAsync_write cannonSync_write cannonAsyncTestPadding_write 

#
# 3. DOES THIS APPLICATION CALL PLUGINS WHICH USE LIBRARIES EXTERNAL TO HITMAP ?
#	( UNCOMMENT IF NEEDED )
#
#HIT_USE_METIS=y

#
# 4. LOAD Hitmap COMPILING DEFINITIONS 
#	( PLEASE, SET HITMAP BASEDIR )
#
HIT_BASEDIR=../..
include $(HIT_BASEDIR)/config/make.def


#
# 5. DECLARE TARGET SOURCES, AND SPECIFIC BUILDING RULES FOR YOUR APPLICATION
# 	( SUBSTITUTE THE EXAMPLES BELLOW )
#
cannonAsyncInt: cannonAsyncInt.c

cannonAsync: cannonAsync.c

cannonSync: cannonSync.c

cannonAsyncTestPadding: cannonAsyncTestPadding.c


#
# 6.1. CREATE OUTPUT FILES WRITING THE VALUES OF THE RESULT
#
cannonAsyncInt_write: cannonAsyncInt.c
	$(HIT_COMPILE) -DWRITE_RESULT $< $(HIT_LIBS) -o $@

cannonAsync_write: cannonAsync.c
	$(HIT_COMPILE) -DWRITE_RESULT $< $(HIT_LIBS) -o $@

cannonSync_write: cannonSync.c
	$(HIT_COMPILE) -DWRITE_RESULT $< $(HIT_LIBS) -o $@

cannonAsyncTestPadding_write: cannonAsyncTestPadding.c
	$(HIT_COMPILE) -DWRITE_RESULT $< $(HIT_LIBS) -o $@


#
# 6.2. CREATE OUTPUT FILES WRITING THE VALUES OF THE A,B, AND C MATRICES
#
writeAll:
	make APP_FLAGS="-DWRITE_RESULT -DWRITE_AB"

#
# 6.3. WRITE + DEBUG
#
writeDebug:
	make debug APP_FLAGS=-DWRITE_RESULT


#
# 7. REFERENCE CODES
#
refMPICannon: refMPICannon.c
	$(MPICC) $< -o $@ -lm -DWRITE_RESULT

#
# END
#
