#!/bin/sh # # combine source code into one module # easier to compile -- no make file needed # # pretty generic script -- just echos, cats and greps. # # srcdir=./ if [ ! -z $1 ] ; then srcdir=$1 fi PROG=cdilib.c echo "combining source code into one module" echo "output is ${PROG}" #set -x rm -f ${PROG} DATE=`date +%F` if test -f config.h ; then CDILIBVERSION=`grep PACKAGE_VERSION config.h | cut -f3 -d" "` fi cat > ${PROG} << EOR /* Automatically generated by $USER at $DATE, do not edit */ /* CDILIB_VERSION=${CDILIBVERSION} */ #if defined (HAVE_CONFIG_H) # include "config.h" #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #if defined (HAVE_LIBGRIB_API) # include #endif #if defined (HAVE_MMAP) # include /* mmap() is defined in this header */ #endif #if defined (HAVE_LIBPTHREAD) # include #endif #if defined (HAVE_LIBSZ) # include #endif #if ! defined (HAVE_CONFIG_H) # define HAVE_LIBGRIB 1 # define HAVE_LIBCGRIBEX 1 # define HAVE_LIBSERVICE 1 # define HAVE_LIBEXTRA 1 # define HAVE_LIBIEG 1 #endif EOR c="dmemory.c \ dmemory.h \ taxis.c \ error.c \ timebase.c \ calendar.c \ model.c \ institution.c \ table.c \ util.c \ gaussgrid.c \ varscan.c \ vlist.c \ vlist_att.c \ vlist_var.c \ basetime.c \ servicelib.c \ extralib.c \ ieglib.c \ grid.c \ zaxis.c \ cdf_int.c \ cdi_error.c \ cdi_util.c \ stream_int.c \ stream.c \ stream_history.c \ stream_cgribex.c \ stream_gribapi.c \ stream_grb.c \ stream_srv.c \ stream_ext.c \ stream_ieg.c \ stream_cdf.c \ stream_var.c \ stream_record.c \ tsteps.c \ file.c \ cgribexlib.c \ gribapi.c \ swap.c \ binary.c \ cdf.c \ " h="cdi_limits.h taxis.h error.h dtypes.h file.h cgribex.h gribapi.h service.h extra.h \ ieg.h cdi.h timebase.h calendar.h basetime.h datetime.h stream_int.h \ stream_cgribex.h stream_gribapi.h stream_grb.h stream_cdf.h \ tablepar.h table.h gaussgrid.h grid.h varscan.h binary.h swap.h \ service.h stream_srv.h stream_ext.h stream_ieg.h cdf_int.h \ cdf.h vlist.h" #cat $h >> ${PROG} #cat $c | grep -v '#include' | grep -v '# include' >> ${PROG} for hfile in $h ; do cat $srcdir/$hfile >> ${PROG} done for cfile in $c ; do cat $srcdir/$cfile | grep -v '#include' | grep -v '# include' >> ${PROG} done if test -f config.h ; then cpp -P -DHAVE_CONFIG_H -I./ $srcdir/version.c >> ${PROG} else echo "error: missing config.h" fi # Fortran interface (with -DHAVE_CF_INTERFACE) echo "#if defined (HAVE_CF_INTERFACE)" >> ${PROG} echo "#undef realloc" >> ${PROG} echo "#undef malloc" >> ${PROG} echo "#undef calloc" >> ${PROG} echo "#undef free" >> ${PROG} echo "#undef DOUBLE_PRECISION" >> ${PROG} cat $srcdir/cfortran.h >> ${PROG} echo "#endif" >> ${PROG} cat $srcdir/cdiFortran.c >> ${PROG} echo "#undef realloc" >> ${PROG} echo "#undef malloc" >> ${PROG} echo "#undef calloc" >> ${PROG} echo "#undef free" >> ${PROG} exit