# known to compile with gfortran version 7, ifort version 17, pgfortran version 18 # Examples # F90=ifort FFLAGS=-fast make clean all # F90=gfortran F90FLAGS=-ffree-line-length-none make clean all # F90=pgfortran F90FLAGS="-fast -Minfo=loop" make clean all # if XCodeML F_Front is installed, set FFRONT=F_Front to parse code into XML FFRONT ?= true F90 ?= gfortran F90FLAGS ?= -ffree-line-length-none NAMES = $(basename $(notdir $(wildcard physics/*.F90))) OBJECTS = $(addprefix obj/, $(addsuffix .o, $(NAMES))) all : obj $(OBJECTS) lib/libphyparam.so py : clean all bash/extract_cython.sh cd python ; rm -rf build *.c ; python setup.py build_ext --inplace obj : @rm -rf obj include lib xml tmp *~ */*~ @mkdir obj include lib xml tmp clean : nice @rm -rf obj include lib xml tmp *~ */*~ @mkdir obj include lib xml tmp @bash/concatenate_all_code.sh $(NAMES) > tmp/all_code @bash/makedeps.sh tmp/all_code > Makefile.inc nice: bash/beautify.sh physics/*.F90 %.so : $(OBJECTS) $(F90) -shared $^ -o $@ SRC = $(basename $(notdir $@)) obj/%.o: physics/%.F90 $(F90) -I include -fPIC $(F90FLAGS) -c $< @mv $(SRC).mod include @mv $(SRC).o obj @cpp -DXCODEML $< > tmp/$(SRC).f90 @$(FFRONT) -M tmp tmp/$(SRC).f90 > xml/$(SRC).xml # dependencies between modules $(OBJECTS) : obj/logging.o -include Makefile.inc