SHELL=/bin/sh

#==============================================================================
#
# DTC GSI Makefile
#
#==============================================================================

#------------
# Include machine dependent compile & load options
#------------
include ../../configure.gsi

COREROOT = $(COREDIR)
COREBIN  = $(COREROOT)/run
CORELIB  = $(COREROOT)/lib
COREINC  = $(COREROOT)/include
COREETC  = $(COREROOT)/etc
EXE_FILE = gsi.exe


# ---------
# Libraries
# ---------
## LIBmpeu  = -L$(CORELIB) -lmpeu
LIBbufr     = -L$(CORELIB) -lbufr_i4r8
LIBw3       = -L$(CORELIB) -lw3nco_i4r8 -lw3emc_i4r8
LIBsp       = -L$(CORELIB) -lsp_i4r8
LIBbacio    = -L$(CORELIB) -lbacio
LIBsfcio    = -L$(CORELIB) -lsfcio_i4r4
LIBsigio    = -L$(CORELIB) -lsigio_i4r4
LIBcrtm     = -L$(CORELIB) -lcrtm
LIBtransf   = -L$(CORELIB) -ltransf
LIBhermes   = -L$(CORELIB) -lhermes
LIBnemsio   = -L$(CORELIB) -lnemsio
LIBrrcld    = -L$(CORELIB) -lgsdcloud
LIBprpdcdr  = -L$(CORELIB) -lprepdecode_i4r8

# --------------------------
# Default Baselibs Libraries
# --------------------------
LIBnetcdf       = -L$(NETCDFPATH)/lib $(NETCDFLIBS)
LIBwrf          = $(WRF_LIB)

# ------------------------
# Default System Libraries
# ------------------------
LIBmpi          = -lmpi
## LIBsys          = -lessl_r -lmass -bdatapsize:64K -bstackpsize:64K
LIBsys          = $(MYLIBsys) 


# --------------------
# Installing directory
# --------------------

  INSTALL_DIR = $(COREBIN)


# --------
# Log file
# --------

  LOG_FILE = log.make.$(EXE_FILE)


#-----------------------------------------------------------------------------
#                          -- Child make --
#-----------------------------------------------------------------------------

# ------------
# Source files
# ------------
include ./Makefile.src

# ----

LIB =   libgsi.a

# ------------------------
# Call compiler and linker
# ------------------------

all : $(LIB) $(EXE_FILE)


$(LIB):	 $(OBJS)
	echo $(OBJS)
	$(AR) -ruv $(LIB) $(OBJS)

$(EXE_FILE):  $(OBJS) $(LIB) gsimain.o
	$(F90) $(LDFLAGS) -o gsi.exe gsimain.o libgsi.a $(LIBcrtm) $(LIBsfcio) $(LIBsigio) $(LIBnemsio) $(LIBw3) $(LIBbacio) $(LIBbufr) $(LIBsp) $(LIBmpeu) $(LIBwrf) $(LIBnetcdf) $(LIBsys) $(LIBrrcld) $(LIBprpdcdr)
	cp $(EXE_FILE) $(COREBIN)

# DEPENDENCIES : only dependencies after this line (don't remove the word DEPENDENCIES)

include Makefile.dependency

.SUFFIXES : .f90 .F90 .fpp .o

.F90.o:
	$(CPP) $(CPP_FLAGS) $(CPP_F90FLAGS) $*.F90  > $*.fpp
	$(F90) $(FFLAGS) -c $*.fpp
	$(RM) $*.fpp


%.o : %.mod


clean:
	$(RM) -f *.o *.exe $(LIB)

