msspec_python3/src/msspec/spec/fortran/Makefile

48 lines
1.1 KiB
Makefile

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