# This is the makefile for the mesa nuclear reaction rates package

MESA_DIR = ../..

#################################################################
#
# PREAMBLE

include $(MESA_DIR)/utils/makefile_header

ifeq ($(RATES_OFFLOAD),YES)
CC += -Doffload
FC += -Doffload
endif

#################################################################
#
# SOURCE FILES

SRCS = \
   rates_def_mic.f90 \
   rates_def.f90 \
   rates_names.f90 \
   rates_reverses.f90 \
   load_weak.f90 \
   eval_weak.f90 \
   coulomb.f90 \
   load_ecapture.f90 \
   eval_psi.f90 \
   eval_coulomb.f90 \
   eval_ecapture.f90 \
   reaclib_eval.f90 \
   reaclib_support_mic.f90 \
   reaclib_support.f90 \
   reaclib_print.f90 \
   reaclib_input.f90 \
   ratelib_mic.f90 \
   ratelib.f90 \
   pycno.f90 \
   raw_rates.f90 \
   rates_initialize_mic.f90 \
   rates_initialize.f90 \
   rates_support.f90 \
   screen5.f90 \
   screen_graboske.f90 \
   screen.f90 \
   rates_lib.f90

#################################################################
#
# TARGETS

LIB = librates.a
LIB_OBJS = $(patsubst %.f,%.o,$(patsubst %.f90,%.o,$(SRCS)))
$(LIB) : $(LIB_OBJS)
	$(LIB_TOOL) $(LIB) $(LIB_OBJS)

#################################################################
#
# COMPILATION RULES

#COMPILE = $(COMPILE_TO_TEST) $(FCfree)
COMPILE = $(COMPILE_TO_DEPLOY) $(FCfree)

COMPILE_CMD = $(COMPILE)

rates_names.o: COMPILE_CMD = $(COMPILE_BASIC) $(FCfree) $(FCchecks) -c -O0

%.o : %.f
	$(COMPILE_CMD) $<
%.o : %.f90
	$(COMPILE_CMD) $<
%.mod : %.o
	@true

clean:
	-@rm -f *.o *.mod *.modmic *.a .depend

#################################################################
#
# DEPENDENCIES

# Paths to search for source & include files

VPATH = $(MOD_PUBLIC_DIR):$(MOD_PRIVATE_DIR)

# Automatic dependency generation using makedepf90

nodeps : $(.DEFAULT_GOAL)

NODEPS = $(or $(filter nodeps,$(MAKECMDGOALS)),$(filter clean,$(MAKECMDGOALS)))

ifeq ($(NODEPS),)

  DEPEND_DIRS = $(MOD_PUBLIC_DIR):$(MOD_PRIVATE_DIR)

  .depend :
	makedepf90 -m %m.mod -I$(DEPEND_DIRS) $(SRCS) > .depend
  -include .depend

endif
