mirror of
https://github.com/Unidata/netcdf-c.git
synced 2024-12-03 08:01:25 +08:00
1a7531392f
Primary fixes to get -ansi to work. 1. Convert all '//' C++ style comments to /*...*/ or to use #if 0...#endif 2. It turns out that when -ansi is specified, then a number of functions no longer are defined in the header -- but they are still in the .so file.<br> The big example is strdup(). So, added code to include/ncconfig.h to define externs for those missing functions that occur in more than one place. These are enabled if !_WIN32 && __STDC__ == 1 (__STDC__ is supposed to be the equivalent compile time flag to -ansi). Note that this requires config.h (which references ncconfig.h) to be included in files where it is currently not included. Single uses will be only in the file that uses them. 3. Added mmap test for the MAP_ANONYMOUS flag to configure.ac. Apparently this is not always defined with -ansi. 4. fix some large integer constants in nc_test4/tst_atts3.c and nc_test4/tst_filterparser.c to avoid compiler complaints. 5. fix a double constant in nc_test4/tst_filterparser.c to avoid compiler complaints. [Note I suspect #4 and #5 will be a problem on big-endian machines, but we have no way to test] Misc. Changes: 1. convert more instances of _MSC_VER to _WIN32. 2. added some debugging code to include/nctestserver.h 3. added comment about libdispatch/drc.c always being compiled. 4. modify parser generation in ncgen to remove unneeded files.
227 lines
4.6 KiB
Bash
227 lines
4.6 KiB
Bash
#!/bin/bash
|
|
#NB=1
|
|
DB=1
|
|
#X=-x
|
|
|
|
ANSI=1
|
|
#MEM=1
|
|
#NOTUIL=1
|
|
#FAST=1
|
|
#PROF=1
|
|
|
|
HDF5=1
|
|
DAP=1
|
|
#SZIP=1
|
|
#HDF4=1
|
|
#PNETCDF=1
|
|
#PAR4=1
|
|
|
|
#TESTSERVERS="localhost:8080,149.165.169.123:8080"
|
|
|
|
if test $# != 0 ; then
|
|
cmds=$@
|
|
fi
|
|
|
|
if test "x$PNETCDF" = x1 -o "x$PAR4" = x1 ; then
|
|
MPIO=1
|
|
fi
|
|
|
|
CFLAGS=""
|
|
#CFLAGS="-Wall -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unused-parameter -Wconversion ${CFLAGS}"
|
|
#CFLAGS="-Wall -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unused-parameter -Wno-char-subscripts -Wno-pointer-sign -Wno-format ${CFLAGS}"
|
|
CFLAGS="-Wall -Wno-unused-parameter -Wno-char-subscripts -Wno-pointer-sign ${CFLAGS}"
|
|
#CFLAGS="-Wall ${CFLAGS}"
|
|
#CFLAGS="-Wconversion"
|
|
|
|
if test "x$MEM" = x1 ; then
|
|
CFLAGS="-fsanitize=address ${CFLAGS}"
|
|
fi
|
|
|
|
if test "x$ANSI" = x1 ; then
|
|
CFLAGS="-ansi ${CFLAGS}"
|
|
fi
|
|
|
|
stddir="/usr/local"
|
|
PREFIX=/usr/local
|
|
|
|
if test "x${cmds}" = x ; then
|
|
cmds=""
|
|
else
|
|
for f in $cmds ; do
|
|
if test "x$f" = "xdistcheck" ; then
|
|
PREFIX=/tmp/$HOST
|
|
fi
|
|
done
|
|
fi
|
|
|
|
# HDF4=>HDF5
|
|
if test "x$HDF4" = x1 ; then
|
|
HDF5=1
|
|
fi
|
|
|
|
# !HDF5=>!SZIP
|
|
if test "x$HDF5" != x1 ; then
|
|
SZIP=0
|
|
fi
|
|
|
|
CC=gcc
|
|
|
|
MALLOC_CHECK=""
|
|
|
|
CPPFLAGS=""
|
|
LDFLAGS=""
|
|
|
|
CFLAGS="-g -O0 $CFLAGS -Wno-undefined"
|
|
|
|
MAKE=make
|
|
IGNORE="test 0 = 1"
|
|
|
|
if test "x$HDF5" = "x1" ; then
|
|
CPPFLAGS="-I${stddir}/include $CPPFLAGS"
|
|
LDFLAGS="-L${stddir}/lib -lhdf5_hl -lhdf5 -lz $LDFLAGS"
|
|
LD_LIBRARY_PATH="${stddir}/lib:$LD_LIBRARY_PATH"
|
|
fi
|
|
|
|
if test "x$HDF4" = "x1" ; then
|
|
LDFLAGS="$LDFLAGS -lmfhdf -ldf -ljpeg"
|
|
fi
|
|
|
|
if test "x$SZIP" = "x1" ; then
|
|
LDFLAGS="$LDFLAGS -lsz -laec"
|
|
fi
|
|
|
|
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
|
|
if test "x$DAP" = "x1" ; then
|
|
if curl-config --version >/dev/null ; then
|
|
TMP=`curl-config --cflags`
|
|
CPPFLAGS="$TMP $CPPFLAGS"
|
|
TMP=`curl-config --libs`
|
|
LDFLAGS="$TMP $LDFLAGS"
|
|
TMP=`curl-config --prefix`
|
|
LD_LIBRARY_PATH="$TMP/lib:$LD_LIBRARY_PATH"
|
|
else
|
|
LDFLAGS="${LDFLAGS} -lcurl"
|
|
fi
|
|
fi
|
|
|
|
CXXFLAGS="$CPPFLAGS $CXXFLAGS"
|
|
|
|
FLAGS="--prefix ${PREFIX}"
|
|
#FLAGS="$FLAGS --disable-cxx"
|
|
#FLAGS="$FLAGS --disable-examples"
|
|
#FLAGS="$FLAGS --enable-cxx-4"
|
|
#FLAGS="$FLAGS --enable-dap-long-tests"
|
|
#FLAGS="$FLAGS --enable-ffio"
|
|
#FLAGS="$FLAGS --enable-benchmarks"
|
|
FLAGS="$FLAGS --enable-extreme-numbers"
|
|
#FLAGS="$FLAGS --enable-large-file-tests"
|
|
#FLAGS="$FLAGS --disable-testsets"
|
|
#FLAGS="$FLAGS --disable-dap-remote-tests"
|
|
#FLAGS="$FLAGS --enable-dap-auth-tests" -- requires a new remotetest server
|
|
#FLAGS="$FLAGS --enable-doxygen --enable-internal-docs"
|
|
FLAGS="$FLAGS --enable-logging"
|
|
#FLAGS="$FLAGS --disable-diskless"
|
|
FLAGS="$FLAGS --enable-mmap"
|
|
#FLAGS="$FLAGS --with-udunits"
|
|
#FLAGS="$FLAGS --with-libcf"
|
|
#FLAGS="$FLAGS --enable-jna"
|
|
#FLAGS="$FLAGS --disable-properties-attribute"
|
|
#FLAGS="$FLAGS --disable-silent-rules"
|
|
#FLAGS="$FLAGS --disable-filter-testing"
|
|
#FLAGS="$FLAGS --enable-metadata-perf"
|
|
#FLAGS="$FLAGS --with-ncproperties-extra=key1=value1,key2=value2"
|
|
#FLAGS="$FLAGS --enable-valgrind"
|
|
|
|
if test "x$TESTSERVERS" != x ; then
|
|
FLAGS="$FLAGS --with-testservers=$TESTSERVERS"
|
|
fi
|
|
|
|
if test "x$PAR4" != x1 ; then
|
|
FLAGS="$FLAGS --disable-parallel4"
|
|
fi
|
|
|
|
if test "x$NOUTIL" = x1 ; then
|
|
FLAGS="$FLAGS --disable-utilities"
|
|
fi
|
|
|
|
if test "x${DB}" = x1 ; then
|
|
FLAGS="$FLAGS --disable-shared --enable-static"
|
|
#FLAGS="$FLAGS --enable-static"
|
|
else
|
|
FLAGS="$FLAGS --enable-shared"
|
|
fi
|
|
|
|
#TMP=
|
|
#rm -f ./test_mpi.tmp
|
|
#if test -f $stddir/lib/libhdf5.a ; then
|
|
# nm $stddir/lib/libhdf5.a | grep mpich_mpi_float$ >./test_mpi.tmp
|
|
#else
|
|
# if test -f $stddir/lib/libhdf5.so ; then
|
|
# nm $stddir/lib/libhdf5.so | grep mpich_mpi_float$ >./test_mpi.tmp
|
|
# fi
|
|
#fi
|
|
#if test -s ./test_mpi.tmp ; then
|
|
# PAR=1
|
|
#fi
|
|
#rm -f ./test_mpi.tmp
|
|
|
|
if test "x${PAR}" != x ; then
|
|
FLAGS="$FLAGS --enable-parallel"
|
|
fi
|
|
|
|
if test "x$HDF5" = "x" ; then
|
|
FLAGS="$FLAGS --disable-netcdf-4"
|
|
fi
|
|
if test "x$HDF4" = x1 ; then
|
|
FLAGS="$FLAGS --enable-hdf4 --enable-hdf4-file-tests"
|
|
fi
|
|
if test "x$DAP" = "x" ; then
|
|
FLAGS="$FLAGS --disable-dap"
|
|
fi
|
|
|
|
if test "x$MPIO" = x1 ; then
|
|
# MPIDIR=/usr/lib64/mpich
|
|
MPIDIR=/usr/lib64/openmpi
|
|
PATH="${PATH}:${MPIDIR}/bin"
|
|
CC="${MPIDIR}/bin/mpicc"
|
|
CPPFLAGS="-I${MPIDIR}/include"
|
|
LDFLAGS="$LDFLAGS -L${MPIDIR}"
|
|
LDLIBS="-lmpich"
|
|
FLAGS="$FLAGS --enable-parallel-tests"
|
|
fi
|
|
|
|
if test "x$PNETCDF" = x1 ; then
|
|
FLAGS="$FLAGS --enable-pnetcdf"
|
|
fi
|
|
|
|
if test "x${PROF}" = x1 ; then
|
|
CFLAGS="${CFLAGS} -pg"
|
|
LDFLAGS="${LDFLAGS} -pg"
|
|
fi
|
|
|
|
export PATH
|
|
export CC
|
|
export CPPFLAGS
|
|
export CFLAGS
|
|
export LDFLAGS
|
|
export LD_LIBRARY_PATH
|
|
export MALLOC_CHECK
|
|
export CXXFLAGS
|
|
|
|
DISTCHECK_CONFIGURE_FLAGS="$FLAGS"
|
|
export DISTCHECK_CONFIGURE_FLAGS
|
|
|
|
if test "x$NB" != x1 && test "x$FAST" != x1 ; then
|
|
${MAKE} distclean >/dev/null 2>&1
|
|
fi
|
|
if test "x$NB" != x1 ; then
|
|
if autoreconf -i --force ; then ok=1; else exit ; fi
|
|
fi
|
|
|
|
sh $X ./configure ${FLAGS}
|
|
for c in $cmds; do
|
|
printenv LD_LIBRARY_PATH
|
|
${MAKE} ${FORCE} $c
|
|
done
|
|
exit 0
|