# Makefile
# To do:
# - Generate different param.inc dynamically, as advertised
# - Use Pencil's adapt-mkfile framework (also as advertised)
.SUFFIXES: # clear builtin suffixes
.SUFFIXES: .f90 .o .x
FC=g95
FFLAGS=-O3
MOD_O = timings_module.o array_valued_module.o
EXE = array-val-funcs.x
## Generic rules:
##
.f90.x:
$(FC) $(FFLAGS) $*.f90 $(MOD_O) -o $*.x
.f90.o:
$(FC) $(FFLAGS) $*.f90 -c -o $*.o
## Explicit rules:
##
default: test
code: $(EXE)
test: code
for x in $(EXE); do \
echo "$${x}:"; \
./$${x}; \
done
# Dependencies of executables [most or all will depend on $(MOD_O)]:
array-val-funcs.x: array-val-funcs.f90 $(MOD_O)
# Other stuff
$(MOD_O): param.inc
param.inc: Makefile
@touch param.inc
@printf "%s\n" \
'! param.inc' \
'!' \
'! Written by Makefile; if you edit this file, you get what you deserve.' \
'' \
'integer, parameter :: nx=1024, niter=1000000' \
'' \
'! End of file' \
> param.inc
clean:
rm -rf *.o *.x *.mod
rm -rf param.inc
cleanall: clean
cleann: cleanall
# End of file