annotate m4/ax_compare_version.m4 @ 28240:2fb684dc2ec2

axis.m: Implement "fill" option for Matlab compatibility. * axis.m: Document that "fill" is a synonym for "normal". Place "vis3d" option in documentation table for modes which affect aspect ratio. Add strcmpi (opt, "fill") to decode opt and executed the same behavior as "normal".
author Rik <rik@octave.org>
date Fri, 24 Apr 2020 13:16:09 -0700
parents a3eb0d746042
children 7714577c87dd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
15170
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
1 # ===========================================================================
24893
a3eb0d746042 doc: use canonical https URLs for all external gnu.org references
Mike Miller <mtmiller@octave.org>
parents: 15170
diff changeset
2 # https://www.gnu.org/software/autoconf-archive/ax_compare_version.html
15170
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
3 # ===========================================================================
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
4 #
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
5 # SYNOPSIS
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
6 #
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
7 # AX_COMPARE_VERSION(VERSION_A, OP, VERSION_B, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
8 #
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
9 # DESCRIPTION
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
10 #
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
11 # This macro compares two version strings. Due to the various number of
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
12 # minor-version numbers that can exist, and the fact that string
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
13 # comparisons are not compatible with numeric comparisons, this is not
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
14 # necessarily trivial to do in a autoconf script. This macro makes doing
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
15 # these comparisons easy.
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
16 #
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
17 # The six basic comparisons are available, as well as checking equality
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
18 # limited to a certain number of minor-version levels.
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
19 #
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
20 # The operator OP determines what type of comparison to do, and can be one
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
21 # of:
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
22 #
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
23 # eq - equal (test A == B)
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
24 # ne - not equal (test A != B)
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
25 # le - less than or equal (test A <= B)
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
26 # ge - greater than or equal (test A >= B)
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
27 # lt - less than (test A < B)
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
28 # gt - greater than (test A > B)
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
29 #
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
30 # Additionally, the eq and ne operator can have a number after it to limit
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
31 # the test to that number of minor versions.
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
32 #
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
33 # eq0 - equal up to the length of the shorter version
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
34 # ne0 - not equal up to the length of the shorter version
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
35 # eqN - equal up to N sub-version levels
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
36 # neN - not equal up to N sub-version levels
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
37 #
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
38 # When the condition is true, shell commands ACTION-IF-TRUE are run,
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
39 # otherwise shell commands ACTION-IF-FALSE are run. The environment
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
40 # variable 'ax_compare_version' is always set to either 'true' or 'false'
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
41 # as well.
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
42 #
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
43 # Examples:
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
44 #
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
45 # AX_COMPARE_VERSION([3.15.7],[lt],[3.15.8])
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
46 # AX_COMPARE_VERSION([3.15],[lt],[3.15.8])
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
47 #
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
48 # would both be true.
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
49 #
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
50 # AX_COMPARE_VERSION([3.15.7],[eq],[3.15.8])
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
51 # AX_COMPARE_VERSION([3.15],[gt],[3.15.8])
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
52 #
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
53 # would both be false.
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
54 #
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
55 # AX_COMPARE_VERSION([3.15.7],[eq2],[3.15.8])
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
56 #
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
57 # would be true because it is only comparing two minor versions.
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
58 #
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
59 # AX_COMPARE_VERSION([3.15.7],[eq0],[3.15])
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
60 #
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
61 # would be true because it is only comparing the lesser number of minor
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
62 # versions of the two values.
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
63 #
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
64 # Note: The characters that separate the version numbers do not matter. An
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
65 # empty string is the same as version 0. OP is evaluated by autoconf, not
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
66 # configure, so must be a string, not a variable.
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
67 #
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
68 # The author would like to acknowledge Guido Draheim whose advice about
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
69 # the m4_case and m4_ifvaln functions make this macro only include the
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
70 # portions necessary to perform the specific comparison specified by the
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
71 # OP argument in the final configure script.
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
72 #
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
73 # LICENSE
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
74 #
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
75 # Copyright (c) 2008 Tim Toolan <toolan@ele.uri.edu>
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
76 #
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
77 # Copying and distribution of this file, with or without modification, are
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
78 # permitted in any medium without royalty provided the copyright notice
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
79 # and this notice are preserved. This file is offered as-is, without any
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
80 # warranty.
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
81
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
82 #serial 11
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
83
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
84 dnl #########################################################################
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
85 AC_DEFUN([AX_COMPARE_VERSION], [
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
86 AC_REQUIRE([AC_PROG_AWK])
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
87
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
88 # Used to indicate true or false condition
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
89 ax_compare_version=false
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
90
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
91 # Convert the two version strings to be compared into a format that
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
92 # allows a simple string comparison. The end result is that a version
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
93 # string of the form 1.12.5-r617 will be converted to the form
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
94 # 0001001200050617. In other words, each number is zero padded to four
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
95 # digits, and non digits are removed.
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
96 AS_VAR_PUSHDEF([A],[ax_compare_version_A])
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
97 A=`echo "$1" | sed -e 's/\([[0-9]]*\)/Z\1Z/g' \
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
98 -e 's/Z\([[0-9]]\)Z/Z0\1Z/g' \
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
99 -e 's/Z\([[0-9]][[0-9]]\)Z/Z0\1Z/g' \
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
100 -e 's/Z\([[0-9]][[0-9]][[0-9]]\)Z/Z0\1Z/g' \
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
101 -e 's/[[^0-9]]//g'`
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
102
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
103 AS_VAR_PUSHDEF([B],[ax_compare_version_B])
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
104 B=`echo "$3" | sed -e 's/\([[0-9]]*\)/Z\1Z/g' \
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
105 -e 's/Z\([[0-9]]\)Z/Z0\1Z/g' \
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
106 -e 's/Z\([[0-9]][[0-9]]\)Z/Z0\1Z/g' \
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
107 -e 's/Z\([[0-9]][[0-9]][[0-9]]\)Z/Z0\1Z/g' \
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
108 -e 's/[[^0-9]]//g'`
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
109
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
110 dnl # In the case of le, ge, lt, and gt, the strings are sorted as necessary
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
111 dnl # then the first line is used to determine if the condition is true.
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
112 dnl # The sed right after the echo is to remove any indented white space.
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
113 m4_case(m4_tolower($2),
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
114 [lt],[
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
115 ax_compare_version=`echo "x$A
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
116 x$B" | sed 's/^ *//' | sort -r | sed "s/x${A}/false/;s/x${B}/true/;1q"`
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
117 ],
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
118 [gt],[
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
119 ax_compare_version=`echo "x$A
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
120 x$B" | sed 's/^ *//' | sort | sed "s/x${A}/false/;s/x${B}/true/;1q"`
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
121 ],
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
122 [le],[
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
123 ax_compare_version=`echo "x$A
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
124 x$B" | sed 's/^ *//' | sort | sed "s/x${A}/true/;s/x${B}/false/;1q"`
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
125 ],
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
126 [ge],[
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
127 ax_compare_version=`echo "x$A
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
128 x$B" | sed 's/^ *//' | sort -r | sed "s/x${A}/true/;s/x${B}/false/;1q"`
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
129 ],[
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
130 dnl Split the operator from the subversion count if present.
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
131 m4_bmatch(m4_substr($2,2),
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
132 [0],[
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
133 # A count of zero means use the length of the shorter version.
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
134 # Determine the number of characters in A and B.
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
135 ax_compare_version_len_A=`echo "$A" | $AWK '{print(length)}'`
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
136 ax_compare_version_len_B=`echo "$B" | $AWK '{print(length)}'`
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
137
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
138 # Set A to no more than B's length and B to no more than A's length.
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
139 A=`echo "$A" | sed "s/\(.\{$ax_compare_version_len_B\}\).*/\1/"`
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
140 B=`echo "$B" | sed "s/\(.\{$ax_compare_version_len_A\}\).*/\1/"`
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
141 ],
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
142 [[0-9]+],[
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
143 # A count greater than zero means use only that many subversions
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
144 A=`echo "$A" | sed "s/\(\([[0-9]]\{4\}\)\{m4_substr($2,2)\}\).*/\1/"`
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
145 B=`echo "$B" | sed "s/\(\([[0-9]]\{4\}\)\{m4_substr($2,2)\}\).*/\1/"`
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
146 ],
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
147 [.+],[
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
148 AC_WARNING(
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
149 [illegal OP numeric parameter: $2])
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
150 ],[])
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
151
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
152 # Pad zeros at end of numbers to make same length.
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
153 ax_compare_version_tmp_A="$A`echo $B | sed 's/./0/g'`"
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
154 B="$B`echo $A | sed 's/./0/g'`"
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
155 A="$ax_compare_version_tmp_A"
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
156
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
157 # Check for equality or inequality as necessary.
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
158 m4_case(m4_tolower(m4_substr($2,0,2)),
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
159 [eq],[
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
160 test "x$A" = "x$B" && ax_compare_version=true
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
161 ],
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
162 [ne],[
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
163 test "x$A" != "x$B" && ax_compare_version=true
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
164 ],[
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
165 AC_WARNING([illegal OP parameter: $2])
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
166 ])
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
167 ])
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
168
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
169 AS_VAR_POPDEF([A])dnl
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
170 AS_VAR_POPDEF([B])dnl
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
171
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
172 dnl # Execute ACTION-IF-TRUE / ACTION-IF-FALSE.
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
173 if test "$ax_compare_version" = "true" ; then
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
174 m4_ifvaln([$4],[$4],[:])dnl
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
175 m4_ifvaln([$5],[else $5])dnl
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
176 fi
a44ff4f0a20b Add AX_COMPARE_VERSION.m4 macro m4/ dir to make configure.ac simpler.
Rik <rik@octave.org>
parents:
diff changeset
177 ]) dnl AX_COMPARE_VERSION