COMP:=gfortran F2PY:=f2py3 COMP_OPTS:= -O2 -ffast-math F2PY_OPTS:= DEBUG:=0 objects_src := dim_mod.f modules.f renormalization.f allocation.f spec.f objects := $(patsubst %.f,%.o, $(objects_src)) EXE=prog ifeq ($(DEBUG),1) COMP_OPTS:=$(COMP_OPTS) -g -Wall -Wextra -Warray-temporaries -Wconversion -fbacktrace -ffree-line-length-0 -fcheck=all -ffpe-trap=zero,overflow,underflow -finit-real=nan F2PY_OPTS:=$(F2PY_OPTS) --debug-capi --debug endif .PHONY: clean pybinding: libspec.so libspec.so: $(objects) main.f @echo "building Python binding..." @$(F2PY) -I. $(objects) $(F2PY_OPTS) -c -m libspec main.f @cp libspec.cpython*.so ../ @mv libspec.cpython*.so libspec.so exe: $(objects) prog.f @$(COMP) -c main.f @$(COMP) -c prog.f @$(COMP) -o $(EXE) $(objects) main.o prog.o $(objects): $(objects_src) @echo "compiling subroutines and functions for spec..." # $(COMP) -cpp -fPIC -O2 -ffast-math -mcmodel=large -fdefault-real-4 -c $^ # @$(COMP) $(OPTS) -fPIC -mcmodel=large -c $^ @$(COMP) $(COMP_OPTS) -fPIC -c $^ clean: @echo "cleaning..." @rm -rf *.so *.o *.mod @rm -rf $(EXE) @rm -rf ../*.so