Skip to content
Snippets Groups Projects
makefile_all_libs_new 3.18 KiB
Newer Older
# REQUIRES GMAKE!!!!
#
# makefile for wgrib2
# 
# compiles every #@?! library needed by wgrib2
# then tries to compile wgrib2
#
# mod 1/07 M. Schwarb (libgrib2c name change)
#
# this version uses netcdf libraries -- compile C only version
#  get from UCAR if compile doesn't work
#
#
# on NCEP AIX
# export CC=/usr/vacpp/bin/xlC_r
# export CPP=/usr/bin/cpp


# netcdf: write netcdf files
# regex: regular expression package used by (match,not), POSIX-2
# tigge: enable -tigge option for tigge names
# mysql: write to mysql files

USE_NETCDF=0
USE_REGEX=1
USE_TIGGE=1
USE_MYSQL=0

# wCPPFLAGS has the directory of the includes 
# wLDFLAGS has the directory/name of the library
# DEFS = -D.... (definitions for C compiler)

DEFS=
wCPPFLAGS=-O2
wLDFLAGS=

ifeq ($(USE_REGEX),1)
   DEFS+=-DUSE_REGEX
endif

ifeq ($(USE_TIGGE),1)
   DEFS+=-DUSE_TIGGE
endif

# grib2c library

g=g2clib-1.1.7
glib=$g/libgrib2c.a
wLDFLAGS+=-L../$g -lgrib2c
wCPPFLAGS+=-I../$g

ifeq ($(USE_NETCDF),1)
   n=netcdf-3.6.2
   nlib=$n/libsrc/.libs/libnetcdf.a
   wLDFLAGS+=-L../$n/libsrc/.libs -lnetcdf
   wCPPFLAGS+=-I../$n/libsrc
   DEFS+=-DUSE_NETDEF
endif

ifeq ($(USE_MYSQL),1)
   DEFS+=-DUSE_MYSQL
#   wCPPFLAGS+=-I/export/wesley/wd51we/download/mysql-5.0.51a-linux-i686-glibc23/include
#   wLDFLAGS+=/export/wesley/wd51we/download/mysql-5.0.51a-linux-i686-glibc23/lib/libmysqlclient.a
#   wLDFLAGS+=-L/export/wesley/wd51we/download/mysql-5.0.51a-linux-i686-glibc23/lib -lmysqlclient
   wCPPFLAGS+=`mysql_config --cflags`
   wLDFLAGS=`mysql_config --libs`
endif

# Jasper

j=jasper-1.900.1
jlib=$j/src/libjasper/.libs/libjasper.a
wLDFLAGS+=-L../$j/src/libjasper/.libs -ljasper
wCPPFLAGS+=-I../$j/src/libjasper/include
# png 

p=libpng-1.2.23
plib=$p/.libs/libpng.a
wLDFLAGS+=-L../$p/.libs -lpng
wCPPFLAGS+=-I../$p

# z

z=zlib-1.2.3
zlib=$z/libz.a
wLDFLAGS+=-L../$z -lz
wCPPFLAGS+=-I../$z

wLDFLAGS+=-lm
wCPPFLAGS+=-I/usr/include ${CPPFLAGS}

# -----------------------------------------------------

w=wgrib2
prog=$w/wgrib2

# check if make is GNU make else use gmake
make_is_gnu:=$(word 1,$(shell make -v))
ifeq ($(make_is_gnu),GNU)
   MAKE:=make
else
   MAKE:=gmake
endif

all:	${jlib} ${plib} ${zlib} ${glib} ${nlib} ${prog}

${jlib}:
	cp $j.tar.gz tmpj.tar.gz
	gunzip -n tmpj.tar.gz
	tar -xvf tmpj.tar
	rm tmpj.tar
	cd $j && ./configure --disable-libjpeg --disable-opengl && ${MAKE}

${plib}:	${zlib}
	cp $p.tar.gz tmpp.tar.gz
	gunzip -n tmpp.tar.gz
	tar -xvf tmpp.tar
	rm tmpp.tar
	cd $p && export CPPFLAGS="${wCPPFLAGS}" && ./configure --disable-shared && ${MAKE}

${zlib}:
	cp $z.tar.gz tmpz.tar.gz
	gunzip -n tmpz.tar.gz
	tar -xvf tmpz.tar
	rm tmpz.tar
	cd $z && ./configure && ${MAKE}

${glib}:	${jlib} ${plib} ${zlib}
	cd $g && export CPPFLAGS="${wCPPFLAGS}" && ${MAKE} -f makefile_all_libs_new

${nlib}:
	cp netcdf.tar.gz tmpn.tar.gz
	gunzip -n tmpn.tar.gz
	tar -xvf tmpn.tar
	rm tmpn.tar
	cd $n && ./configure --enable-c-only && ${MAKE} check

${prog}:	$w/wgrib2.c $w/*.c $w/*.h ${glib} ${jlib} ${nlib} ${zlib} ${plib}
	cd $w && export LDFLAGS="${wLDFLAGS}" && export CPPFLAGS="${wCPPFLAGS}" && export DEFS="${DEFS}" && ${MAKE} -f makefile_all_libs_new

clean:
	cd $w && ${MAKE} clean
	cd $g && touch junk.a junk.o && rm *.o *.a
	rm -rf $n
	rm -rf $j
	rm -rf $p
	rm -rf $z