beta-0.89.2
[luatex.git] / source / libs / zziplib / zziplib-0.13.62 / m4 / ax_set_version_info.m4
blob83c5fa73f212455f5d6fc151677d821d31405da1
1 dnl /usr/share/aclocal/guidod-cvs/ax_set_version_info.m4
2 dnl @synopsis AX_SET_VERSION_INFO [(VERSION [,PREFIX])]
3 dnl @synopsis default $1 = $PACKAGE_VERSION
4 dnl @synopsis default $2 = <none>
5 dnl
6 dnl This macro is the successor of AC_SET_RELEASEINFO_VERSIONINFO but
7 dnl it can be used in parallel because it uses all different variables.
8 dnl
9 dnl check the $VERSION number and cut the two last digit-sequences off
10 dnl which will form a -version-info in a @VERSION_INFO@ ac_subst while
11 dnl the rest is going to the -release name in a @RELEASE_INFO@
12 dnl ac_subst.
13 dnl
14 dnl you should keep these two seperate - the release-name may contain
15 dnl alpha-characters and can be modified later with extra release-hints
16 dnl e.g. RELEASE_INFO="$RELEASE_INFO-debug" for a debug version of your
17 dnl lib. The $VERSION_INFO however should not be touched.
18 dnl
19 dnl example: a VERSION="2.4.18" will be transformed into
20 dnl
21 dnl    RELEASE_INFO = -release 2
22 dnl    VERSION_INFO = -versioninfo 4:18
23 dnl
24 dnl then use these two variables and push them to your libtool linker
25 dnl
26 dnl    libtest_la_LIBADD = @RELEASE_INFO@ @VERSION_INFO@
27 dnl
28 dnl and for a linux-target this will tell libtool to install the lib as
29 dnl
30 dnl           libmy.so libmy.la libmy.a libmy-2.so.4 libmy-2.so.4.0.18
31 dnl
32 dnl and executables will get link-resolve-infos for libmy-2.so.4 -
33 dnl therefore the patch-level is ignored during ldso linking, and ldso
34 dnl will use the one with the highest patchlevel. Using just "-release
35 dnl $(VERSION)" during libtool-linking would not do that - omitting the
36 dnl -version-info will libtool install libmy.so libmy.la libmy.a
37 dnl libmy-2.4.18.so and executables would get hardlinked with the
38 dnl 2.4.18 version of your lib.
39 dnl
40 dnl This background does also explain the default dll name for a win32
41 dnl target : libtool will choose to make up libmy-2-4.dll for this
42 dnl version spec.
43 dnl
44 dnl this macro does also set the usual three parts of a version spec
45 dnl $MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION but does not ac_subst
46 dnl for the plain AX_SET_VERSION_INFO macro. Use instead one of the
47 dnl numbered macros AX_SET_VERSION_INFO1 (use first number for release
48 dnl part) or that AX_SET_VERSION_INFO2 (use the first two numbers for
49 dnl release part).
50 dnl
51 dnl You may add sublevel parts like "1.4.2-ac5" where the sublevel is
52 dnl just killed from these version/release substvars. That allows to
53 dnl grab the version off a .spec file like with AX_SPEC_PACKAGE_VERSION
54 dnl where the $VERSION is used to name a tarball or distpack like
55 dnl mylib-2.2.9pre4
56 dnl
57 dnl Unlike earlier macros, you can use this one to break up different
58 dnl VERSIONs and put them into different variables, just hint with
59 dnl PREFIX-setting - i.e. _VERSION(2.4.5,TEST) will set variables named
60 dnl TEST_MAJOR_VERSION=2... and of course $TEST_RELEASE_INFO etc. (for
61 dnl the moment, it needs to be a literal prefix *sigh*)
62 dnl
63 dnl @category Misc
64 dnl @author Guido U. Draheim <guidod@gmx.de>
65 dnl @version 2005-01-21
66 dnl @license GPLWithACException
68 AC_DEFUN([AX_SET_VERSION_INFO1],[dnl
69 AS_VAR_PUSHDEF([MAJOR],ifelse($2,,[MAJOR_VERSION],[$2_MAJOR_VERSION]))dnl
70 AS_VAR_PUSHDEF([MINOR],ifelse($2,,[MINOR_VERSION],[$2_MINOR_VERSION]))dnl
71 AS_VAR_PUSHDEF([MICRO],ifelse($2,,[MICRO_VERSION],[$2_MICRO_VERSION]))dnl
72 AS_VAR_PUSHDEF([PATCH],ifelse($2,,[PATCH_VERSION],[$2_PATCH_VERSION]))dnl
73 AS_VAR_PUSHDEF([LTREL],ifelse($2,,[RELEASE_INFO],[$2_RELEASE_INFO]))dnl
74 AS_VAR_PUSHDEF([LTVER],ifelse($2,,[VERSION_INFO],[$2_VERSION_INFO]))dnl
75 test ".$PACKAGE_VERSION" = "." && PACKAGE_VERSION="$VERSION"
76 AC_MSG_CHECKING(ifelse($2,,,[$2 ])out linker version info dnl
77 ifelse($1,,$PACKAGE_VERSION,$1) )
78   MINOR=`echo ifelse( $1, , $PACKAGE_VERSION, $1 )`
79   MAJOR=`echo "$MINOR" | sed -e 's/[[.]].*//'`
80   MINOR=`echo "$MINOR" | sed -e "s/^$MAJOR//" -e 's/^.//'`
81   MICRO="$MINOR"
82   MINOR=`echo "$MICRO" | sed -e 's/[[.]].*//'`
83   MICRO=`echo "$MICRO" | sed -e "s/^$MINOR//" -e 's/^.//'`
84   PATCH="$MICRO"
85   MICRO=`echo "$PATCH" | sed -e 's/[[^0-9]].*//'`
86   PATCH=`echo "$PATCH" | sed -e "s/^$MICRO//" -e 's/^[[-.]]//'`
87   if test "_$MICRO" = "_" ; then MICRO="0" ; fi
88   if test "_$MINOR" = "_" ; then MINOR="$MAJOR" ; MAJOR="0" ; fi
89   MINOR=`echo "$MINOR" | sed -e 's/[[^0-9]].*//'`
90   LTREL="-release $MAJOR"
91   LTVER="-version-info $MINOR:$MICRO"
92 AC_MSG_RESULT([/$MAJOR/$MINOR:$MICRO (-$MAJOR.so.$MINOR.0.$MICRO)])
93 AC_SUBST(MAJOR)
94 AC_SUBST(MINOR)
95 AC_SUBST(MICRO)
96 AC_SUBST(PATCH)
97 AC_SUBST(LTREL)
98 AC_SUBST(LTVER)
99 AS_VAR_POPDEF([LTVER])dnl
100 AS_VAR_POPDEF([LTREL])dnl
101 AS_VAR_POPDEF([PATCH])dnl
102 AS_VAR_POPDEF([MICRO])dnl
103 AS_VAR_POPDEF([MINOR])dnl
104 AS_VAR_POPDEF([MAJOR])dnl
107 AC_DEFUN([AX_SET_VERSION_INFO2],[dnl
108 AS_VAR_PUSHDEF([MAJOR],ifelse($2,,[MAJOR_VERSION],[$2_MAJOR_VERSION]))dnl
109 AS_VAR_PUSHDEF([MINOR],ifelse($2,,[MINOR_VERSION],[$2_MINOR_VERSION]))dnl
110 AS_VAR_PUSHDEF([MICRO],ifelse($2,,[MICRO_VERSION],[$2_MICRO_VERSION]))dnl
111 AS_VAR_PUSHDEF([PATCH],ifelse($2,,[PATCH_VERSION],[$2_PATCH_VERSION]))dnl
112 AS_VAR_PUSHDEF([LTREL],ifelse($2,,[RELEASE_INFO],[$2_RELEASE_INFO]))dnl
113 AS_VAR_PUSHDEF([LTVER],ifelse($2,,[VERSION_INFO],[$2_VERSION_INFO]))dnl
114 test ".$PACKAGE_VERSION" = "." && PACKAGE_VERSION="$VERSION"
115 AC_MSG_CHECKING(ifelse($2,,,[$2 ])out linker version info dnl
116 ifelse($1,,$PACKAGE_VERSION,$1) )
117   MINOR=`echo ifelse( $1, , $PACKAGE_VERSION, $1 )`
118   MAJOR=`echo "$MINOR" | sed -e 's/[[.]].*//'`
119   MINOR=`echo "$MINOR" | sed -e "s/^$MAJOR//" -e 's/^.//'`
120   MICRO="$MINOR"
121   MINOR=`echo "$MICRO" | sed -e 's/[[.]].*//'`
122   MICRO=`echo "$MICRO" | sed -e "s/^$MINOR//" -e 's/^.//'`
123   PATCH="$MICRO"
124   MICRO=`echo "$PATCH" | sed -e 's/[[^0-9]].*//'`
125   PATCH=`echo "$PATCH" | sed -e "s/^$MICRO//" -e 's/^[[-.]]//'`
126   test "_$MICRO" != "_" || MICRO="0"
127   if test "_$MINOR" != "_" ; then MINOR="$MAJOR" ; MAJOR="0" ; fi
128   MINOR=`echo "$MINOR" | sed -e 's/[[^0-9]].*//'`
129   LTREL="-release $MAJOR.$MINOR"
130   LTVER="-version-info 0:$MICRO"
131 AC_MSG_RESULT([/$MAJOR/$MINOR:$MICRO (-$MAJOR.so.$MINOR.0.$MICRO)])
132 AC_SUBST(MAJOR)
133 AC_SUBST(MINOR)
134 AC_SUBST(MICRO)
135 AC_SUBST(PATCH)
136 AC_SUBST(LTREL)
137 AC_SUBST(LTVER)
138 AS_VAR_POPDEF([LTVER])dnl
139 AS_VAR_POPDEF([LTREL])dnl
140 AS_VAR_POPDEF([PATCH])dnl
141 AS_VAR_POPDEF([MICRO])dnl
142 AS_VAR_POPDEF([MINOR])dnl
143 AS_VAR_POPDEF([MAJOR])dnl
146 AC_DEFUN([AX_SET_VERSION_INFO],[dnl
147 AS_VAR_PUSHDEF([MAJOR],ifelse($2,,[MAJOR_VERSION],[$2_MAJOR_VERSION]))dnl
148 AS_VAR_PUSHDEF([MINOR],ifelse($2,,[MINOR_VERSION],[$2_MINOR_VERSION]))dnl
149 AS_VAR_PUSHDEF([MICRO],ifelse($2,,[MICRO_VERSION],[$2_MICRO_VERSION]))dnl
150 AS_VAR_PUSHDEF([PATCH],ifelse($2,,[PATCH_VERSION],[$2_PATCH_VERSION]))dnl
151 AS_VAR_PUSHDEF([LTREL],ifelse($2,,[RELEASE_INFO],[$2_RELEASE_INFO]))dnl
152 AS_VAR_PUSHDEF([LTVER],ifelse($2,,[VERSION_INFO],[$2_VERSION_INFO]))dnl
153 test ".$PACKAGE_VERSION" = "." && PACKAGE_VERSION="$VERSION"
154 AC_MSG_CHECKING(ifelse($2,,,[$2 ])out linker version info dnl
155 ifelse($1,,$PACKAGE_VERSION,$1) )
156   MINOR=`echo ifelse( $1, , $PACKAGE_VERSION, $1 )`
157   MAJOR=`echo "$MINOR" | sed -e 's/[[.]].*//'`
158   MINOR=`echo "$MINOR" | sed -e "s/^$MAJOR//" -e 's/^.//'`
159   MICRO="$MINOR"
160   MINOR=`echo "$MICRO" | sed -e 's/[[.]].*//'`
161   MICRO=`echo "$MICRO" | sed -e "s/^$MINOR//" -e 's/^.//'`
162   PATCH="$MICRO"
163   MICRO=`echo "$PATCH" | sed -e 's/[[^0-9]].*//'`
164   PATCH=`echo "$PATCH" | sed -e "s/^$MICRO//" -e 's/[[-.]]//'`
165   if test "_$MICRO" = "_" ; then MICRO="0" ; fi
166   if test "_$MINOR" = "_" ; then MINOR="$MAJOR" ; MAJOR="0" ; fi
167   MINOR=`echo "$MINOR" | sed -e 's/[[^0-9]].*//'`
168   LTREL="-release $MAJOR"
169   LTVER="-version-info $MINOR:$MICRO"
170 AC_MSG_RESULT([/$MAJOR/$MINOR:$MICRO (-$MAJOR.so.$MINOR.0.$MICRO)])
171 AC_SUBST(LTREL)
172 AC_SUBST(LTVER)
173 AS_VAR_POPDEF([LTVER])dnl
174 AS_VAR_POPDEF([LTREL])dnl
175 AS_VAR_POPDEF([PATCH])dnl
176 AS_VAR_POPDEF([MICRO])dnl
177 AS_VAR_POPDEF([MINOR])dnl
178 AS_VAR_POPDEF([MAJOR])dnl