public inbox for gsl-discuss@sourceware.org
 help / color / mirror / Atom feed
* Macro works OK, but aclocal says "macro `AM_PATH_GSL' not found in  library"
@ 2003-04-07  8:18 Dr. David Kirkby
  2003-04-08  7:03 ` Ronald Landheer-Cieslak
  2003-04-08  7:04 ` Macro works OK, but aclocal says "macro `AM_PATH_GSL' not found in library" Earnie Boyd
  0 siblings, 2 replies; 7+ messages in thread
From: Dr. David Kirkby @ 2003-04-07  8:18 UTC (permalink / raw)
  To: autoconf, gsl-discuss

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@ntlworld.com)
AM_INIT_AUTOMAKE(atlc, 4.2.12, drkirkby@ntlworld.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@linux.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 (%@#!) 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
])



-- 
Dr. David Kirkby,
Senior Research Fellow,
Department of Medical Physics,
University College London,
11-20 Capper St, London, WC1E 6JA.
Tel: 020 7679 6408 Fax: 020 7679 6269
Internal telephone: ext 46408
e-mail davek@medphys.ucl.ac.uk

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Macro works OK, but aclocal says "macro `AM_PATH_GSL' not found in  library"
  2003-04-07  8:18 Macro works OK, but aclocal says "macro `AM_PATH_GSL' not found in library" Dr. David Kirkby
@ 2003-04-08  7:03 ` Ronald Landheer-Cieslak
  2003-04-08  7:05   ` Andreas Schwab
  2003-04-08  8:16   ` Macro works OK, but aclocal says "macro `AM_PATH_GSL' not foundin library" Dr. David Kirkby
  2003-04-08  7:04 ` Macro works OK, but aclocal says "macro `AM_PATH_GSL' not found in library" Earnie Boyd
  1 sibling, 2 replies; 7+ messages in thread
From: Ronald Landheer-Cieslak @ 2003-04-08  7:03 UTC (permalink / raw)
  To: Dr. David Kirkby; +Cc: autoconf, gsl-discuss

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, drkirkby@ntlworld.com)
> AM_INIT_AUTOMAKE(atlc, 4.2.12, drkirkby@ntlworld.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@linux.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 (%@#!) 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
> ])
> 
> 
> 
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Macro works OK, but aclocal says "macro `AM_PATH_GSL' not found in  library"
  2003-04-07  8:18 Macro works OK, but aclocal says "macro `AM_PATH_GSL' not found in library" Dr. David Kirkby
  2003-04-08  7:03 ` Ronald Landheer-Cieslak
@ 2003-04-08  7:04 ` Earnie Boyd
  1 sibling, 0 replies; 7+ messages in thread
From: Earnie Boyd @ 2003-04-08  7:04 UTC (permalink / raw)
  To: Dr. David Kirkby; +Cc: autoconf, gsl-discuss

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
> 

$ aclocal --help
Usage: aclocal [OPTIONS] ...


Generate `aclocal.m4' by scanning `configure.ac' or `configure.in'

   --acdir=DIR           directory holding config files
   --help                print this help, then exit
   -I DIR                add directory to search list for .m4 files
   --output=FILE         put output in FILE (default aclocal.m4)
   --print-ac-dir        print name of directory holding m4 files
   --verbose             don't be silent
   --version             print version number, then exit

Report bugs to <bug-automake@gnu.org>.

$

Does the above help any?

Earnie.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Macro works OK, but aclocal says "macro `AM_PATH_GSL' not found in  library"
  2003-04-08  7:03 ` Ronald Landheer-Cieslak
@ 2003-04-08  7:05   ` Andreas Schwab
  2003-04-08  8:16   ` Macro works OK, but aclocal says "macro `AM_PATH_GSL' not foundin library" Dr. David Kirkby
  1 sibling, 0 replies; 7+ messages in thread
From: Andreas Schwab @ 2003-04-08  7:05 UTC (permalink / raw)
  To: Ronald Landheer-Cieslak; +Cc: Dr. David Kirkby, autoconf, gsl-discuss

Ronald Landheer-Cieslak <ronald@landheer.com> writes:

|> 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.

You can put "ACLOCAL_AMFLAGS = -I m4" into the toplevel Makefile.am so
that automake and autoreconf automagically pick it up there.

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux AG, Deutschherrnstr. 15-19, D-90429 Nürnberg
Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Macro works OK, but aclocal says "macro `AM_PATH_GSL' not foundin   library"
  2003-04-08  7:03 ` Ronald Landheer-Cieslak
  2003-04-08  7:05   ` Andreas Schwab
@ 2003-04-08  8:16   ` Dr. David Kirkby
  2003-04-09 11:56     ` Macro works OK, but aclocal says "macro `AM_PATH_GSL' notfoundin library" Ronald Landheer-Cieslak
  1 sibling, 1 reply; 7+ messages in thread
From: Dr. David Kirkby @ 2003-04-08  8:16 UTC (permalink / raw)
  To: Ronald Landheer-Cieslak, gsl-discuss, autoconf

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@ntlworld.com)
> > AM_INIT_AUTOMAKE(atlc, 4.2.12, drkirkby@ntlworld.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@linux.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 (%@#!) 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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Macro works OK, but aclocal says "macro `AM_PATH_GSL' notfoundin library"
  2003-04-08  8:16   ` Macro works OK, but aclocal says "macro `AM_PATH_GSL' not foundin library" Dr. David Kirkby
@ 2003-04-09 11:56     ` Ronald Landheer-Cieslak
  2003-04-09 21:45       ` Macro works OK, but aclocal says "macro `AM_PATH_GSL' notfoundinlibrary" Dr. David Kirkby
  0 siblings, 1 reply; 7+ messages in thread
From: Ronald Landheer-Cieslak @ 2003-04-09 11:56 UTC (permalink / raw)
  To: Dr. David Kirkby; +Cc: gsl-discuss, autoconf

On Tue, 8 Apr 2003, Dr. David Kirkby wrote:
> 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.
> 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 
What error message would that be? I'd be (very) surprised if your macro 
call just got copied to the Makefile, so I'd WAG that there's a new error 
here :)

Please post the exact error message given by make.

rlc


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Macro works OK, but aclocal says "macro `AM_PATH_GSL'  notfoundinlibrary"
  2003-04-09 11:56     ` Macro works OK, but aclocal says "macro `AM_PATH_GSL' notfoundin library" Ronald Landheer-Cieslak
@ 2003-04-09 21:45       ` Dr. David Kirkby
  0 siblings, 0 replies; 7+ messages in thread
From: Dr. David Kirkby @ 2003-04-09 21:45 UTC (permalink / raw)
  To: Ronald Landheer-Cieslak; +Cc: gsl-discuss, autoconf

Ronald Landheer-Cieslak wrote:
> 
> On Tue, 8 Apr 2003, Dr. David Kirkby wrote:
> > 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.
> > 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
> What error message would that be? I'd be (very) surprised if your macro
> call just got copied to the Makefile, so I'd WAG that there's a new error
> here :)
> 
> Please post the exact error message given by make.
Sorry, I have finally got it working. I changed so many things, so
many times that I lost track of what exactly the error message was.
Anyway, I seem at last to have configure.ac and Makefile.am that is
allowing for the compilation of normal and multi-threaded code
properly. I have some issues with code configured for distributed
processors, but that is another story. I'll post those issues once I
have tried some more to resolve them. 


-- 
Dr. David Kirkby,
Senior Research Fellow,
Department of Medical Physics,
University College London,
11-20 Capper St, London, WC1E 6JA.
Tel: 020 7679 6408 Fax: 020 7679 6269
Internal telephone: ext 46408
e-mail davek@medphys.ucl.ac.uk

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2003-04-09 21:45 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-04-07  8:18 Macro works OK, but aclocal says "macro `AM_PATH_GSL' not found in library" Dr. David Kirkby
2003-04-08  7:03 ` Ronald Landheer-Cieslak
2003-04-08  7:05   ` Andreas Schwab
2003-04-08  8:16   ` Macro works OK, but aclocal says "macro `AM_PATH_GSL' not foundin library" Dr. David Kirkby
2003-04-09 11:56     ` Macro works OK, but aclocal says "macro `AM_PATH_GSL' notfoundin library" Ronald Landheer-Cieslak
2003-04-09 21:45       ` Macro works OK, but aclocal says "macro `AM_PATH_GSL' notfoundinlibrary" Dr. David Kirkby
2003-04-08  7:04 ` Macro works OK, but aclocal says "macro `AM_PATH_GSL' not found in library" Earnie Boyd

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).