export FC := gfortran
NAME := kmfr
WARN := -Wno-conversion -Wno-unused-label -Wno-unused-variable -Wno-unused-parameter -Wno-unused-dummy-argument
OPT := -O2 -march=native
FLAGS := $(OPT) -finit-local-zero -std=legacy
#DEBUG := -g -fcheck=all -ffpe-trap=zero
#DEBUG := -g -fcheck=all
SRC := dmain.f90 dec.f90 optsct.f90 util.f90
OBJ := $(addsuffix .o, $(basename $(SRC)))
MOD := $(addsuffix .mod, $(basename $(SRC)))

all: $(NAME)
.PHONY: all clean
$(NAME): $(OBJ) minicl/libminicl.a
dmain.o: dec.o optsct.o
dec.o: optsct.o
dmain.o dec.o optsct.o: util.o

%.o: %.for
	$(FC) -c $(FLAGS) $(WARN) $(DEBUG) $<
%.o: %.f90
	$(FC) -c $(FLAGS) $(WARN) $(DEBUG) $<


$(NAME): $(OBJ)
	$(FC) $(WARN) $(DEBUG) -Lminicl -o $(NAME) $(OBJ) -lminicl

clean:
	-rm $(OBJ) $(MOD) $(NAME)
	$(MAKE) -C minicl clean


minicl/libminicl.a:
	$(MAKE) -C minicl

