1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<title>
Autoconf Macro: ac_set_versionlevel
</title>
<link rel="stylesheet" type="text/css" href="ac-archive.css">
</head>
<body>
<table summary="web navigation" style="width:100%;">
<tbody>
<tr>
<td style="width:50%;" align="center">
<a href="http://autoconf-archive.cryp.to/ac_set_versionlevel.m4">Download
M4 Source</a>
</td>
<td style="width:50%;" align="center">
<a href="macros-by-category.html">Macro Index Page</a>
</td>
</tr>
</tbody>
</table>
<hr>
<h1>
ac_set_versionlevel
</h1>
<h2>
Synopsis
</h2>
<p class="indent" style="white-space:nowrap;">
<code>AC_SET_VERSIONLEVEL(VARNAME [,VERSION])</code>
</p>
<h2>
Description
</h2>
<div class="indent">
<p>
if the VERSION is ommitted, shellvar $VERSION is used as defined by
AM_INIT_AUTOMAKE's second argument.
</p>
<p>
The versionlevel is the numeric representation of the given version string,
thereby assuming the inputversion is a string with (maximal) three decimal
numbers seperated by "."-dots. A "-patch" adds a percent.
</p>
<p>
typical usage:
</p>
<pre>
AM_INIT_AUTOMAKE(mypkg,4.12.3)
AC_SET_VERSIONLEVEL(MYPKG_VERSION)
AC_DEFINE_UNQUOTED(MYPKG_VERSION, $MYPKG_VERSION, [package version])
</pre>
<p>
(this macro shall superced AC_DEFINE_VERSIONLEVEL at some day)
</p>
<p>
the version code has three digits per part which I feel is the most natural
encoding - it makes it easier to be printf'd anyway
</p>
<p>
examples:
</p>
<pre>
3.0-beta1 3000001
3.1 3010000
3.11 3110000
3.11-dirpatch 3111000
3.11-patch6 3110006
2.2.18 2020018
2.0.112 2000112
2.4.2 2040002
2.4.2-pre 2040003
2.4.2-pre5 2040003
5.0-build125 5000125
5.0 5000000
0.30.17 30017
</pre>
</div>
<h2>
Author
</h2>
<p class="indent">
Guido Draheim <guidod@gmx.de>
</p>
<h2>
Last Modified
</h2>
<p class="indent">
2001-07-26
</p>
<h2>
M4 Source Code
</h2>
<div class="indent">
<pre class="m4source">
AC_DEFUN([AC_SET_VERSIONLEVEL],
[dnl
m4_pushdef(LVL, $1_LEVEL)
m4_pushdef(MJR, $1_MAJOR)
m4_pushdef(MNR, $1_MINOR)
m4_pushdef(MCR, $1_MICRO)
LVL=`echo ifelse($2, , $VERSION, $2) | sed -e 's:[[A-Z-]]*:.:g' -e 's:[[^0-9.]]::g' -e 's:[[.]]*:.:g' -e 's:^[[.]]*::'`
AC_MSG_CHECKING( $1 versionlevel $LVL)
case $LVL in
*.*.*.|*.*.*.*|*.*.*) :
MJR=`echo $LVL`
MNR=`echo $MJR | sed -e 's/[[^.]]*[[.]]//'`
MCR=`echo $MNR | sed -e 's/[[^.]]*[[.]]//'`
MJR=`echo $MJR | sed -e 's/[[.]].*//'`
MNR=`echo $MNR | sed -e 's/[[.]].*//'`
MCR=`echo $MCR | sed -e 's/[[.]].*//'`
;;
*.*.|*.*) :
MJR=`echo $LVL`
MNR=`echo $MJR | sed -e 's/[[^.]]*[[.]]//'`
MJR=`echo $MJR | sed -e 's/[[.]].*//'`
MNR=`echo $MNR | sed -e 's/[[.]].*//'`
MCR=0
;;
*.) :
MJR=0
MNR=`echo $LVL`
MNR=`echo $MNR | sed -e 's/[[.]].*//'`
MCR=0
;;
esac
# we trust sed greedy-match backtracking to extract the last three digits from each part, forming a nine-digit
$1=`echo 000$MJR.000$MNR.000$MCR | sed -e 's:\\(...\\)[[.]][[^.]]*\\((...\\))[[.]][[^.*]]\\((...\\)):\\1\\2\\3 -e 's:^0*::''
AC_MSG_RESULT($[$1] ($MJR,$MNR,$MCR)
dnl AC_DEFINE_UNQUOTED( $1, $[$1], ifelse( $3, , $PACKAGE versionlevel, $3))
m4_popdef(MCR)
m4_popdef(MNR)
m4_popdef(MJR)
m4_popdef(LVL)
])
</pre>
</div>
</body>
</html>
|