#
# Master Makefile for the EuroBen Efficiency Benchmark

SHELL   = /bin/sh

PROGRAMS = commun dddot  fft1d gmxm gmxv linful linspar ping  pingpong qsort \
           smxv   transp wvlt2d
SEQS     = basics fft1d  gmxv  gmxm linful linspar qsort smxv wvlt2d 
MPIS     = commun dddot  ping  pingpong  transp
EFFS     = fft1d  linful linspar wvlt2d
INTLIB   = intlib.a 

state:
	@for prog in ${PROGRAMS} ;\
	do echo 'Moving state.f to' $${prog} ;\
	   cp ./basics/state.f $${prog} ;\
	done

clock-seq:
	@for prog in ${SEQS} ;\
	do echo 'Moving wclock.f to' $${prog} ;\
	   cp ./basics/wclock.f $${prog} ;\
           cp ./basics/cclock.c $${prog} ;\
	done

make-seq:
	@for prog in ${SEQS} ;\
	do echo 'Making Makefile for' $${prog} ;\
	   ./install/MakeHeader-seq $${prog} ;\
	done

make-mpi:
	@for prog in ${MPIS} ;\
	do echo 'Making Makefile for' $${prog} ;\
	   ./install/MakeHeader-mpi $${prog} ;\
	done

speed:
	@for prog in ${EFFS} ;\
	do echo 'Adjusting Theor. Peak Perf. for' $${prog} ;\
           (cd $${prog};../install/MakeSpeed $${prog}) ;\
	done

lib:
	(cd basics; make)

makeall:
	@for prog in basics ${PROGRAMS} ; \
	do echo ; \
	   (cd $${prog}; make) ; \
	done

runall:
	@for prog in ${PROGRAMS} ;\
	do ./xrun $${prog} ;\
	done

collect:
	@if  test ! -d Log.`hostname` ;\
	then mkdir Log.`hostname` ;\
	fi
	@for prog in ${PROGRAMS} ; \
	do if test -f $${prog}/$${prog}.log ;\
	   then echo Moving $${prog}.log to Log.`hostname` ;\
	        /bin/mv -f $${prog}/$${prog}.log Log.`hostname` ;\
	   fi ;\
	done

clean:
	@for prog in ${PROGRAMS} ; \
	do echo ; \
	   (cd $${prog}; make clean) ; \
	done

veryclean:
	@for prog in ${PROGRAMS} ; \
	do echo ; \
	   (cd $${prog}; make veryclean) ; \
	done ; \
	(cd basics; make veryclean)

rmmake:
	@for prog in ${PROGRAMS} ;\
	do /bin/rm -f $${prog}/Makefile ;\
	   echo 'Makefile for' $${prog} 'removed' ;\
	done
