#==============================================================================
#
# Makefile for Forward model
#
#==============================================================================

#-----------------------------------------------------------------------------
#                          -- Define macros --
#-----------------------------------------------------------------------------

#---Paths are read from a common file (used across the MIRS package)
paths_path = /home/pub/kgarrett/mirs_trunk/setup
include $(paths_path)/paths

EXEC_path     = ../../bin
MAIN_path     = .
CURR_path     = `pwd`

#---Default macros and rules (from CRTM)
include ${CRTM_path}/make.macros
include ${CRTM_path}/make.rules


# -------------
# This makefile
# -------------
MAKEFILE = makefile

# ----------------
# Executable 
# ----------------
EXE_FILE_1 = ${EXEC_path}/preProcessGeo4CovGen
EXE_FILE_2 = ${EXEC_path}/MergeGeo4CovGen
EXE_FILE_3 = ${EXEC_path}/FilterScenes

# ------------
# Object files
# ------------
OBJ_MAIN_FILES_1 =  ${MAIN_path}/preProcessGeophData.o
OBJ_MAIN_FILES_2 =  ${MAIN_path}/mergeProcessedGeophData.o
OBJ_MAIN_FILES_3 =  ${MAIN_path}/FilterScenes.o


OBJ_UTILITY_FILES =  ${lib_path}/misc/Consts.o ${lib_path}/misc/misc.o ${lib_path}/noise/Noise.o \
		     ${lib_path}/utilities/utils.o ${lib_path}/io/IO_Misc.o ${lib_path}/io/IO_Noise.o \
	             ${lib_path}/io/IO_Scene.o ${lib_path}/io/IO_InstrConfig.o ${lib_path}/qc/ErrorHandling.o \
                     ${lib_path}/math/mathFcts.o ${lib_path}/FwdOperProcess/FwdOperator.o

OBJ_FILES_1         =  ${OBJ_UTILITY_FILES} ${OBJ_MAIN_FILES_1}
OBJ_FILES_2         =  ${OBJ_UTILITY_FILES} ${OBJ_MAIN_FILES_2}
OBJ_FILES_3         =  ${OBJ_UTILITY_FILES} ${OBJ_MAIN_FILES_3}

SRC_UTILITY_FILES = ${OBJ_UTILITY_FILES:.o=.f90}

# -------------------------------
# Include and library definitions
# -------------------------------
INCLUDES  = \
	-I$(lib_path)/io    -I$(lib_path)/misc  -I$(lib_path)/utilities -I$(lib_path)/noise -I$(lib_path)/qc -I$(CRTM_path)/include \
        -I$(lib_path)/FwdOperProcess
LIBRARIES = \
	-L$(CRTM_path)/lib -lCRTM

# -----------------------
# Extra compilation flags
# -----------------------
EXTRA_FC_FLAGS = $(convEndOption)
#EXTRA_FC_FLAGS = 

#-----------------------------------------------------------------------------
#                          -- Define dependecies --
#-----------------------------------------------------------------------------


# ---------------------
# Make based on OS type
# ---------------------

all:
	@echo "OS type detected: "`uname -s` 
	@case `uname -s` in \
		"SunOS")   make -f $(MAKEFILE) the_program $(SUNOS_FLAGS)     ;; \
		"AIX")     make -f $(MAKEFILE) the_program $(AIX_FLAGS)       ;; \
		"IRIX64" ) make -f $(MAKEFILE) the_program $(IRIX64_FLAGS)    ;; \
		"Linux" )  make -f $(MAKEFILE) the_program $(LINUX_FLAGS) ;; \
		*) echo "This system is not supported" ;; \
	esac


# ---------------------
# Make the test program
# ---------------------
the_program : $(EXE_FILE_1) $(EXE_FILE_2) $(EXE_FILE_3)





# ---------------
# Dependency list
# ---------------

#---Dependence of the main program object
${MAIN_path}/preProcessGeophData.o : ${MAIN_path}/preProcessGeophData.f90 ${OBJ_UTILITY_FILES} 
	$(FC) -c  ${MAIN_path}/preProcessGeophData.f90 $(EXTRA_FC_FLAGS) $(FC_FLAGS) -o ${MAIN_path}/preProcessGeophData.o  
${MAIN_path}/mergeProcessedGeophData.o : ${MAIN_path}/mergeProcessedGeophData.f90 ${OBJ_UTILITY_FILES} 
	$(FC) -c  ${MAIN_path}/mergeProcessedGeophData.f90 $(EXTRA_FC_FLAGS) $(FC_FLAGS) -o ${MAIN_path}/mergeProcessedGeophData.o  
${MAIN_path}/FilterScenes.o : ${MAIN_path}/FilterScenes.f90 ${OBJ_UTILITY_FILES} 
	$(FC) -c  ${MAIN_path}/FilterScenes.f90 $(EXTRA_FC_FLAGS) $(FC_FLAGS) -o ${MAIN_path}/FilterScenes.o  

${OBJ_UTILITY_FILES} : ${SRC_UTILITY_FILES}
	cd $(lib_path)  ; make
#---Dependence of the executable
$(EXE_FILE_1) : ${MAIN_path}/preProcessGeophData.o 
	@echo "OS type detected: "`uname -s` 
	$(FL) $(EXTRA_FC_FLAGS) $(OBJ_FILES_1) $(FL_FLAGS) $(EXE_FILE_1)
$(EXE_FILE_2) : ${MAIN_path}/mergeProcessedGeophData.o 
	@echo "OS type detected: "`uname -s` 
	$(FL) $(EXTRA_FC_FLAGS) $(OBJ_FILES_2) $(FL_FLAGS) $(EXE_FILE_2)
$(EXE_FILE_3) : ${MAIN_path}/FilterScenes.o 
	@echo "OS type detected: "`uname -s` 
	$(FL) $(EXTRA_FC_FLAGS) $(OBJ_FILES_3) $(FL_FLAGS) $(EXE_FILE_3)


# --------
# Clean up
# --------

clean:
	$(REMOVE) $(EXE_FILE_1) $(EXE_FILE_2) $(EXE_FILE_3) $(OBJ_FILES_1) $(OBJ_FILES_2) $(OBJ_FILES_3)
