# This is the makefile for building the mesa eos data

CEOS_DIR = ..
PACKAGE_DIR = ../..
MESA_DIR = ../../..

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

# STEP 1: get the standard compiler setup

include $(MESA_DIR)/utils/makefile_header

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

# STEP 2: info about the libraries

OTHER_LIBS_DIR = $(MESA_DIR)/lib
INCLUDES = -I$(MESA_DIR)/include
LOAD_OTHER_LIBS = -L$(OTHER_LIBS_DIR) $(LOAD_MESA_NUMERICS)

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

# STEP 3: build

EOS_DEFS = 
EOS_OBJS = eos_def.o gauss_fermi.o azbar.o helm_alloc.o helm_core.o \
   EOS5_xtrin_H-He.o opal_core.o scvh_core.o \
   opal_scvh_driver.o helm_opal_scvh_driver.o

CEOS = ceos
CEOS_OBJS = $(EOS_OBJS) create_eos_files.o

all : $(CEOS)

$(CEOS) : $(EOS_DEFS) $(CEOS_OBJS)
	$(FC) $(FCopenmp) -o $(CEOS_DIR)/$(CEOS) $(CEOS_OBJS) $(LOAD_OTHER_LIBS)
	
#################################################################

SRC_DIR = $(CEOS_DIR)/src
EOS_PUBLIC_DIR = $(PACKAGE_DIR)/public
EOS_PRIVATE_DIR = $(PACKAGE_DIR)/private

PKG_INCLUDES = -I$(PACKAGE_DIR)/make

COMPILE_NC = $(COMPILE_NO_CHECKS) $(FCfixed) $(PKG_INCLUDES)

%.o: $(SRC_DIR)/%.f
	$(COMPILE_TO_DEPLOY) $(FCfixed) -I$(EOS_PRIVATE_DIR) -c $<

%.o: $(EOS_PRIVATE_DIR)/%.f
	$(COMPILE_NC) -I$(EOS_PRIVATE_DIR) -c $<
	
%.o: $(EOS_PUBLIC_DIR)/%.f
	$(COMPILE_NC) -I$(EOS_PUBLIC_DIR) -c $<
	
EOS5_xtrin_H-He.o: $(SRC_DIR)/EOS5_xtrin_H-He.f
	$(COMPILE_NC) $<
	
opal_core.o: $(SRC_DIR)/opal_core.f
	$(COMPILE_NC) $<
	
scvh_core.o: $(SRC_DIR)/scvh_core.f
	$(COMPILE_NC) $<

helm_core.o: $(EOS_PRIVATE_DIR)/helm_core.f \
  $(EOS_PUBLIC_DIR)/eos_def.f \
  $(EOS_PRIVATE_DIR)/helm_coulomb2.dek \
  $(EOS_PRIVATE_DIR)/helm_store_results.dek \
  $(EOS_PRIVATE_DIR)/helm_print_results.dek \
  $(EOS_PRIVATE_DIR)/helm_declare_local_variables.dek \
  $(EOS_PRIVATE_DIR)/helm_gammas.dek \
  $(EOS_PRIVATE_DIR)/helm_ideal_ions.dek \
  $(EOS_PRIVATE_DIR)/helm_initialize_local_variables.dek \
  $(EOS_PRIVATE_DIR)/helm_radiation.dek \
  $(EOS_PRIVATE_DIR)/helm_sum_totals.dek
	$(COMPILE_NC) $<

clean:
	-@rm -f *.o *.mod *genmod.f90 $(CEOS_DIR)/$(CEOS)
