nexmon – Blame information for rev 1
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 1 | # libunistring-base.m4 serial 5 |
2 | dnl Copyright (C) 2010-2016 Free Software Foundation, Inc. |
||
3 | dnl This file is free software; the Free Software Foundation |
||
4 | dnl gives unlimited permission to copy and/or distribute it, |
||
5 | dnl with or without modifications, as long as this notice is preserved. |
||
6 | |||
7 | dnl From Paolo Bonzini and Bruno Haible. |
||
8 | |||
9 | dnl gl_LIBUNISTRING_MODULE([VERSION], [Module]) |
||
10 | dnl Declares that the source files of Module should be compiled, unless we |
||
11 | dnl are linking with libunistring and its version is >= the given VERSION. |
||
12 | dnl Defines an automake conditional LIBUNISTRING_COMPILE_$MODULE that is |
||
13 | dnl true if the source files of Module should be compiled. |
||
14 | dnl This macro is to be used for public libunistring API, not for |
||
15 | dnl undocumented API. |
||
16 | dnl |
||
17 | dnl You have to bump the VERSION argument to the next projected version |
||
18 | dnl number each time you make a change that affects the behaviour of the |
||
19 | dnl functions defined in Module (even if the sources of Module itself do not |
||
20 | dnl change). |
||
21 | |||
22 | AC_DEFUN([gl_LIBUNISTRING_MODULE], |
||
23 | [ |
||
24 | AC_REQUIRE([gl_LIBUNISTRING_LIB_PREPARE]) |
||
25 | dnl Use the variables HAVE_LIBUNISTRING, LIBUNISTRING_VERSION from |
||
26 | dnl gl_LIBUNISTRING_CORE if that macro has been run. |
||
27 | AM_CONDITIONAL(AS_TR_CPP([LIBUNISTRING_COMPILE_$2]), |
||
28 | [gl_LIBUNISTRING_VERSION_CMP([$1])]) |
||
29 | ]) |
||
30 | |||
31 | dnl gl_LIBUNISTRING_LIBHEADER([VERSION], [HeaderFile]) |
||
32 | dnl Declares that HeaderFile should be created, unless we are linking |
||
33 | dnl with libunistring and its version is >= the given VERSION. |
||
34 | dnl HeaderFile should be relative to the lib directory and end in '.h'. |
||
35 | dnl Prepares for substituting LIBUNISTRING_HEADERFILE (to HeaderFile or empty). |
||
36 | dnl |
||
37 | dnl When we are linking with the already installed libunistring and its version |
||
38 | dnl is < VERSION, we create HeaderFile here, because we may compile functions |
||
39 | dnl (via gl_LIBUNISTRING_MODULE above) that are not contained in the installed |
||
40 | dnl version. |
||
41 | dnl When we are linking with the already installed libunistring and its version |
||
42 | dnl is > VERSION, we don't create HeaderFile here: it could cause compilation |
||
43 | dnl errors in other libunistring header files if some types are missing. |
||
44 | dnl |
||
45 | dnl You have to bump the VERSION argument to the next projected version |
||
46 | dnl number each time you make a non-comment change to the HeaderFile. |
||
47 | |||
48 | AC_DEFUN([gl_LIBUNISTRING_LIBHEADER], |
||
49 | [ |
||
50 | AC_REQUIRE([gl_LIBUNISTRING_LIB_PREPARE]) |
||
51 | dnl Use the variables HAVE_LIBUNISTRING, LIBUNISTRING_VERSION from |
||
52 | dnl gl_LIBUNISTRING_CORE if that macro has been run. |
||
53 | if gl_LIBUNISTRING_VERSION_CMP([$1]); then |
||
54 | LIBUNISTRING_[]AS_TR_CPP([$2])='$2' |
||
55 | else |
||
56 | LIBUNISTRING_[]AS_TR_CPP([$2])= |
||
57 | fi |
||
58 | AC_SUBST([LIBUNISTRING_]AS_TR_CPP([$2])) |
||
59 | ]) |
||
60 | |||
61 | dnl Miscellaneous preparations/initializations. |
||
62 | |||
63 | AC_DEFUN([gl_LIBUNISTRING_LIB_PREPARE], |
||
64 | [ |
||
65 | dnl Ensure that HAVE_LIBUNISTRING is fully determined at this point. |
||
66 | m4_ifdef([gl_LIBUNISTRING], [AC_REQUIRE([gl_LIBUNISTRING])]) |
||
67 | |||
68 | AC_REQUIRE([AC_PROG_AWK]) |
||
69 | |||
70 | dnl Sed expressions to extract the parts of a version number. |
||
71 | changequote(,) |
||
72 | gl_libunistring_sed_extract_major='/^[0-9]/{s/^\([0-9]*\).*/\1/p;q;} |
||
73 | i\ |
||
74 | |||
75 | q |
||
76 | ' |
||
77 | gl_libunistring_sed_extract_minor='/^[0-9][0-9]*[.][0-9]/{s/^[0-9]*[.]\([0-9]*\).*/\1/p;q;} |
||
78 | i\ |
||
79 | |||
80 | q |
||
81 | ' |
||
82 | gl_libunistring_sed_extract_subminor='/^[0-9][0-9]*[.][0-9][0-9]*[.][0-9]/{s/^[0-9]*[.][0-9]*[.]\([0-9]*\).*/\1/p;q;} |
||
83 | i\ |
||
84 | |||
85 | q |
||
86 | ' |
||
87 | changequote([,]) |
||
88 | |||
89 | if test "$HAVE_LIBUNISTRING" = yes; then |
||
90 | LIBUNISTRING_VERSION_MAJOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_major"` |
||
91 | LIBUNISTRING_VERSION_MINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_minor"` |
||
92 | LIBUNISTRING_VERSION_SUBMINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_subminor"` |
||
93 | fi |
||
94 | ]) |
||
95 | |||
96 | dnl gl_LIBUNISTRING_VERSION_CMP([VERSION]) |
||
97 | dnl Expands to a shell statement that evaluates to true if LIBUNISTRING_VERSION |
||
98 | dnl is less than the VERSION argument. |
||
99 | AC_DEFUN([gl_LIBUNISTRING_VERSION_CMP], |
||
100 | [ { test "$HAVE_LIBUNISTRING" != yes \ |
||
101 | || { |
||
102 | dnl AS_LITERAL_IF exists and works fine since autoconf-2.59 at least. |
||
103 | AS_LITERAL_IF([$1], |
||
104 | [dnl This is the optimized variant, that assumes the argument is a literal: |
||
105 | m4_pushdef([requested_version_major], |
||
106 | [gl_LIBUNISTRING_ARG_OR_ZERO(m4_bpatsubst([$1], [^\([0-9]*\).*], [\1]), [])]) |
||
107 | m4_pushdef([requested_version_minor], |
||
108 | [gl_LIBUNISTRING_ARG_OR_ZERO(m4_bpatsubst([$1], [^[0-9]*[.]\([0-9]*\).*], [\1]), [$1])]) |
||
109 | m4_pushdef([requested_version_subminor], |
||
110 | [gl_LIBUNISTRING_ARG_OR_ZERO(m4_bpatsubst([$1], [^[0-9]*[.][0-9]*[.]\([0-9]*\).*], [\1]), [$1])]) |
||
111 | test $LIBUNISTRING_VERSION_MAJOR -lt requested_version_major \ |
||
112 | || { test $LIBUNISTRING_VERSION_MAJOR -eq requested_version_major \ |
||
113 | && { test $LIBUNISTRING_VERSION_MINOR -lt requested_version_minor \ |
||
114 | || { test $LIBUNISTRING_VERSION_MINOR -eq requested_version_minor \ |
||
115 | && test $LIBUNISTRING_VERSION_SUBMINOR -lt requested_version_subminor |
||
116 | } |
||
117 | } |
||
118 | } |
||
119 | m4_popdef([requested_version_subminor]) |
||
120 | m4_popdef([requested_version_minor]) |
||
121 | m4_popdef([requested_version_major]) |
||
122 | ], |
||
123 | [dnl This is the unoptimized variant: |
||
124 | requested_version_major=`echo '$1' | sed -n -e "$gl_libunistring_sed_extract_major"` |
||
125 | requested_version_minor=`echo '$1' | sed -n -e "$gl_libunistring_sed_extract_minor"` |
||
126 | requested_version_subminor=`echo '$1' | sed -n -e "$gl_libunistring_sed_extract_subminor"` |
||
127 | test $LIBUNISTRING_VERSION_MAJOR -lt $requested_version_major \ |
||
128 | || { test $LIBUNISTRING_VERSION_MAJOR -eq $requested_version_major \ |
||
129 | && { test $LIBUNISTRING_VERSION_MINOR -lt $requested_version_minor \ |
||
130 | || { test $LIBUNISTRING_VERSION_MINOR -eq $requested_version_minor \ |
||
131 | && test $LIBUNISTRING_VERSION_SUBMINOR -lt $requested_version_subminor |
||
132 | } |
||
133 | } |
||
134 | } |
||
135 | ]) |
||
136 | } |
||
137 | }]) |
||
138 | |||
139 | dnl gl_LIBUNISTRING_ARG_OR_ZERO([ARG], [ORIG]) expands to ARG if it is not the |
||
140 | dnl same as ORIG, otherwise to 0. |
||
141 | m4_define([gl_LIBUNISTRING_ARG_OR_ZERO], [m4_if([$1], [$2], [0], [$1])]) |