
.SUFFIXES :
.SUFFIXES : .F .f .c .o .a
.PRECIOUS : $(LIB)
.SILENT:

# Define system commands.

RM      = /bin/rm -f
ECHO    = /bin/echo
ARCHIVE = ar rs

# Define compiler flags from machine dependent make.inc.

include ./make.inc_NVIDIA

INC       = ./
COMPILE.f = $(FC) -c $(FFLAGS) -I$(INC)

# Define all necessary source files.

OBJ = \
data_parameters.o \
flake_parameters.o \
flake_configure.o \
flake_paramoptic_ref.o \
flake_derivedtypes.o  \
flake_albedo_ref.o  \
SfcFlx.o  \
flake.o  \
src_flake_interface_1D.o 

# Define library path and name.

LIB = ./flake.a

.f.a:
	$(ECHO)
	$(ECHO) "Compiling $<"
	$(COMPILE.f) $<
	$(ECHO) "Adding $(<:.f=.o) to $(LIB) archive HERE."
	$(ARCHIVE) $@ $(<:.f=.o)
	$(RM) $(<:.f=.o)

.f.o:
	$(ECHO)
	$(ECHO) "Compiling $<"
	$(COMPILE.f) $<
	$(ECHO) "Adding $(<:.f=.o) to $(LIB) archive."
	$(ARCHIVE) $(LIB) $(<:.f=.o)
	$(RM) $(<:.f=.o)

# Default target.

$(LIB): $(OBJ)
	$(ECHO)
	$(ECHO) "$(LIB) up-to-date"
	$(ECHO)

lib: $(LIB)


clean:
	/bin/rm -f *i.*.f* *.i *.lst ${LIB}
