blob: e0894156d9a780332ef82e2911385f4b4b94586c [file] [log] [blame]
PROGRAM = $(BINDIR)/$(BENCHMARK).$(CLASS).x
FCOMPILE = $(F77) -c $(F_INC) $(FFLAGS)
CCOMPILE = $(CC) -c $(C_INC) $(CFLAGS)
CCOMPILE_pp = $(CC_pp) -c $(C_INC_pp) $(CFLAGS_pp)
# Class "U" is used internally by the setparams program to mean
# "unknown". This means that if you don't specify CLASS=
# on the command line, you'll get an error. It would be nice
# to be able to avoid this, but we'd have to get information
# from the setparams back to the make program, which isn't easy.
CLASS=U
default:: ${PROGRAM}
# This makes sure the configuration utility setparams
# is up to date.
# Note that this must be run every time, which is why the
# target does not exist and is not created.
# If you create a file called "config" you will break things.
config:
@cd ../sys; ${MAKE} all
../sys/setparams ${BENCHMARK} ${CLASS}
COMMON=../common
${COMMON}/${RAND}.o: ${COMMON}/${RAND}.f ../config/make.def
cd ${COMMON}; ${FCOMPILE} ${RAND}.f
${COMMON}/print_results.o: ${COMMON}/print_results.f ../config/make.def
cd ${COMMON}; ${FCOMPILE} print_results.f
${COMMON}/c_print_results.o: ${COMMON}/c_print_results.c ../config/make.def
cd ${COMMON}; ${CCOMPILE} c_print_results.c
${COMMON}/timers.o: ${COMMON}/timers.f ../config/make.def
cd ${COMMON}; ${FCOMPILE} timers.f
${COMMON}/c_timers.o: ${COMMON}/c_timers.c ../config/make.def
cd ${COMMON}; ${CCOMPILE} c_timers.c
${COMMON}/wtime.o: ${COMMON}/${WTIME} ../config/make.def
cd ${COMMON}; ${CCOMPILE} ${MACHINE} -o wtime.o ${COMMON}/${WTIME}
# For most machines or CRAY or IBM
# cd ${COMMON}; ${CCOMPILE} ${MACHINE} ${COMMON}/wtime.c
# For a precise timer on an SGI Power Challenge, try:
# cd ${COMMON}; ${CCOMPILE} -o wtime.o ${COMMON}/wtime_sgi64.c
${COMMON}/c_wtime.o: ${COMMON}/${WTIME} ../config/make.def
cd ${COMMON}; ${CCOMPILE} -o c_wtime.o ${COMMON}/${WTIME}
# Normally setparams updates npbparams.h only if the settings (CLASS)
# have changed. However, we also want to update if the compile options
# may have changed (set in ../config/make.def).
npbparams.h: ../config/make.def
@ echo make.def modified. Rebuilding npbparams.h just in case
rm -f npbparams.h
../sys/setparams ${BENCHMARK} ${CLASS}
# So that "make benchmark-name" works
${BENCHMARK}: default
${BENCHMARKU}: default