[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Macro works OK, but aclocal says "macro `AM_PATH_GSL' not found in
From: |
Ronald Landheer-Cieslak |
Subject: |
Re: Macro works OK, but aclocal says "macro `AM_PATH_GSL' not found in library" |
Date: |
Mon, 7 Apr 2003 12:20:53 +0200 (CEST) |
Where does the macro "live"?
If you've put it in a file in a subdirectory (e.g. m4/gsl.m4) you should
add the proper -I option to aclocal:
$ aclocal -Im4
so aclocal will search in that directory for the missing macros.
HTH
rlc
On Mon, 7 Apr 2003, Dr. David Kirkby wrote:
> I copied the macro 'gsl.m4' from the GNU scientific library (latest
> version 1.3). The macro tests for the presence, version and path of
> the gsl library.
>
> Running first automake and autoconf, no problems are reported. After
> this, the macro works as expected. But 'aclocal' reports an error:
>
> % automake
> % autoconf
> % aclocal
> aclocal: configure.ac: 95: macro `AM_PATH_GSL' not found in library
>
> autoreconf does likewise:
>
> % autoreconf
> aclocal: configure.ac: 95: macro `AM_PATH_GSL' not found in library
>
>
> Can anyone offer any help? It is strange the macro works, yets
> generates these error messages when running aclocal. I've put a
> cut-down version of my configure.ac here and the gsl.m4 macro below
> that (below the two rows of XXXXXXXXXXXXXXXXXXXXXXXX's) , just in case
> someone on the autoconf mailing list can help and does not have gsl
> installed.
>
>
> # Process this file with autoconf to produce a configure script.
>
> AC_PREREQ(2.57)
> AC_INIT(atlc, 4.2.12, address@hidden)
> AM_INIT_AUTOMAKE(atlc, 4.2.12, address@hidden)
>
>
> # Checks for programs.
> AC_PROG_CXX
> AC_ISC_POSIX
>
> # AC_OUTPUT_COMMANDS([exit])
>
> # Checks for libraries.
> AC_CHECK_LIB(m,main)
> AC_CHECK_LIB(c,memalign, AC_DEFINE(HAVE_MEMALIGN))
>
>
> AC_CHECK_HEADERS([stdio.h math.h malloc.h stdlib.h string.h
> strings.h])
>
> # Checks for typedefs
> AC_HEADER_STDBOOL
> AC_C_CONST
> AC_TYPE_SIZE_T
>
> # checks for compiler characteristics
> AC_C_BIGENDIAN
> AC_CHECK_SIZEOF(int)
> AC_CHECK_SIZEOF(long)
> AC_CHECK_SIZEOF(size_t)
>
> # checks for library functions
> AC_FUNC_MALLOC
> AC_FUNC_MEMCMP
> AC_FUNC_STRTOD
> AC_CHECK_FUNCS([memset strchr strtol])
>
> ################### TROUBLE HERE ####################
> sinclude(gsl.m4)
> AM_PATH_GSL(1.1)
> LIBS="$GSL_LIBS $LIBS"
> CFLAGS="$GSL_CFLAGS $CFLAGS"
>
> AC_OUTPUT([\
> Makefile \
> src/Makefile \
> src/non_gui/Makefile \
> src/gui/Makefile \
> man/Makefile \
> man/man1/Makefile \
> examples/Makefile \
> tools/Makefile \
> tools/src/Makefile \
> tests/Makefile \
> docs/html-docs/Makefile \
> docs/html-docs/jpgs/Makefile \
> docs/qex-december-1996/Makefile \
> docs/theory/Makefile \
> docs/Makefile ])
>
> XXXXXXXXXXXXXXXXXXXXXXXX
> XXXXXXXXXXXXXXXXXXXXXXXX
>
>
> sparrow /export/home/davek/atlc % cat gsl.m4
> # Configure path for the GNU Scientific Library
> # Christopher R. Gabriel <address@hidden>, April 2000
>
>
> AC_DEFUN(AM_PATH_GSL,
> [
> AC_ARG_WITH(gsl-prefix,[ --with-gsl-prefix=PFX Prefix where GSL is
> installed (optional)],
> gsl_prefix="$withval", gsl_prefix="")
> AC_ARG_WITH(gsl-exec-prefix,[ --with-gsl-exec-prefix=PFX Exec prefix
> where GSL is installed (optional)],
> gsl_exec_prefix="$withval", gsl_exec_prefix="")
> AC_ARG_ENABLE(gsltest, [ --disable-gsltest Do not try to
> compile and run a test GSL program],
> , enable_gsltest=yes)
>
> if test "x${GSL_CONFIG+set}" != xset ; then
> if test "x$gsl_prefix" != x ; then
> GSL_CONFIG="$gsl_prefix/bin/gsl-config"
> fi
> if test "x$gsl_exec_prefix" != x ; then
> GSL_CONFIG="$gsl_exec_prefix/bin/gsl-config"
> fi
> fi
>
> AC_PATH_PROG(GSL_CONFIG, gsl-config, no)
> min_gsl_version=ifelse([$1], ,0.2.5,$1)
> AC_MSG_CHECKING(for GSL - version >= $min_gsl_version)
> no_gsl=""
> if test "$GSL_CONFIG" = "no" ; then
> no_gsl=yes
> else
> GSL_CFLAGS=`$GSL_CONFIG --cflags`
> GSL_LIBS=`$GSL_CONFIG --libs`
>
> gsl_major_version=`$GSL_CONFIG --version | \
> sed 's/^\([[0-9]]*\).*/\1/'`
> if test "x${gsl_major_version}" = "x" ; then
> gsl_major_version=0
> fi
>
> gsl_minor_version=`$GSL_CONFIG --version | \
> sed 's/^\([[0-9]]*\)\.\{0,1\}\([[0-9]]*\).*/\2/'`
> if test "x${gsl_minor_version}" = "x" ; then
> gsl_minor_version=0
> fi
>
> gsl_micro_version=`$GSL_CONFIG --version | \
> sed
> 's/^\([[0-9]]*\)\.\{0,1\}\([[0-9]]*\)\.\{0,1\}\([[0-9]]*\).*/\3/'`
> if test "x${gsl_micro_version}" = "x" ; then
> gsl_micro_version=0
> fi
>
> if test "x$enable_gsltest" = "xyes" ; then
> ac_save_CFLAGS="$CFLAGS"
> ac_save_LIBS="$LIBS"
> CFLAGS="$CFLAGS $GSL_CFLAGS"
> LIBS="$LIBS $GSL_LIBS"
>
> rm -f conf.gsltest
> AC_TRY_RUN([
> #include <stdio.h>
> #include <stdlib.h>
> #include <string.h>
>
> char* my_strdup (const char *str);
>
> char*
> my_strdup (const char *str)
> {
> char *new_str;
>
> if (str)
> {
> new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char));
> strcpy (new_str, str);
> }
> else
> new_str = NULL;
>
> return new_str;
> }
>
> int main (void)
> {
> int major = 0, minor = 0, micro = 0;
> int n;
> char *tmp_version;
>
> system ("touch conf.gsltest");
>
> /* HP/UX 9 (address@hidden) writes to sscanf strings */
> tmp_version = my_strdup("$min_gsl_version");
>
> n = sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) ;
>
> if (n != 2 && n != 3) {
> printf("%s, bad version string\n", "$min_gsl_version");
> exit(1);
> }
>
> if (($gsl_major_version > major) ||
> (($gsl_major_version == major) && ($gsl_minor_version > minor))
> ||
> (($gsl_major_version == major) && ($gsl_minor_version == minor)
> && ($gsl_micro_version >= micro)))
> {
> exit(0);
> }
> else
> {
> printf("\n*** 'gsl-config --version' returned %d.%d.%d, but the
> minimum version\n", $gsl_major_version, $gsl_minor_version,
> $gsl_micro_version);
> printf("*** of GSL required is %d.%d.%d. If gsl-config is
> correct, then it is\n", major, minor, micro);
> printf("*** best to upgrade to the required version.\n");
> printf("*** If gsl-config was wrong, set the environment
> variable GSL_CONFIG\n");
> printf("*** to point to the correct copy of gsl-config, and
> remove the file\n");
> printf("*** config.cache before re-running configure\n");
> exit(1);
> }
> }
>
> ],, no_gsl=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
> CFLAGS="$ac_save_CFLAGS"
> LIBS="$ac_save_LIBS"
> fi
> fi
> if test "x$no_gsl" = x ; then
> AC_MSG_RESULT(yes)
> ifelse([$2], , :, [$2])
> else
> AC_MSG_RESULT(no)
> if test "$GSL_CONFIG" = "no" ; then
> echo "*** The gsl-config script installed by GSL could not be
> found"
> echo "*** If GSL was installed in PREFIX, make sure PREFIX/bin
> is in"
> echo "*** your path, or set the GSL_CONFIG environment variable
> to the"
> echo "*** full path to gsl-config."
> else
> if test -f conf.gsltest ; then
> :
> else
> echo "*** Could not run GSL test program, checking why..."
> CFLAGS="$CFLAGS $GSL_CFLAGS"
> LIBS="$LIBS $GSL_LIBS"
> AC_TRY_LINK([
> #include <stdio.h>
> ], [ return 0; ],
> [ echo "*** The test program compiled, but did not run. This
> usually means"
> echo "*** that the run-time linker is not finding GSL or
> finding the wrong"
> echo "*** version of GSL. If it is not finding GSL, you'll
> need to set your"
> echo "*** LD_LIBRARY_PATH environment variable, or edit
> /etc/ld.so.conf to point"
> echo "*** to the installed location Also, make sure you
> have run ldconfig if that"
> echo "*** is required on your system"
> echo "***"
> echo "*** If you have an old version installed, it is best
> to remove it, although"
> echo "*** you may also be able to get things to work by
> modifying LD_LIBRARY_PATH"],
> [ echo "*** The test program failed to compile or link. See
> the file config.log for the"
> echo "*** exact error that occured. This usually means GSL
> was incorrectly installed"
> echo "*** or that you have moved GSL since it was installed.
> In the latter case, you"
> echo "*** may want to edit the gsl-config script:
> $GSL_CONFIG" ])
> CFLAGS="$ac_save_CFLAGS"
> LIBS="$ac_save_LIBS"
> fi
> fi
> # GSL_CFLAGS=""
> # GSL_LIBS=""
> ifelse([$3], , :, [$3])
> fi
> AC_SUBST(GSL_CFLAGS)
> AC_SUBST(GSL_LIBS)
> rm -f conf.gsltest
> ])
>
>
>
>