#!/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 ../configure.ac ; then CDILIBVERSION=\"`sed -n '/^AC_INIT(/s/AC_INIT *( *[^,]*,[[ ]*\([^],]*\).*/\1/ p' ../configure.ac`\" else echo "error: cannot find configure.ac" >&2 exit 1 fi cat > ${PROG} << EOR /* Automatically generated by $USER at $DATE, do not edit */ /* CDILIB_VERSION=${CDILIBVERSION} */ #ifdef _ARCH_PWR6 #pragma options nostrict #endif #if defined (HAVE_CONFIG_H) # include "config.h" #endif #ifndef _XOPEN_SOURCE #define _XOPEN_SOURCE 600 #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #ifndef _SX #include #endif #include #ifdef USE_MPI #include "mpi.h" #endif #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 \ cksum.c \ cdi_cksum.c \ taxis.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 \ cdi_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 \ namespace.c \ serialize.c \ resource_handle.c" h="cdi_limits.h resource_handle.h taxis.h dtypes.h file.h service.h extra.h \ ieg.h cdi.h timebase.h calendar.h basetime.h datetime.h namespace.h \ cksum.h cdi_cksum.h error.c error.h cdi_int.h cgribex.h gribapi.h \ stream_cgribex.h stream_gribapi.h stream_grb.h stream_cdf.h \ tablepar.h table.h gaussgrid.h grid.h zaxis.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 vlist_var.h vlist_att.h model.h institution.h \ resource_unpack.h serialize.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 cpp -P -DVERSION="${CDILIBVERSION}" $srcdir/version.c >>${PROG} # 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} exit