#/****************************************************************************
#**  fzjlinktest                                                            **
#*****************************************************************************
#**  Copyright (c) 2008-2009                                                **
#**  Forschungszentrum Juelich, Juelich Supercomputing Centre               **
#**                                                                         **
#**  See the file COPYRIGHT in the package base directory for details       **
#****************************************************************************/
CC = gcc
MPICC = mpicc
MPIGCC = mpicc

LARGEFILE=-D_FILE_OFFSET_BITS=64

CFLAGS= -D_LINUX $(LARGEFILE) -I./sionlib/install/sionlib_linux/include -g -DUSELQBUFFERSEND -DBCASTDT
CFLAGS_MPI= -I./sionlib/install/sionlib_linux/include -D_LINUX -DSION_MPI -g -DUSELQBUFFERSEND -DBCASTDT -Wall
GCCFLAGS=  -D_LINUX $(LARGEFILE) -g -DUSELQBUFFERSEND -DBCASTDT

LIBS_MPI = -L./sionlib/install/sionlib_linux/lib -lsion -g
LIBS =  -lm -L./sionlib/install/sionlib_linux/lib -lsionser -g

default: mpilinktest pingponganalysis limqueuetest randomtest mpicolltest

limprioqueue.o:   limprioqueue.c
	$(CC) $(CFLAGS) -c limprioqueue.c 

postscript_driver.o:   postscript_driver.c postscript_driver.h
	$(CC) $(CFLAGS) -c postscript_driver.c 

pingponganalysis_tools.o:   pingponganalysis_tools.c pingponganalysis_tools.h
	$(CC) $(CFLAGS) -c pingponganalysis_tools.c 

mapping.o:   mapping.c
	$(MPIGCC) $(GCCFLAGS) -c mapping.c 

mpilinktestbgp.o: mpilinktestbgp.c Makefile_LINUX
	$(MPICC) $(CFLAGS_MPI) $(BGCFLAGS) -c mpilinktestbgp.c 

mpicolltest.o: mpicolltest.c Makefile_LINUX
	$(MPICC) $(CFLAGS_MPI) $(BGCFLAGS) -c mpicolltest.c 

mpilinktestbgp_ori.o: mpilinktestbgp_ori.c Makefile
	$(MPICC) $(CFLAGS_MPI) $(BGCFLAGS) -c mpilinktestbgp_ori.c 

mpilinktest:   ./sionlib/install/sionlib_linux/include/sion.h mpilinktestbgp.o mapping.o limprioqueue.o 
	$(MPICC) $(CFLAGS_MPI) -o mpilinktest mapping.o limprioqueue.o mpilinktestbgp.o $(LIBS_MPI) -DSION_MPI
	cp mpilinktest ..

mpicolltest:    mpicolltest.o
	$(MPICC) $(CFLAGS_MPI) -o mpicolltest  mpicolltest.o $(LIBS_MPI) 
	cp mpicolltest ..

mpilinktest_ori:   mpilinktestbgp_ori.o mapping.o ppmwrite.o 
	$(MPICC) $(CFLAGS_MPI) -o mpilinktest_ori mapping.o ppmwrite.o mpilinktestbgp_ori.o $(LIBS_MPI) 

ppmwrite.o:   ppmwrite.c
	$(CC) $(CFLAGS) -c ppmwrite.c 

pingponganalysis.o:   pingponganalysis.c
	$(CC) $(CFLAGS) -c pingponganalysis.c 

pingponganalysis:   pingponganalysis.o ppmwrite.o limprioqueue.o postscript_driver.o pingponganalysis_tools.o
	$(CC) $(CFLAGS) -o pingponganalysis pingponganalysis.o ppmwrite.o limprioqueue.o postscript_driver.o pingponganalysis_tools.o $(LIBS)
	cp pingponganalysis ..

limqueuetest.o:   limqueuetest.c
	$(CC) $(CFLAGS) -c limqueuetest.c 

limqueuetest:   limqueuetest.o limprioqueue.o
	$(CC) $(CFLAGS) -o limqueuetest limqueuetest.o limprioqueue.o $(LIBS)
	cp limqueuetest ..

randomtest.o:   randomtest.c
	$(CC) $(CFLAGS) -c randomtest.c 

randomtest:   randomtest.o
	$(CC) $(CFLAGS) -o randomtest randomtest.o $(LIBS)
	cp randomtest ..


./sionlib/install/sionlib_linux/include/sion.h:
	(cd sionlib/src; gmake -f Makefile_LINUX all install)

./sionlib/install/sionlib_linux/lib/libsion.a:
	(cd sionlib/src; gmake -f Makefile_LINUX all install)

clean::
	rm -rf *.o  *~ *core*
	rm -rf mpilinktest
	(cd sionlib/src; gmake -f Makefile_LINUX clean)

