# This is the makefile for testing the mesa net library

MESA_DIR = ../../..

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

# STEP 1: get the standard compiler setup

include $(MESA_DIR)/utils/makefile_header

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

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

# STEP 2: info about the libraries

APROX21_FXT_FLAG =
LOAD_LOCAL = -L$(LOCAL_LIB_DIR) -lnet

#APROX21_FXT_FLAG = -DAPROX21
#LOAD_LOCAL = -L$(LOCAL_LIB_DIR) -lnet -L$(MESA_DIR)/net/aprox21_fxt -la21fxt

#######

LOAD_OTHER = -L$(MESA_LIB_DIR) -leos -lrates -lchem $(LOAD_MESA_NUMERICS)

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

# STEP 3: build

TEST_BASE_OBJS = test_net_do_one.o test_net_support.o mod_one_zone_burn.o 
TEST_STD_OBJS = $(TEST_BASE_OBJS) mod_test_net.o

TEST = tester
TEST_OBJS = $(TEST_STD_OBJS) test_net.o

TESTQ = test_quietly
TESTQ_OBJS = $(TEST_STD_OBJS) test_net_quietly.o

#PLOT = plotter
#PLOT_OBJS = test_net_support.o test_burn.o plot_net.o

SAMPLE = sample
SAMPLE_OBJS = sample_net.o

ONE_ZONE = burn
ONE_ZONE_OBJS = $(TEST_BASE_OBJS) one_zone_burn.o

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

DEBUG_FLAGS = -g

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

$(ONE_ZONE) : $(ONE_ZONE_OBJS)
	$(LOADER) $(FCopenmp) -o $(TEST_DIR)/$(ONE_ZONE) $(ONE_ZONE_OBJS) $(LOAD_LOCAL) $(LOAD_OTHER)

	
#################################################################
   
TEST_COMPILE += $(APROX21_FXT_FLAG)

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

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

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

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

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