override FC := gfortran
override FFLAGS := -g -fbounds-check
# set STDF95 to 'strict' (w/o quotes) to enforce standard compliance
STDF95 =
OBJECTS = mod_utilities.o \
          mod_medusa_cocogen.o mod_configure_types.o mod_interfaces.o \
          mod_configure.o mod_xmlcocogen.o \
          medusa_cocogen_xml.o normalize_sourcecode.o \
          expand_includes.o write_array_constructor.o write_coneq_array_constructor.o \
          init_datachains.o xmlcocogen_loaddb.o create_mod_seafloor_wdata.o \
          create_flux2dae.o create_speciate_wcflx.o \
          create_species_h.o create_mod_processsubr.o create_mod_indexparam.o \
          create_mdiffc.o create_setcct.o create_mod_materialcharas.o \
          create_seafloor_setup.o \
          create_mod_netcdfparam.o create_mod_store_ncfiles.o \
          create_mod_read_ncfiles.o \
          create_mod_equilibsubr.o create_mass_balances.o \
          create_mod_seafloor_init.o create_solvsed_codes.o \
          create_mod_fvupwind_params.o \
          create_mod_o2s_s2o_templates.o

ifeq ($(STDF95),strict)
EXTRAFLAGS = -std=f95
OBJECTS += abort.o
else
EXTRAFLAGS =
endif

override INCFLAGS = -I./ -I../../muxml/src
override LDFLAGS  = -L../../muxml/src -lmodmxm

all: medusa_cocogen_xml

medusa_cocogen_xml: $(OBJECTS) configure.h
	$(FC) -o medusa_cocogen_xml $(OBJECTS) $(LDFLAGS)

.SUFFIXES:
.SUFFIXES:	.f90 .F90 .o

.F90.o :
	$(FC) -o $@ -c $(FFLAGS) $(EXTRAFLAGS) $< $(INCFLAGS)

.f90.o :
	$(FC) -o $@ -c $(FFLAGS) $(EXTRAFLAGS) $< $(INCFLAGS)

clean_mcgfiles:
	rm -f *.dbg *.log xml*/*.log ./tmp/*

clean: clean_mcgfiles
	rm -f *.o *.mod *~

tidy: clean
	rm -f medusa_cocogen_xml

