6

I'm trying to edit a configure script that will execute this piece of code if it is above Automake version x.xx, and if it isn't, it executes a different piece of code.

So, I need the version to be 1.10 or above, then when it is the case I want to do this:

m4_rename_force([glibcxx_PRECIOUS],[_AC_ARG_VAR_PRECIOUS])

And, otherwise:

m4_rename([glibcxx_PRECIOUS],[_AC_ARG_VAR_PRECIOUS])

So I would assume it would look something like this (in configure.in):

if test GET_AUTOMAKE_VERSION >= 1.10; then
    m4_rename_force([glibcxx_PRECIOUS],[_AC_ARG_VAR_PRECIOUS])
else
    m4_rename([glibcxx_PRECIOUS],[_AC_ARG_VAR_PRECIOUS]) 
fi

Also, should I check for the autoconf or automake version? Possibly both?

perror
  • 7,071
  • 16
  • 58
  • 85
Michael P.
  • 61
  • 1
  • 2

2 Answers2

4

It doesn't make any sense to check for the automake version at configure time. The configure script is run long after automake, and may be running on a box on which automake is not installed at all. Write your configure.ac (not configure.in) to use modern automake. The developer who runs autoconf to generate the configure script will need to have modern automake installed. The user who invokes the configure script will not need to have any of the autotools installed at all.

William Pursell
  • 204,365
  • 48
  • 270
  • 300
1

For testing the autoconf version I think something like this will work.

m4_version_prereq ( 1.10, 
     m4_rename_force([glibcxx_PRECIOUS],[_AC_ARG_VAR_PRECIOUS]), 
     m4_rename([glibcxx_PRECIOUS],[_AC_ARG_VAR_PRECIOUS]) 
)

I don't know how to do the same for automake.

mctylr
  • 5,159
  • 20
  • 32
  • Does not seem to work. No syntax errors or anything, but it gives me the error that I would usually get if just using m4_rename. – Michael P. Jan 24 '10 at 23:40