autoconf
[Top][All Lists]
Advanced

[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, &micro) ;
> 
>   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
> ])
> 
> 
> 
> 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]