This is the mail archive of the gsl-discuss@sources.redhat.com mailing list for the GSL project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Macro works OK, but aclocal says "macro `AM_PATH_GSL' not foundin library"


Ronald Landheer-Cieslak wrote:
> 
> 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

The macros are in the top-level directory where configure.ac lives, so
I'm surprised this is necessary. 

After making several changes along the lines of those suggested by
everyone here, I now have a configure.ac that creates a configure
script, without producting any error messages!! It also runs without any
error messages!! But alas my problems are not over, as the Makefile
exits with the error message 

> 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, drkirkby at ntlworld dot com)
> > AM_INIT_AUTOMAKE(atlc, 4.2.12, drkirkby at ntlworld dot com)
> >
> >
> > # 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 <cgabriel at linux dot it>, 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 (% at #!) 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
> > ])
> >
> >
> >
> >

-- 
PLEASE NOTE:

If this message was sent to a newsgroup or mailing list, please 
reply to there. Personal e-mail is always welcome, but unless 
I have received e-mail from you previously, you may be sent 
an automatically generated reply, requesting that you send the
message again, adding a password in the subject line. Sorry,
but this action has been taken to prevent unsolicited 
commercial emails (spam mail). 

Dr. David Kirkby,
Senior Research Fellow,
Department of Medical Physics,
University College London,
11-20 Capper St, London, WC1E 6JA.
Tel: 020 7679 6409 Fax: 020 7679 6269
Internal telephone: ext 46409


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]