I am attempting to build osra 2.1.3 on Debian unstable, regenerating the configure script from source as is usual for Debian package builds. I am using GNU Autoconf 2.71. Autoconf complains about obsolete macros AC_CXX_HAVE_STL, AC_HELP_STRING, AC_ARG_ENABLE and some others, but errors on the following:
configure.ac:18: error: possibly undefined macro: AC_SUBST
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
configure.ac:165: error: possibly undefined macro: AC_DEFINE
autoreconf: error: /usr/bin/autoconf failed with exit status: 1
It still produces configure script, but when run it fails to find STL, although it should be available on my system. Moreover, I can see the following warning in configure output:
./configure: line 2357: AX_GNU_LD: command not found
My guess is that Autoconf directives need updating. I have as well tested with Autoconf 2.69 on Ubuntu 18.04, and it complains about the same undefined AC_SUBST.
Andrius,
Have you tried running the original OSRA configure without running autoconf?
Igor
Yes, the original configure script works. However, Debian package builder attempts to automatically run configure with default Debian options, some of which are not supported by OSRA configure, in particular '--runstatedir=/run'. Rebuilding configure with Autoconf usually makes all such options available. I can in principle strip '--runstatedir=/run' off, but this would be something of a hack in Debian package build.
I would say the solution then is to avoid Debian package builder, at least as far as OSRA is concerned.
Sure, this is an option. However, outdated configure.ac might at some point start to hinder the development of the configure script as all modern Autoconfs will refuse reading it. I am aware that configure script does not change much, though.
Andrius, I tested this on a couple of systems I use for development - centos 7 and fedora 35. The former is very old, the latter is the most recent I currently run (I know that fedora 36 is already out). Both have autoconf 2.69 which parses configure.ac without any problems. Given a choice I would prefer to target the oldest system available because my goal is to compile OSRA with static linking, then it can be run pretty much everywhere. If I do a static build on a more recent system there is a chance it won't run on an older glibc version. So, at the moment, none of my systems got autoconf newer than 2.69 yet, and Fedora is usually fairly progressive with the package updates. Once more recent autoconf has wider spread I can revisit modifying configure.ac. Hope this answers your question, my apologies if the answer is not what you would like to hear.
Thanks for the answer, Igor. I now see your point, and it makes much more sense to me.