CC = gcc 
#FC = g95 
FC = gcc

# If Big endian machine use the following
#IN_CFLAGS = -m32 -DBIG_ENDIAN_MACHINE
# If little endian machine use the following
#IN_CFLAGS = -m32
#IN_CFLAGS = -g -DGDS16 -Wall -DCONVERT_GRIB
IN_CFLAGS = -g -Wall -DCONVERT_GRIB

E2FSPROGS = e2fsprogs/e2fsprogs-1.41.14
NETCDF = grib2/netcdf-4.3.2
HDF5 = grib2/hdf5-1.8.11
ZLIB = grib2/zlib-1.2.8

INCLUDE = -I. -I$(PWD)/netcdf/include -I$(E2FSPROGS)/lib/uuid
#MYLIBS = -L/usr/lib64  -lz  -L$(PWD)/netcdf/liblib/.libs -lnetcdf -L$(PWD)/HDF5 -lhdf5_hl -lhdf5 -L/usr/lib64  -lm -ldl -L$(E2FSPROGS)/lib -luuid /usr/lib64/libcurl.so 
MYLIBS = -L/usr/lib64  -lz   -lnetcdf  -lhdf5_hl -lhdf5  -lm -ldl -lcurl -L$(E2FSPROGS)/lib -luuid 

OBJECTS = makeGHRSST-level2p-DW_newday_msg1_fdsk_msg4.o read_grib.o writeNetCDF.o utils.o diurnal_gentemann.o

all: $(OBJECTS)  
	$(FC) $(IN_CFLAGS) -o $(HOME)/mcidas/bin/makeGHRSST-level2p-DW_newday_msg1_fdsk_msg4.x $(OBJECTS) $(MYLIBS) 

CURDIR=$(PWD)

.PHONY: distclean
distclean: 
	rm -f *.o $(HOME)/mcidas/bin/makeGHRSST-level2p-DW_newday_msg1_fdsk_msg4.x	
	cd $(E2FSPROGS) ; make clean ; ./configure --prefix=$(CURDIR)/grib2 ; make ; make install
	cd $(ZLIB) ; make clean ; ./configure --prefix=$(CURDIR)/grib2 ; make ; make install
	cd $(HDF5) ; make clean ; ./configure --prefix=$(CURDIR)/grib2 --with-zlib=$(CURDIR)/grib2 --disable-shared ; make ; make install
	cd $(NETCDF) ; make clean ; ./configure --prefix=$(CURDIR)/grib2 --with-zlib=$(CURDIR)/grib2 --with-hdf5=$(CURDIR)/grib2 --disable-shared --disable-dap ; make ; make install

makeGHRSST-level2p-DW_newday_msg1_fdsk_msg4.o : makeGHRSST-level2p-DW_newday_msg1_fdsk_msg4.c read_grib.h utils.h writeNetCDF.h diurnal_gentemann.h
	$(CC) $(CFLAGS) $(IN_CFLAGS) $(INCLUDE) -c makeGHRSST-level2p-DW_newday_msg1_fdsk_msg4.c
writeNetCDF.o : writeNetCDF.c writeNetCDF.h read_grib.h
	$(CC) $(CFLAGS) $(IN_CFLAGS) $(INCLUDE) -c writeNetCDF.c
read_grib.o : read_grib.c read_grib.h utils.h	
	$(CC) $(CFLAGS) $(IN_CFLAGS) $(INCLUDE) -c read_grib.c
utils.o : utils.c utils.h
	$(CC) $(CFLAGS) $(IN_CFLAGS) $(INCLUDE) -c utils.c
diurnal_gentemann.o : diurnal_gentemann.c diurnal_gentemann.h 
	$(CC) $(CFLAGS) $(IN_CFLAGS) $(INCLUDE) -c diurnal_gentemann.c

,PHONY : clean
clean:
	rm -f *.o $(HOME)/mcidas/bin/Makefile Makefile_msg1_fdsk_msg4.x

