# This is the makefile for the mesa library of utility routines

MESA_DIR = ../..

#################################################################

# STEP 1: get the standard compiler info

include $(MESA_DIR)/utils/makefile_header

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

#################################################################

# STEP 2: build the library

ifeq ($(USE_OPENMP),YES)
UTILS_OMP = utils_openmp
else
UTILS_OMP = utils_openmp_stub
endif

LIB = libutils.a
LIB_DEFS = utils_def.o
LIB_OBJS = $(UTILS_OMP).o $(UTILS_ISNAN).o \
   utils_nan.o utils_dict.o utils_idict.o utils_lib.o

$(LIB) : $(LIB_DEFS) $(LIB_OBJS)
	$(LIB_TOOL) $(LIB) $(LIB_OBJS)
	
#################################################################

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

# need to compile isnan_nope without optimization
utils_isnan_nope.o: $(MOD_PRIVATE_DIR)/utils_isnan_nope.f
	$(FC) $(FCbasic) $(FCnochecks) $(INCLUDES) -c $(FCfree) $<

# need to compile utils_nan without optimization
utils_nan.o: $(MOD_PRIVATE_DIR)/utils_nan.f
	$(FC) $(FCbasic) $(FCwarn) $(FCopenmp) $(INCLUDES) -c $(FCfree) $<

#utils_dict.o: $(MOD_PRIVATE_DIR)/utils_dict.f
#	$(COMPILE_TO_TEST) $(INCLUDES) -c $(FCfree) $<

%.o: $(MOD_PUBLIC_DIR)/%.f
	$(COMPILE) $<

%.o: $(MOD_PRIVATE_DIR)/%.f
	$(COMPILE) $<

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