changeset 11914:e5d8a46cac9a octave-forge

get build script from octcdf
author abarth93
date Wed, 03 Jul 2013 13:57:47 +0000
parents 4c6bc2f487a5
children 556527c15304
files main/netcdf/src/Makeconf.in main/netcdf/src/autogen.sh main/netcdf/src/configure.base main/netcdf/src/netcdf_constants.awk
diffstat 4 files changed, 472 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/netcdf/src/Makeconf.in	Wed Jul 03 13:57:47 2013 +0000
@@ -0,0 +1,64 @@
+
+## Makeconf is automatically generated from Makeconf.base and Makeconf.add
+## in the various subdirectories.  To regenerate, use ./autogen.sh to
+## create a new ./Makeconf.in, then use ./configure to generate a new
+## Makeconf.
+
+OCTAVE_FORGE = 1
+
+SHELL = @SHELL@
+
+canonical_host_type = @canonical_host_type@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+bindir = @bindir@
+mandir = @mandir@
+libdir = @libdir@
+datadir = @datadir@
+infodir = @infodir@
+includedir = @includedir@
+datarootdir = @datarootdir@
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALLOCT=octinst.sh
+
+DESTDIR =
+
+RANLIB = @RANLIB@
+STRIP = @STRIP@
+LN_S = @LN_S@
+
+AWK = @AWK@
+
+# Most octave programs will be compiled with $(MKOCTFILE).  Those which
+# cannot use mkoctfile directly can request the flags that mkoctfile 
+# would use as follows:
+#    FLAG = $(shell $(MKOCTFILE) -p FLAG)
+# # The following flags are for compiling programs that are independent
+# # of Octave.  How confusing.
+# CC = @CC@
+# CFLAGS = @CFLAGS@
+# CPPFLAGS = @CPPFLAGS@
+# CPICFLAG = @CPICFLAG@
+# CXX = @CXX@
+# CXXFLAGS = @CXXFLAGS@
+# CXXPICFLAG = @CXXPICFLAG@
+# F77 = @F77@
+# FFLAGS = @FFLAGS@
+# FPICFLAG = @FPICFLAG@
+
+OCTAVE = @OCTAVE@
+OCTAVE_VERSION = @OCTAVE_VERSION@
+MKOCTFILE = @MKOCTFILE@ -DHAVE_OCTAVE_$(ver) -v
+SHLEXT = @SHLEXT@
+
+HAVE_NETCDF=@HAVE_NETCDF@
+OCTCDF_LIBS=@OCTCDF_LIBS@
+OCTCDF_CFLAGS=@OCTCDF_CFLAGS@
+
+%.o: %.c ; $(MKOCTFILE) -c $<
+%.o: %.f ; $(MKOCTFILE) -c $<
+%.o: %.cc ; $(MKOCTFILE) -c $<
+%.oct: %.cc ; $(MKOCTFILE) $<
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/netcdf/src/autogen.sh	Wed Jul 03 13:57:47 2013 +0000
@@ -0,0 +1,27 @@
+#! /bin/sh
+
+## Generate ./configure
+rm -f configure.in
+echo "dnl --- DO NOT EDIT --- Automatically generated by autogen.sh" > configure.in
+cat configure.base >> configure.in
+cat <<EOF >> configure.in
+  AC_OUTPUT(\$CONFIGURE_OUTPUTS)
+  dnl XXX FIXME XXX chmod is not in autoconf's list of portable functions
+
+  echo " "
+  echo "  \"\\\$prefix\" is \$prefix"
+  echo "  \"\\\$exec_prefix\" is \$exec_prefix"
+  AC_MSG_RESULT([\$STATUS_MSG
+
+find . -name NOINSTALL -print    # shows which toolboxes won't be installed
+])
+EOF
+
+autoconf configure.in > configure.tmp
+if [ diff configure.tmp configure > /dev/null 2>&1 ]; then
+  rm -f configure.tmp;
+else
+  mv -f configure.tmp configure
+  chmod 0755 configure
+fi
+rm -f configure.in
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/netcdf/src/configure.base	Wed Jul 03 13:57:47 2013 +0000
@@ -0,0 +1,380 @@
+dnl The configure script is generated by autogen.sh from configure.base 
+dnl and the various configure.add files in the source tree.  Edit 
+dnl configure.base and reprocess rather than modifying ./configure.
+
+dnl autoconf 2.13 certainly doesn't work! What is the minimum requirement?
+AC_PREREQ(2.2)
+
+AC_INIT(configure.base)
+
+PACKAGE=octave-forge
+MAJOR_VERSION=0
+MINOR_VERSION=1
+PATCH_LEVEL=0
+
+dnl Kill caching --- this ought to be the default
+define([AC_CACHE_LOAD], )dnl
+define([AC_CACHE_SAVE], )dnl
+
+dnl uncomment to put support files in another directory
+dnl AC_CONFIG_AUX_DIR(admin)
+
+VERSION=$MAJOR_VERSION.$MINOR_VERSION.$PATCH_LEVEL
+AC_SUBST(PACKAGE)
+AC_SUBST(VERSION)
+
+dnl need to find admin files, so keep track of the top dir.
+TOPDIR=`pwd`
+AC_SUBST(TOPDIR)
+
+dnl if mkoctfile doesn't work, then we need the following:
+dnl AC_PROG_CXX
+dnl AC_PROG_F77
+
+dnl Need C compiler regardless so define it in a way that
+dnl makes autoconf happy and we can override whatever we
+dnl need with mkoctfile -p.
+dnl XXX FIXME XXX should use mkoctfile to get CC and CFLAGS
+AC_PROG_CC
+
+dnl XXX FIXME XXX need tests for -p -c -s in mkoctfile.
+
+dnl *******************************************************************
+dnl Sort out mkoctfile version number and install paths
+
+dnl XXX FIXME XXX latest octave has octave-config so we don't
+dnl need to discover things here.  Doesn't have --exe-site-dir
+dnl but defines --oct-site-dir and --m-site-dir
+
+dnl Check for mkoctfile
+AC_CHECK_PROG(MKOCTFILE,mkoctfile,mkoctfile)
+test -z "$MKOCTFILE" &&	AC_MSG_WARN([no mkoctfile found on path])
+
+AC_SUBST(ver)
+AC_SUBST(subver)
+AC_SUBST(mpath)
+AC_SUBST(opath)
+AC_SUBST(xpath)
+AC_SUBST(altpath)
+AC_SUBST(altmpath)
+AC_SUBST(altopath)
+
+AC_ARG_WITH(path, 
+	[  --with-path             install path prefix],
+	[ path=$withval ])
+AC_ARG_WITH(mpath,
+	[  --with-mpath            override path for m-files],
+	[mpath=$withval])
+AC_ARG_WITH(opath,
+	[  --with-opath            override path for oct-files],
+	[opath=$withval])
+AC_ARG_WITH(xpath,
+	[  --with-xpath            override path for executables],
+	[xpath=$withval])
+AC_ARG_WITH(altpath, 
+	[  --with-altpath          alternative functions install path prefix],
+	[ altpath=$withval ])
+AC_ARG_WITH(altmpath,
+	[  --with-altmpath         override path for alternative m-files],
+	[altmpath=$withval])
+AC_ARG_WITH(altopath,
+	[  --with-altopath         override path for alternative oct-files],
+	[altopath=$withval])	
+
+if test -n "$path" ; then
+   test -z "$mpath" && mpath=$path 
+   test -z "$opath" && opath=$path/oct 
+   test -z "$xpath" && xpath=$path/bin
+   test -z "$altpath" && altpath=$path-alternatives
+fi
+
+if test -n "$altpath" ; then
+   test -z "$altmpath" && altmpath=$altpath 
+   test -z "$altopath" && altopath=$altpath/oct 
+fi
+
+dnl Don't query if path/ver are given in the configure environment
+#if test -z "$mpath" || test -z "$opath" || test -z "$xpath" || test -z "$altmpath" || test -z "$altopath" || test -z "$ver" ; then
+if test -z "$mpath" || test -z "$opath" || test -z "$xpath" || test -z "$ver" ; then
+   dnl Construct program to get mkoctfile version and local install paths
+   cat > conftest.cc <<EOF
+#include <octave/config.h>
+#include <octave/version.h>
+#include <octave/defaults.h>
+
+#define INFOV "\nINFOV=" OCTAVE_VERSION "\n"
+
+#define INFOH "\nINFOH=" OCTAVE_CANONICAL_HOST_TYPE "\n"
+
+#ifdef OCTAVE_LOCALVERFCNFILEDIR
+# define INFOM "\nINFOM=" OCTAVE_LOCALVERFCNFILEDIR "\n"
+#else
+# define INFOM "\nINFOM=" OCTAVE_LOCALFCNFILEPATH "\n"
+#endif
+
+#ifdef OCTAVE_LOCALVEROCTFILEDIR
+# define INFOO "\nINFOO=" OCTAVE_LOCALVEROCTFILEDIR "\n"
+#else
+# define INFOO "\nINFOO=" OCTAVE_LOCALOCTFILEPATH  "\n"
+#endif
+
+#ifdef OCTAVE_LOCALVERARCHLIBDIR
+# define INFOX "\nINFOX=" OCTAVE_LOCALVERARCHLIBDIR  "\n"
+#else
+# define INFOX "\nINFOX=" OCTAVE_LOCALARCHLIBDIR  "\n"
+#endif
+
+const char *infom = INFOM;
+const char *infoo = INFOO;
+const char *infox = INFOX;
+const char *infoh = INFOH;
+const char *infov = INFOV;
+EOF
+
+   dnl Compile program perhaps with a special version of mkoctfile
+   $MKOCTFILE conftest.cc || AC_MSG_ERROR(Could not run $MKOCTFILE)
+
+   dnl Strip the config info from the compiled file
+   eval `strings conftest.o | grep "^INFO.=" | sed -e "s,//.*$,,"`
+   rm -rf conftest*
+
+   dnl set the appropriate variables if they are not already set
+   ver=`echo $INFOV | sed -e "s/\.//" -e "s/\..*$//"`
+   subver=`echo $INFOV | sed -e "[s/^[^.]*[.][^.]*[.]//]"`
+   alt_mbase=`echo $INFOM | sed -e "[s,\/[^\/]*$,,]"`
+   alt_obase=`echo $INFOO | sed -e "[s,/site.*$,/site,]"`
+   test -z "$mpath" && mpath=$INFOM/octave-forge
+   test -z "$opath" && opath=$INFOO/octave-forge
+   test -z "$xpath" && xpath=$INFOX
+   test -z "$altmpath" && altmpath=$alt_mbase/octave-forge-alternatives/m
+   test -z "$altopath" && altopath=$alt_obase/octave-forge-alternatives/oct/$INFOH
+fi
+
+dnl *******************************************************************
+
+dnl Get LDFLAGS and CPPFLAGS set by user
+dnl These flags will be added to the mkoctfile command line
+OCTCDF_LIBS="$LDFLAGS"
+OCTCDF_CFLAGS="$CPPFLAGS"
+
+
+dnl XXX FIXME XXX Should we allow the user to override these?
+dnl Do we even need them?  The individual makefiles can call mkoctfile -p
+dnl themselves, so the only reason to keep them is for configure, and
+dnl for those things which are not built using mkoctfile (e.g., aurecord)
+dnl but it is not clear we should be using octave compile flags for those.
+
+dnl octcdf does not need CFLAGS, CPPFLAGS,... from mkoctfile
+dnl -> comment corresponding lines
+
+# dnl C compiler and flags
+# AC_MSG_RESULT([retrieving compile and link flags from $MKOCTFILE])
+# CC=`$MKOCTFILE -p CC`
+# CFLAGS=`$MKOCTFILE -p CFLAGS`
+# CPPFLAGS=`$MKOCTFILE -p CPPFLAGS`
+# CPPFLAGS="not used"
+# CPICFLAG=`$MKOCTFILE -p CPICFLAG`
+# LDFLAGS=`$MKOCTFILE -p LDFLAGS`
+# LIBS=`$MKOCTFILE -p LIBS`
+# AC_SUBST(CC)
+# AC_SUBST(CFLAGS)
+# AC_SUBST(CPPFLAGS)
+# AC_SUBST(CPICFLAG)
+
+# dnl Fortran compiler and flags
+# F77=`$MKOCTFILE -p F77`
+# FFLAGS=`$MKOCTFILE -p FFLAGS`
+# FPICFLAG=`$MKOCTFILE -p FPICFLAG`
+# AC_SUBST(F77)
+# AC_SUBST(FFLAGS)
+# AC_SUBST(FPICFLAG)
+
+# dnl C++ compiler and flags
+# CXX=`$MKOCTFILE -p CXX`
+# CXXFLAGS=`$MKOCTFILE -p CXXFLAGS`
+# CXXPICFLAG=`$MKOCTFILE -p CXXPICFLAG`
+# AC_SUBST(CXX)
+# AC_SUBST(CXXFLAGS)
+# AC_SUBST(CXXPICFLAG)
+
+dnl *******************************************************************
+
+dnl Check for features of your version of mkoctfile.
+dnl All checks should be designed so that the default
+dnl action if the tests are not performed is to do whatever
+dnl is appropriate for the most recent version of Octave.
+
+dnl Define the following macro:
+dnl    OF_CHECK_LIB(lib,fn,true,false,helpers)
+dnl This is just like AC_CHECK_LIB, but it doesn't update LIBS
+AC_DEFUN(OF_CHECK_LIB,
+[save_LIBS="$LIBS"
+AC_CHECK_LIB($1,$2,$3,$4,$5)
+LIBS="$save_LIBS"
+])
+
+dnl Define the following macro:
+dnl    TRY_MKOCTFILE(msg,program,action_if_true,action_if_false)
+dnl
+AC_DEFUN(TRY_MKOCTFILE,
+[AC_MSG_CHECKING($1)
+cat > conftest.cc << EOF
+#include <octave/config.h>
+$2
+EOF
+ac_try="$MKOCTFILE -c conftest.cc"
+if AC_TRY_EVAL(ac_try) ; then
+   AC_MSG_RESULT(yes)
+   $3
+else
+   AC_MSG_RESULT(no)
+   $4
+fi
+])
+
+dnl
+dnl Check if F77_FUNC works with MKOCTFILE
+dnl
+TRY_MKOCTFILE([for F77_FUNC],
+[int F77_FUNC (hello, HELLO) (const int &n);],,
+[MKOCTFILE="$MKOCTFILE -DF77_FUNC=F77_FCN"])
+
+dnl **********************************************************
+
+dnl Evaluate an expression in octave
+dnl
+dnl OCTAVE_EVAL(expr,var) -> var=expr
+dnl
+AC_DEFUN(OCTAVE_EVAL,
+[AC_MSG_CHECKING([for $1 in Octave])
+$2=`echo "disp($1)" | $OCTAVE -qf`
+AC_MSG_RESULT($$2)
+AC_SUBST($2)
+])
+
+dnl Check status of an octave variable
+dnl
+dnl OCTAVE_CHECK_EXIST(variable,action_if_true,action_if_false)
+dnl
+AC_DEFUN(OCTAVE_CHECK_EXIST,
+[AC_MSG_CHECKING([for $1 in Octave])
+if test `echo 'disp(exist("$1"))' | $OCTAVE -qf`X != 0X ; then
+   AC_MSG_RESULT(yes)
+   $2
+else
+   AC_MSG_RESULT(no)
+   $3
+fi
+])
+
+dnl should check that $(OCTAVE) --version matches $(MKOCTFILE) --version
+AC_CHECK_PROG(OCTAVE,octave,octave)
+OCTAVE_EVAL(OCTAVE_VERSION,OCTAVE_VERSION)
+
+dnl grab canonical host type so we can write system specific install stuff
+OCTAVE_EVAL(octave_config_info('canonical_host_type'),canonical_host_type)
+
+dnl grab SHLEXT from octave config
+OCTAVE_EVAL(octave_config_info('SHLEXT'),SHLEXT)
+
+AC_PROG_LN_S
+
+AC_PROG_RANLIB
+
+dnl Use $(COPY_FLAGS) to set options for cp when installing .oct files.
+COPY_FLAGS="-Rfp"
+case "$canonical_host_type" in
+    *-*-linux*)
+        COPY_FLAGS="-fdp"
+    ;;
+esac
+AC_SUBST(COPY_FLAGS)
+
+dnl Use $(STRIP) in the makefile to strip executables.  If not found, 
+dnl STRIP expands to ':', which in the makefile does nothing.
+dnl Don't need this for .oct files since mkoctfile handles them directly
+STRIP=${STRIP-strip}
+AC_CHECK_PROG(STRIP,$STRIP,$STRIP,:)
+
+dnl Strip on windows, don't strip on Mac OS/X or IRIX
+dnl For the rest, you can force strip using MKOCTFILE="mkoctfile -s"
+dnl or avoid strip using STRIP=: before ./configure
+case "$canonical_host_type" in
+    powerpc-apple-darwin*|*-sgi-*)
+	STRIP=:
+    ;;
+    *-cygwin-*|*-mingw-*) 
+	MKOCTFILE="$MKOCTFILE -s" 
+    ;;
+esac
+
+dnl first checking for nc-config, then nc-dap 
+
+AC_MSG_CHECKING([for nc-config])
+
+if nc-config --version > /dev/null 2>&1; then
+      AC_MSG_RESULT([yes])
+      OCTCDF_LIBS="$OCTCDF_LIBS `nc-config --libs`"
+      OCTCDF_CFLAGS="$OCTCDF_CFLAGS `nc-config --cflags`"
+      HAVE_NETCDF=yes
+else
+      AC_MSG_RESULT([no])          
+      AC_MSG_CHECKING([for nc-dap])
+
+      if ncdap-config --version > /dev/null 2>&1; then
+            AC_MSG_RESULT([yes])
+            OCTCDF_LIBS="$OCTCDF_LIBS `ncdap-config --libs`"
+            OCTCDF_CFLAGS="$OCTCDF_CFLAGS `ncdap-config --cflags`"
+
+            HAVE_NETCDF=yes
+      else
+            AC_MSG_RESULT([no])          
+
+            dnl if no opendap, checking if the NetCDF library exists. 
+	    dnl AC_CHECK_LIB takes the value of LDFLAGS into account
+
+            AC_CHECK_LIB(netcdf,nc_open, HAVE_NETCDF=yes, HAVE_NETCDF=no,)
+
+            if test $HAVE_NETCDF = yes ; then
+              OCTCDF_LIBS="$OCTCDF_LIBS -lnetcdf"
+
+              dnl we have the libraries, no we have also the headers?
+	      dnl AC_CHECK_HEADER takes the value of CPPFLAGS into account
+
+              AC_CHECK_HEADER(netcdf.h, HAVE_NETCDF=yes, HAVE_NETCDF=no)
+            fi
+      fi
+fi
+
+AC_SUBST(HAVE_NETCDF)
+AC_SUBST(OCTCDF_LIBS)
+AC_SUBST(OCTCDF_CFLAGS)
+
+if test $HAVE_NETCDF = yes ; then
+    OCTCDFSTATUS=yes
+else
+    OCTCDFSTATUS=no
+fi
+
+CONFIGURE_OUTPUTS="Makeconf"
+STATUS_MSG="
+octave commands will install into the following directories:
+   m-files:   $mpath
+   oct-files: $opath
+   binaries:  $xpath
+alternatives:
+   m-files:   $altmpath
+   oct-files: $altopath
+
+shell commands will install into the following directories:
+   binaries:  $bindir
+   man pages: $mandir
+   libraries: $libdir
+   headers:   $includedir
+
+octave-forge is configured with
+   octave:      $OCTAVE (version $OCTAVE_VERSION)
+   mkoctfile:	$MKOCTFILE for Octave $subver
+   octcdf toolbox: $OCTCDFSTATUS
+   netCDF compiler flags: $OCTCDF_CFLAGS
+   netCDF libraries: $OCTCDF_LIBS"
--- a/main/netcdf/src/netcdf_constants.awk	Wed Jul 03 13:38:32 2013 +0000
+++ b/main/netcdf/src/netcdf_constants.awk	Wed Jul 03 13:57:47 2013 +0000
@@ -13,7 +13,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program; If not, see <http://www.gnu.org/licenses/>.
 
-# Generate the list of NetCDF constants based on header file
+# Generate the list of NetCDF constants based on the header file netcdf.h
 
 BEGIN {
   print "// DO NOT EDIT -- generated by netcdf_constants.awk";