##******************************************************************************
##  Copyright(C) 2010-2013 Intel Corporation. All Rights Reserved.
##  
##  The source code, information  and  material ("Material") contained herein is
##  owned  by Intel Corporation or its suppliers or licensors, and title to such
##  Material remains  with Intel Corporation  or its suppliers or licensors. The
##  Material  contains proprietary information  of  Intel or  its  suppliers and
##  licensors. The  Material is protected by worldwide copyright laws and treaty
##  provisions. No  part  of  the  Material  may  be  used,  copied, reproduced,
##  modified, published, uploaded, posted, transmitted, distributed or disclosed
##  in any way  without Intel's  prior  express written  permission. No  license
##  under  any patent, copyright  or  other intellectual property rights  in the
##  Material  is  granted  to  or  conferred  upon  you,  either  expressly,  by
##  implication, inducement,  estoppel or  otherwise.  Any  license  under  such
##  intellectual  property  rights must  be express  and  approved  by  Intel in
##  writing.
##  
##  *Third Party trademarks are the property of their respective owners.
##  
##  Unless otherwise  agreed  by Intel  in writing, you may not remove  or alter
##  this  notice or  any other notice embedded  in Materials by Intel or Intel's
##  suppliers or licensors in any way.
##
##******************************************************************************
##  Content:
##      Intel(R) Math Kernel Library PBLAS C examples creation and run
##******************************************************************************

include ../make.inc



# Object files

pblas1_s_obj = obj$(IDE)/pblas1_s_example.o
pblas2_s_obj = obj$(IDE)/pblas2_s_example.o
pblas3_s_obj = obj$(IDE)/pblas3_s_example.o

pblas1_d_obj = obj$(IDE)/pblas1_d_example.o
pblas2_d_obj = obj$(IDE)/pblas2_d_example.o
pblas3_d_obj = obj$(IDE)/pblas3_d_example.o



# Build PBLAS examples

pblas1_s_example : $(pblas1_s_obj)
		mkdir -p $(RES_DIR)
		$(CCLOADER) $(CCLOADERFLAGS) -o $(RES_DIR)/$@ $^ $(LIBS)
pblas2_s_example : $(pblas2_s_obj)
		mkdir -p $(RES_DIR)
		$(CCLOADER) $(CCLOADERFLAGS) -o $(RES_DIR)/$@ $^ $(LIBS)
pblas3_s_example : $(pblas3_s_obj)
		mkdir -p $(RES_DIR)
		$(CCLOADER) $(CCLOADERFLAGS) -o $(RES_DIR)/$@ $^ $(LIBS)

pblas1_d_example : $(pblas1_d_obj)
		mkdir -p $(RES_DIR)
		$(CCLOADER) $(CCLOADERFLAGS) -o $(RES_DIR)/$@ $^ $(LIBS)
pblas2_d_example : $(pblas2_d_obj)
		mkdir -p $(RES_DIR)
		$(CCLOADER) $(CCLOADERFLAGS) -o $(RES_DIR)/$@ $^ $(LIBS)
pblas3_d_example : $(pblas3_d_obj)
		mkdir -p $(RES_DIR)
		$(CCLOADER) $(CCLOADERFLAGS) -o $(RES_DIR)/$@ $^ $(LIBS)



# Run PBLAS examples

pblas1_s_example.txt : pblas1_s_example
		$(MPIRUN) ./$(RES_DIR)/$< 1>$(RES_DIR)/$@ 2>&1
pblas2_s_example.txt : pblas2_s_example
		$(MPIRUN) ./$(RES_DIR)/$< 1>$(RES_DIR)/$@ 2>&1
pblas3_s_example.txt : pblas3_s_example
		$(MPIRUN) ./$(RES_DIR)/$< 1>$(RES_DIR)/$@ 2>&1

pblas1_d_example.txt : pblas1_d_example
		$(MPIRUN) ./$(RES_DIR)/$< 1>$(RES_DIR)/$@ 2>&1
pblas2_d_example.txt : pblas2_d_example
		$(MPIRUN) ./$(RES_DIR)/$< 1>$(RES_DIR)/$@ 2>&1
pblas3_d_example.txt : pblas3_d_example
		$(MPIRUN) ./$(RES_DIR)/$< 1>$(RES_DIR)/$@ 2>&1



# Compile

obj$(IDE)/%.o : %.c
		mkdir -p obj$(IDE)
		$(CC) $(CCFLAGS) -I$(MKLINC) -c -o $@ $<



# Clean all object files
	
clean: ; rm -f -r obj*
