~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to m4/pkg.m4

  • Committer: Jay Pipes
  • Date: 2009-01-30 04:01:12 UTC
  • mto: This revision was merged to the branch mainline in revision 830.
  • Revision ID: jpipes@serialcoder-20090130040112-svbn774guj98pwi4
To remain in compatibility with MySQL, added ability to interpret
decimal arguments as datetime strings for temporal functions.

Fixed YEAR(), MONTH(), DAYOFMONTH(), DAYOFYEAR(), HOUR(), MINUTE(), SECOND(), and MICROSECOND()
to accept decimal parameters and interpret them the same way as MySQL.

Fixed an issue with the TemporalFormat::matches() method which was 
incorrectly assuming all microsecond arguments were specified as 6 digits.
Added power of 10 multiplier to usecond calculation. This fixes issues with
failures in type_date and func_sapdb test cases.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# pkg.m4 - Macros to locate and utilise pkg-config.            -*- Autoconf -*-
2
 
3
 
# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
4
 
#
5
 
# This program is free software; you can redistribute it and/or modify
6
 
# it under the terms of the GNU General Public License as published by
7
 
# the Free Software Foundation; either version 2 of the License, or
8
 
# (at your option) any later version.
9
 
#
10
 
# This program is distributed in the hope that it will be useful, but
11
 
# WITHOUT ANY WARRANTY; without even the implied warranty of
12
 
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13
 
# General Public License for more details.
14
 
#
15
 
# You should have received a copy of the GNU General Public License
16
 
# along with this program; if not, write to the Free Software
17
 
# Foundation, Inc., 51 Franklin Place - Suite 330, Boston, MA 02110-1301, USA.
18
 
#
19
 
# As a special exception to the GNU General Public License, if you
20
 
# distribute this file as part of a program that contains a
21
 
# configuration script generated by Autoconf, you may include it under
22
 
# the same distribution terms that you use for the rest of that program.
23
 
 
24
 
# PKG_PROG_PKG_CONFIG([MIN-VERSION])
25
 
# ----------------------------------
26
 
AC_DEFUN([PKG_PROG_PKG_CONFIG],
27
 
[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
28
 
m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
29
 
AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
30
 
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
31
 
        AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
32
 
fi
33
 
if test -n "$PKG_CONFIG"; then
34
 
        _pkg_min_version=m4_default([$1], [0.9.0])
35
 
        AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
36
 
        if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
37
 
                AC_MSG_RESULT([yes])
38
 
        else
39
 
                AC_MSG_RESULT([no])
40
 
                PKG_CONFIG=""
41
 
        fi
42
 
                
43
 
fi[]dnl
44
 
])# PKG_PROG_PKG_CONFIG
45
 
 
46
 
# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
47
 
#
48
 
# Check to see whether a particular set of modules exists.  Similar
49
 
# to PKG_CHECK_MODULES(), but does not set variables or print errors.
50
 
#
51
 
#
52
 
# Similar to PKG_CHECK_MODULES, make sure that the first instance of
53
 
# this or PKG_CHECK_MODULES is called, or make sure to call
54
 
# PKG_CHECK_EXISTS manually
55
 
# --------------------------------------------------------------
56
 
AC_DEFUN([PKG_CHECK_EXISTS],
57
 
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
58
 
if test -n "$PKG_CONFIG" && \
59
 
    AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
60
 
  m4_ifval([$2], [$2], [:])
61
 
m4_ifvaln([$3], [else
62
 
  $3])dnl
63
 
fi])
64
 
 
65
 
 
66
 
# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
67
 
# ---------------------------------------------
68
 
m4_define([_PKG_CONFIG],
69
 
[if test -n "$PKG_CONFIG"; then
70
 
    if test -n "$$1"; then
71
 
        pkg_cv_[]$1="$$1"
72
 
    else
73
 
        PKG_CHECK_EXISTS([$3],
74
 
                         [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null | sed 's/-I/-isystem/g' `],
75
 
                         [pkg_failed=yes])
76
 
        if test "$GCC" = "yes"; then
77
 
          pkg_cv_[]$1=`echo $pkg_cv_[]$1 | sed 's/-I/-isystem/g' `
78
 
        fi
79
 
    fi
80
 
else
81
 
        pkg_failed=untried
82
 
fi[]dnl
83
 
])# _PKG_CONFIG
84
 
 
85
 
# _PKG_SHORT_ERRORS_SUPPORTED
86
 
# -----------------------------
87
 
AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
88
 
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
89
 
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
90
 
        _pkg_short_errors_supported=yes
91
 
else
92
 
        _pkg_short_errors_supported=no
93
 
fi[]dnl
94
 
])# _PKG_SHORT_ERRORS_SUPPORTED
95
 
 
96
 
 
97
 
# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
98
 
# [ACTION-IF-NOT-FOUND])
99
 
#
100
 
#
101
 
# Note that if there is a possibility the first call to
102
 
# PKG_CHECK_MODULES might not happen, you should be sure to include an
103
 
# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
104
 
#
105
 
#
106
 
# --------------------------------------------------------------
107
 
AC_DEFUN([PKG_CHECK_MODULES],
108
 
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
109
 
AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
110
 
AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
111
 
 
112
 
pkg_failed=no
113
 
AC_MSG_CHECKING([for $1])
114
 
 
115
 
_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
116
 
_PKG_CONFIG([$1][_LIBS], [libs], [$2])
117
 
 
118
 
m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
119
 
and $1[]_LIBS to avoid the need to call pkg-config.
120
 
See the pkg-config man page for more details.])
121
 
 
122
 
if test $pkg_failed = yes; then
123
 
        _PKG_SHORT_ERRORS_SUPPORTED
124
 
        if test $_pkg_short_errors_supported = yes; then
125
 
                $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"`
126
 
        else 
127
 
                $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
128
 
        fi
129
 
        # Put the nasty error message in config.log where it belongs
130
 
        echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
131
 
 
132
 
        ifelse([$4], , [AC_MSG_ERROR(dnl
133
 
[Package requirements ($2) were not met:
134
 
 
135
 
$$1_PKG_ERRORS
136
 
 
137
 
Consider adjusting the PKG_CONFIG_PATH environment variable if you
138
 
installed software in a non-standard prefix.
139
 
 
140
 
_PKG_TEXT
141
 
])],
142
 
                [AC_MSG_RESULT([no])
143
 
                $4])
144
 
elif test $pkg_failed = untried; then
145
 
        ifelse([$4], , [AC_MSG_FAILURE(dnl
146
 
[The pkg-config script could not be found or is too old.  Make sure it
147
 
is in your PATH or set the PKG_CONFIG environment variable to the full
148
 
path to pkg-config.
149
 
 
150
 
_PKG_TEXT
151
 
 
152
 
To get pkg-config, see <http://pkg-config.freedesktop.org/>.])],
153
 
                [$4])
154
 
else
155
 
        $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
156
 
        $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
157
 
        AC_MSG_RESULT([yes])
158
 
        ifelse([$3], , :, [$3])
159
 
fi[]dnl
160
 
])# PKG_CHECK_MODULES