# This is the makefile for testing the mesa opacities library

MESA_DIR = ../../..

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

# STEP 1: get the standard compiler setup

include $(MESA_DIR)/utils/makefile_header

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

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

# STEP 2: info about the libraries

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

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

# STEP 3: build

TEST = tester
#TEST_OBJS = kap_support.o test_kap.o
TEST_OBJS = test_kap_support.o test_kap.o

TESTQ = test_quietly
TESTQ_OBJS = test_kap_support.o test_kap_quietly.o

PLOT = plotter
PLOT_OBJS = test_kap_support.o plot_kap.o

XCO = xco
XCO_OBJS = z_xcotrin_tst.o

SAMPLE = sample_kap
SAMPLE_OBJS = sample_kap.o

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

$(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)

$(XCO) : $(XCO_OBJS)
	$(LOADER) $(FCopenmp) -o $(TEST_DIR)/$(XCO) $(XCO_OBJS) $(LOAD_LOCAL) $(LOAD_OTHER)

$(SAMPLE) : $(SAMPLE_OBJS)
	$(LOADER) $(FCopenmp) -o $(TEST_DIR)/$(SAMPLE) $(SAMPLE_OBJS) $(LOAD_LOCAL) $(LOAD_OTHER)

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

XCO_SRC_DIR = ../xco_src

%.o: $(XCO_SRC_DIR)/%.f
	$(FC) $(FCbasic) $(XCO_SRC_DIR) -c $(FCfixed) $<

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

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