Mercurial > forge
changeset 1232:cf742906b49c octave-forge
Streamline use of Octave during configuration tests by providing
OCTAVE_EVAL to set a variable to an octave expression and
OCTAVE_CHECK_EXIST to perform one or another action depending
on whether a symbol exists in Octave.
Add tests for HAVE_OCTAVE_MAP_INDEX and SHLEXT
author | pkienzle |
---|---|
date | Wed, 28 Jan 2004 02:06:14 +0000 |
parents | 8847e6e88cfc |
children | 9873a46771bb |
files | Makeconf.base configure.base |
diffstat | 2 files changed, 49 insertions(+), 32 deletions(-) [+] |
line wrap: on
line diff
--- a/Makeconf.base Tue Jan 27 18:27:59 2004 +0000 +++ b/Makeconf.base Wed Jan 28 02:06:14 2004 +0000 @@ -45,6 +45,7 @@ OCTAVE = @OCTAVE@ MKOCTFILE = @MKOCTFILE@ -DHAVE_OCTAVE_$(ver) -v +SHLEXT = @SHLEXT@ @DEFHAVE_X@ X_CFLAGS = @X_CFLAGS@ @@ -63,6 +64,7 @@ HAVE_ND_ARRAYS = @HAVE_ND_ARRAYS@ TYPEID_HAS_CLASS = @TYPEID_HAS_CLASS@ CLASS_HAS_LOAD_SAVE = @CLASS_HAS_LOAD_SAVE@ +HAVE_OCTAVE_MAP_INDEX = @HAVE_OCTAVE_MAP_INDEX@ MAKEINFO = @MAKEINFO@ TEXI2DVI = @TEXI2DVI@
--- a/configure.base Tue Jan 27 18:27:59 2004 +0000 +++ b/configure.base Wed Jan 28 02:06:14 2004 +0000 @@ -240,14 +240,43 @@ 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`" != 0 ; 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_VERSION=`echo "disp(OCTAVE_VERSION)" | $OCTAVE -qf` +OCTAVE_EVAL(OCTAVE_VERSION,OCTAVE_VERSION) dnl grab canonical host type so we can write system specific install stuff canonical_host_type=`echo "disp(octave_config_info('canonical_host_type'))" | $OCTAVE -qf` AC_SUBST(canonical_host_type) +dnl grab SHLEXT from octave config +OCTAVE_EVAL(octave_config_info('SHLEXT'),SHLEXT) + AC_PROG_LN_S AC_PROG_INSTALL AC_PROG_RANLIB @@ -294,43 +323,25 @@ XSTATUS="yes" fi -dnl Test for the Vdo_fortran_indexing variable -TRY_MKOCTFILE([for Vdo_fortran_indexing], -[#include <octave/ov.h> -bool x = Vdo_fortran_indexing;], -[HAVE_DO_FORTRAN_INDEXING="-DHAVE_DO_FORTRAN_INDEXING"],) +OCTAVE_CHECK_EXIST(do_fortran_indexing, + [HAVE_DO_FORTRAN_INDEXING="-DHAVE_DO_FORTRAN_INDEXING"],) AC_SUBST(HAVE_DO_FORTRAN_INDEXING) -dnl Test for the Vpropagate_empty_matrices variable -TRY_MKOCTFILE([for Vpropagate_empty_matrices], -[#include <octave/ov.h> -bool x = Vpropagate_empty_matrices;], -[HAVE_PROPAGATE_EMPTY_MATRICES="-DHAVE_PROPAGATE_EMPTY_MATRICES"],) +OCTAVE_CHECK_EXIST(propagate_empty_matrices, + [PROPAGATE_EMPTY_MATRICES="-DHAVE_PROPAGATE_EMPTY_MATRICES"],) AC_SUBST(HAVE_PROPAGATE_EMPTY_MATRICES) -dnl Test for the Vok_to_lose_imaginary_part variable -TRY_MKOCTFILE([for Vok_to_lose_imaginary_part], -[#include <octave/ov.h> -bool x = Vok_to_lose_imaginary_part;], -[HAVE_="-DOK_TO_LOSE_IMAGINARY_PART"],) +OCTAVE_CHECK_EXIST(ok_to_lose_imaginary_part, + [HAVE_OK_TO_LOSE_IMAGINARY_PART="-DHAVE_OK_TO_LOSE_IMAGINARY_PART"],) AC_SUBST(HAVE_OK_TO_LOSE_IMAGINARY_PART) dnl Test for N-dimensional Arrays TRY_MKOCTFILE([for N-dim arrays], [#include <octave/dim-vector.h>], -[HAVE_ND_ARRAYS="-DHAVE_ND_ARRAYS"; -ND_ARRAYS="has N-dimensional Arrays"], -[ND_ARRAYS="does not have N-dimensional Arrays"]) +[HAVE_ND_ARRAYS="-DHAVE_ND_ARRAYS"],) AC_SUBST(HAVE_ND_ARRAYS) -dnl Test if OV_TYPEID has class arg -TRY_MKOCTFILE([for class argument in OV_TYPEID], -[#include <octave/oct.h> -class usertype : public octave_value { - DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA; -}; -DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA(usertype,"name","class");], -[TYPEID_HAS_CLASS="-DTYPEID_HAS_CLASS"],) +OCTAVE_CHECK_EXIST(class,[TYPEID_HAS_CLASS="-DTYPEID_HAS_CLASS"],) AC_SUBST(TYPEID_HAS_CLASS) dnl Test for load/save functions in class @@ -338,11 +349,16 @@ [#include <octave/config.h> #include <octave/ov-scalar.h> int main (void) { octave_scalar a; a.load_ascii(std::cin); }], -[CLASS_HAS_LOAD_SAVE="-DCLASS_HAS_LOAD_SAVE"; -LOAD_SAVE="has load/save functions in class"], -[LOAD_SAVE="does not load/save functions in class"]) +[CLASS_HAS_LOAD_SAVE="-DCLASS_HAS_LOAD_SAVE"],) AC_SUBST(CLASS_HAS_LOAD_SAVE) +TRY_MKOCTFILE([for Octave_map indexing], +[#include <octave/config.h> +#include <octave/oct-map.h> +int main(void) { Octave_map a; a["key"]; }], +[HAVE_OCTAVE_MAP_INDEX="-DHAVE_OCTAVE_MAP_INDEX"],) +AC_SUBST(HAVE_OCTAVE_MAP_INDEX) + dnl Test for the makeinfo program AC_CHECK_PROG(MAKEINFO,makeinfo,makeinfo) if [ test -n "$MAKEINFO" ]; then @@ -435,8 +451,7 @@ headers: $includedir octave-forge is configured with - octave: $OCTAVE (version $OCTAVE_VERSION) $ND_ARRAYS - and $LOAD_SAVE + octave: $OCTAVE (version $OCTAVE_VERSION) mkoctfile: $MKOCTFILE for Octave $subver X11 support: $XSTATUS makeinfo: $MAKEINFO