# This is the makefile for testing the mesa eos library

MESA_DIR = ../../..

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

# STEP 1: get the standard compiler setup

include $(MESA_DIR)/utils/makefile_header

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

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

# STEP 2: info about the libraries

LOAD_LOCAL = -L$(LOCAL_LIB_DIR) -leos
LOAD_OTHER = -L$(MESA_LIB_DIR) -lchem $(LOAD_MESA_NUMERICS)

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

# STEP 3: build

TEST = tester
TEST_OBJS = opal_eval.o eos_support.o test_macdonald_eos.o \
   test_eos_support.o test_eos.o

TESTQ = test_quietly
TESTQ_OBJS = eos_support.o test_macdonald_eos.o \
   test_eos_support.o test_eos_quietly.o

PLOT = plotter
PLOT_OBJS = eos_support.o \
   plot_eosDT.o plot_eosQT.o plot_eosPT.o plot_eosDE.o \
   plotter.o

SAMPLE = sample
SAMPLE_OBJS = sample_eos.o

all : $(PLOT) $(TEST) $(TESTQ) $(SAMPLE)

$(TEST) : $(TEST_OBJS)
	$(LOADER) $(FCopenmp) -o $(TEST_DIR)/$(TEST) $(TEST_OBJS) $(LOAD_LOCAL) $(LOAD_OTHER)
		
$(TESTQ) : $(TESTQ_OBJS)
	$(LOADER) $(FCopenmp) -o $(TEST_DIR)/$(TESTQ) $(TESTQ_OBJS) $(LOAD_LOCAL) $(LOAD_OTHER)
	
$(PLOT) : $(PLOT_OBJS)
	$(LOADER) $(FCopenmp) -o $(TEST_DIR)/$(PLOT) $(PLOT_OBJS) $(LOAD_LOCAL) $(LOAD_OTHER)
	
$(SAMPLE) : $(SAMPLE_OBJS)
	$(LOADER) $(FCopenmp) -o $(TEST_DIR)/$(SAMPLE) $(SAMPLE_OBJS) $(LOAD_LOCAL) $(LOAD_OTHER)
	
#################################################################

SRC_DIR = $(TEST_DIR)/src

opal_eval.o: $(TEST_SRC_DIR)/opal_eval.f
	$(FC) $(FCbasic) $(FCopenmp) $(TEST_INCLUDES) $(FCfixed) $(FCopt) -c $<

potekhin_10.o: $(TEST_SRC_DIR)/potekhin_10.f
	$(FC) $(FCbasic) $(FCopenmp) $(TEST_INCLUDES) $(FCfixed) $(FCopt) -c $<

test_macdonald_eos.o: $(TEST_SRC_DIR)/test_macdonald_eos.f
	$(TEST_COMPILE) $(FCfree) $<

%.o: $(TEST_SRC_DIR)/%.f
	$(TEST_COMPILE) $(FCfixed) $<

clean:
	-@rm -f *.o *.mod $(TEST_DIR)/$(TEST) $(TEST_DIR)/$(TESTQ) \
	$(TEST_DIR)/$(PLOT) $(TEST_DIR)/$(SAMPLE)










