SHELL = /bin/sh 

#CCCPEV (Cross-Compiler, Cross-Platform Environment Variables)
CC=gcc
CCFLAGS=-c
LCFLAGS= 
OCFLAG=-o 
AR=ar rc
RANLIB=ranlib
RM=del
CP=xcopy
H=h
C=c
O=o
A=exe
D=tds
L=lib
SO=dll

#Files list
SRCP=./src
INCP=./inc
LIBP=./lib
BINP=./bin
TARGET=fes2004_extraction.$(A) fes2004_prediction.$(A)
TARGETDLL=fes2004.$(SO)
SRC=$(SRCP)/fes2004_alloc.$(C) \
    $(SRCP)/fes2004_error.$(C) \
    $(SRCP)/fes2004_kernel.$(C) \
    $(SRCP)/fes2004_io.$(C) \
    $(SRCP)/fes2004_init.$(C) \
    $(SRCP)/fes2004_main.$(C) \
    $(SRCP)/fes2004_extraction.$(C) \
    $(SRCP)/fes2004_prediction.$(C)
LIB=
DLL=
OBJ=$(SRC:.$(C)=.$(O))
HDR=$(INCP)/fes2004_lib.h \
    $(INCP)/netcdf.h \
    $(INCP)/WinGsl.h \
    $(INCP)/fes.h

#Action "make all"
.PHONY=all
all : $(TARGET)
	-$(RM) $(OBJ) $(^:.$(A)=.$(D)) 

$(TARGET) : $(LIB) $(OBJ)
	$(CC) $(LCFLAGS) $(OCFLAG)$@ $^

#Action "make dll"
.PHONY=dll
dll : $(TARGETDLL)
	-$(RM) $(OBJ) $(^:.$(SO)=.$(D)) 

$(TARGETDLL) : $(LIB) $(OBJ)
	$(CC) $(LCFLAGS) $(OCFLAG)$@ $^

$(SRC) $(LIB) $(HDR): 
	@echo Warning: $@ is missing.

%.$(O) : %.$(C)
	$(CC) $(CCFLAGS) -L$(INCP) $<

#Action "make clean"
.PHONY=clean
clean :
	-$(RM) $(OBJ) $(TARGET) $(TARGET:.$(A)=.$(D))

#Dependencies list
$(INCP)/fes2004_lib.h : $(INCP)/netcdf.h $(INCP)/WinGsl.h
$(SRCP)/fes2004_alloc.$(C) : $(INCP)/fes2004_lib.h
$(SRCP)/fes2004_error.$(C) : $(INCP)/fes2004_lib.h
$(SRCP)/fes2004_kernel.$(C) : $(INCP)/fes2004_lib.h
$(SRCP)/fes2004_io.$(C) : $(INCP)/fes2004_lib.h
$(SRCP)/fes2004_init.$(C) : $(INCP)/fes2004_lib.h
$(SRCP)/fes2004_main.$(C) : $(INCP)/fes2004_lib.h
$(SRCP)/fes2004_extraction.$(C) : $(INCP)/fes2004_lib.h
$(SRCP)/fes2004_prediction.$(C) : $(INCP)/fes2004_lib.h

