Autoconf Macro Archive - Project CVS - Download
Macro Index
- AM Support
- C++ Support
- C Support
- Fortran Support
- Java Support
- Cross Compilation
- Installed Packages
- Miscellaneous
- LaTeX Support
- Uncategorized
- archive macros
- adl's macros
- bkorb's macros
- guidod's macros
- latex's macros
- other's macros
- rleigh's macros
- obsoleted macros
- released macros
- search index

- Contribute!
- History
- acincludedir m4
- acinclude (tool)
- macro howto
- ax tricks
- maintainers
- License
- Topics


(C) 2007 guidod
Download the M4 Source.


Back to the Main Page.




Guido U. Draheim <>


This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation. As a special exception, the respective Autoconf Macro's copyright owner gives unlimited permission to copy, distribute and modify the configure scripts that are the output of Autoconf when processing the Macro. You need not follow the terms of the GNU General Public License when using or distributing such scripts


guidod's Miscellaneous (released)


 default $1 = $VERSION

check the $VERSION number and cut the two last digit-sequences off which will form a -version-info in a @VERSIONINFO@ ac_subst while the rest is going to the -release name in a @RELEASEINFO@ ac_subst.

you should keep these two seperate - the release-name may contain alpha-characters and can be modified later with extra release-hints e.g. RELEASEINFO="$RELEASINFO-debug" for a debug version of your lib.

example: a VERSION="2.4.18" will be transformed into "-release 2 -version-info 4:18" and for a linux-target this will tell libtool to install the lib as " libmy.a" and executables will get link-resolve-infos for - therefore the patch-level is ignored during ldso linking, and ldso will use the one with the highest patchlevel. Using just "-release $(VERSION)" during libtool-linking would not do that - omitting the -version-info will libtool install libmy.a and executables would get hardlinked with the 2.4.18 version of your lib.

This background does also explain the default dll name for a win32 target : libtool will choose to make up libmy-2-4.dll for this version spec.

this macro does set the three parts VERSION_REL.VERSION_REQ.VERSION_REL from the VERSION-spec but does not ac_subst them like the two INFOs. If you prefer a two-part VERSION-spec, the VERSION_REL will still be set, either to the host_cpu or just a simple "00". You may add sublevel parts like "1.4.2-ac5" where the sublevel is just killed from these versioninfo/releasinfo substvars.

M4 Source Code
[# ------ AC SET RELEASEINFO VERSIONINFO --------------------------------
AC_MSG_CHECKING(version info)
  VERSION_REQ=`echo ifelse( $1, , $VERSION, $1 )` # VERSION_TMP really...
  VERSION_REL=`echo $VERSION_REQ | sed -e 's/[[.]][[^.]]*$//'`  # delete micro
  VERSION_REV=`echo $VERSION_REQ | sed -e "s/^$VERSION_REL.//"` # the rest
  VERSION_REQ=`echo $VERSION_REL | sed -e 's/.*[[.]]//'`  # delete prefix now
  VERSION_REV=`echo $VERSION_REV | sed -e 's/[[^0-9]].*//'` # 5-p4 -&gt; 5
  if test "$VERSION_REQ" != "$VERSION_REL" ; then # three-part version...
  VERSION_REL=`echo $VERSION_REL | sed -e "s/.$VERSION_REQ\$//"`
  else # or has been two-part version - try using host_cpu if available
  VERSION_REL="00" ; test "_$host_cpu" != "_" &amp;&amp; VERSION_REL="$host_cpu"