| 
0
 | 
     1 dnl                                            -*- Autoconf -*-
 | 
| 
 | 
     2 ##### http://autoconf-archive.cryp.to/ax_lib_postgresql.html
 | 
| 
 | 
     3 #
 | 
| 
 | 
     4 # SYNOPSIS
 | 
| 
 | 
     5 #
 | 
| 
 | 
     6 #   AX_LIB_POSTGRESQL([MINIMUM-VERSION])
 | 
| 
 | 
     7 #
 | 
| 
 | 
     8 # DESCRIPTION
 | 
| 
 | 
     9 #
 | 
| 
 | 
    10 #   This macro provides tests of availability of PostgreSQL 'libpq'
 | 
| 
 | 
    11 #   library of particular version or newer.
 | 
| 
 | 
    12 #
 | 
| 
 | 
    13 #   AX_LIB_POSTGRESQL macro takes only one argument which is optional.
 | 
| 
 | 
    14 #   If there is no required version passed, then macro does not run
 | 
| 
 | 
    15 #   version test.
 | 
| 
 | 
    16 #
 | 
| 
 | 
    17 #   The --with-postgresql option takes one of three possible values:
 | 
| 
 | 
    18 #
 | 
| 
 | 
    19 #   no - do not check for PostgreSQL client library
 | 
| 
 | 
    20 #
 | 
| 
 | 
    21 #   yes - do check for PostgreSQL library in standard locations
 | 
| 
 | 
    22 #   (pg_config should be in the PATH)
 | 
| 
 | 
    23 #
 | 
| 
 | 
    24 #   path - complete path to pg_config utility, use this option if
 | 
| 
 | 
    25 #   pg_config can't be found in the PATH
 | 
| 
 | 
    26 #
 | 
| 
 | 
    27 #   This macro calls:
 | 
| 
 | 
    28 #
 | 
| 
 | 
    29 #     AC_SUBST([POSTGRESQL_CFLAGS])
 | 
| 
 | 
    30 #     AC_SUBST([POSTGRESQL_CPPFLAGS])
 | 
| 
 | 
    31 #     AC_SUBST([POSTGRESQL_LDFLAGS])
 | 
| 
 | 
    32 #     AC_SUBST([POSTGRESQL_VERSION])
 | 
| 
 | 
    33 #
 | 
| 
 | 
    34 #   And sets:
 | 
| 
 | 
    35 #
 | 
| 
 | 
    36 #     HAVE_POSTGRESQL
 | 
| 
 | 
    37 #
 | 
| 
 | 
    38 # LAST MODIFICATION
 | 
| 
 | 
    39 #
 | 
| 
 | 
    40 #   2006-07-16
 | 
| 
 | 
    41 #   2010-05-14 MKS: Added POSTGRESQL_CPPFLAGS
 | 
| 
 | 
    42 #   2011-06-21 AJB: Added workaround for Fedora pg_config oddity
 | 
| 
 | 
    43 #   2011-08-01 MKS: Changed PG_CONFIG to POSTGRESQL_CONFIG
 | 
| 
 | 
    44 #                   Made test constructs more portable
 | 
| 
 | 
    45 #
 | 
| 
 | 
    46 # COPYLEFT
 | 
| 
 | 
    47 #
 | 
| 
 | 
    48 #   Copyright (c) 2006 Mateusz Loskot <mateusz@loskot.net>
 | 
| 
 | 
    49 #
 | 
| 
 | 
    50 #   Copying and distribution of this file, with or without
 | 
| 
 | 
    51 #   modification, are permitted in any medium without royalty provided
 | 
| 
 | 
    52 #   the copyright notice and this notice are preserved.
 | 
| 
 | 
    53 
 | 
| 
 | 
    54 AC_DEFUN([AX_LIB_POSTGRESQL],
 | 
| 
 | 
    55 [
 | 
| 
 | 
    56   POSTGRESQL_CFLAGS=""
 | 
| 
 | 
    57   POSTGRESQL_CPPFLAGS=""
 | 
| 
 | 
    58   POSTGRESQL_LDFLAGS=""
 | 
| 
 | 
    59   POSTGRESQL_CONFIG=""
 | 
| 
 | 
    60   POSTGRESQL_VERSION=""
 | 
| 
 | 
    61 
 | 
| 
 | 
    62   AC_ARG_WITH([postgresql],
 | 
| 
 | 
    63   [AS_HELP_STRING([--with-postgresql@<:=@ARG@:>@],
 | 
| 
 | 
    64   [use PostgreSQL library @<:@default=yes@:>@, optionally specify path to pg_config])],
 | 
| 
 | 
    65   [
 | 
| 
 | 
    66     AS_IF([test "x${withval}" = "xno"],
 | 
| 
 | 
    67     [want_postgresql="no"],
 | 
| 
 | 
    68     [test "x${withval}" = "xyes"],
 | 
| 
 | 
    69     [want_postgresql="yes"],
 | 
| 
 | 
    70     [
 | 
| 
 | 
    71       want_postgresql="yes"
 | 
| 
 | 
    72       POSTGRESQL_CONFIG="${withval}"
 | 
| 
 | 
    73     ])
 | 
| 
 | 
    74   ],
 | 
| 
 | 
    75   [want_postgresql="yes"])
 | 
| 
 | 
    76 
 | 
| 
 | 
    77   dnl
 | 
| 
 | 
    78   dnl Check PostgreSQL libraries (libpq)
 | 
| 
 | 
    79   dnl
 | 
| 
 | 
    80 
 | 
| 
 | 
    81   AS_IF([test "x${want_postgresql}" = "xyes"],
 | 
| 
 | 
    82   [
 | 
| 
 | 
    83     AS_IF([test -z "${POSTGRESQL_CONFIG}" -o test],
 | 
| 
 | 
    84     [AC_PATH_PROG([POSTGRESQL_CONFIG], [pg_config], [no])])
 | 
| 
 | 
    85 
 | 
| 
 | 
    86     AS_IF([test "x${POSTGRESQL_CONFIG}" != "xno"],
 | 
| 
 | 
    87     [
 | 
| 
 | 
    88       AC_MSG_CHECKING([for PostgreSQL libraries])
 | 
| 
 | 
    89 
 | 
| 
 | 
    90       POSTGRESQL_CFLAGS="-I`${POSTGRESQL_CONFIG} --includedir`"
 | 
| 
 | 
    91       POSTGRESQL_CPPFLAGS="-I`${POSTGRESQL_CONFIG} --includedir`"
 | 
| 
 | 
    92       POSTGRESQL_LDFLAGS="-L`${POSTGRESQL_CONFIG} --libdir` -lpq"
 | 
| 
 | 
    93 
 | 
| 
 | 
    94       POSTGRESQL_VERSION=`${POSTGRESQL_CONFIG} --version | sed -e 's#PostgreSQL ##'`
 | 
| 
 | 
    95 
 | 
| 
 | 
    96       dnl It isn't enough to just test for pg_config as Fedora
 | 
| 
 | 
    97       dnl provides it in the postgresql RPM even though postgresql-devel may
 | 
| 
 | 
    98       dnl not be installed
 | 
| 
 | 
    99 
 | 
| 
 | 
   100       EMBCPPFLAGS="${CPPFLAGS}"
 | 
| 
 | 
   101       EMBLDFLAGS="${LDFLAGS}"
 | 
| 
 | 
   102 
 | 
| 
 | 
   103       CPPFLAGS="${POSTGRESQL_CPPFLAGS} ${EMBCPPFLAGS}"
 | 
| 
 | 
   104       LDFLAGS="${POSTGRESQL_LDFLAGS} ${EMBLDFLAGS}"
 | 
| 
 | 
   105 
 | 
| 
 | 
   106       AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>
 | 
| 
 | 
   107                                         #include "libpq-fe.h"]],
 | 
| 
 | 
   108                                       [[PQconnectdb(NULL)]])],
 | 
| 
 | 
   109         [havepostgresql="yes"],
 | 
| 
 | 
   110         [havepostgresql="no"])
 | 
| 
 | 
   111 
 | 
| 
 | 
   112       CPPFLAGS="${EMBCPPFLAGS}"
 | 
| 
 | 
   113       LDFLAGS="${EMBLDFLAGS}"
 | 
| 
 | 
   114 
 | 
| 
 | 
   115       AS_IF([test "x${havepostgresql}" = "xyes"],
 | 
| 
 | 
   116       [
 | 
| 
 | 
   117         AC_DEFINE([HAVE_POSTGRESQL], [1],
 | 
| 
 | 
   118         [Define to 1 if PostgreSQL libraries are available.])
 | 
| 
 | 
   119         found_postgresql="yes"
 | 
| 
 | 
   120         AC_MSG_RESULT([yes])
 | 
| 
 | 
   121       ],
 | 
| 
 | 
   122       [
 | 
| 
 | 
   123         POSTGRESQL_CFLAGS=""
 | 
| 
 | 
   124         POSTGRESQL_CPPFLAGS=""
 | 
| 
 | 
   125         POSTGRESQL_LDFLAGS=""
 | 
| 
 | 
   126         found_postgresql="no"
 | 
| 
 | 
   127         AC_MSG_RESULT([no])
 | 
| 
 | 
   128       ])
 | 
| 
 | 
   129     ],
 | 
| 
 | 
   130     [
 | 
| 
 | 
   131       found_postgresql="no"
 | 
| 
 | 
   132     ])
 | 
| 
 | 
   133   ])
 | 
| 
 | 
   134 
 | 
| 
 | 
   135   dnl
 | 
| 
 | 
   136   dnl Check if required version of PostgreSQL is available
 | 
| 
 | 
   137   dnl
 | 
| 
 | 
   138 
 | 
| 
 | 
   139   postgresql_version_req=ifelse([$1], [], [], [$1])
 | 
| 
 | 
   140 
 | 
| 
 | 
   141   AS_IF([test "x${found_postgresql}" = "xyes" -a -n "${postgresql_version_req}"],
 | 
| 
 | 
   142   [
 | 
| 
 | 
   143     AC_MSG_CHECKING([if PostgreSQL version is >= ${postgresql_version_req}])
 | 
| 
 | 
   144 
 | 
| 
 | 
   145     dnl Decompose required version string of PostgreSQL
 | 
| 
 | 
   146     dnl and calculate its number representation
 | 
| 
 | 
   147 
 | 
| 
 | 
   148     postgresql_version_req_major=`expr ${postgresql_version_req} : '\([[0-9]]*\)'`
 | 
| 
 | 
   149     postgresql_version_req_minor=`expr ${postgresql_version_req} : '[[0-9]]*\.\([[0-9]]*\)'`
 | 
| 
 | 
   150     postgresql_version_req_micro=`expr ${postgresql_version_req} : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'`
 | 
| 
 | 
   151 
 | 
| 
 | 
   152     AS_IF([test "x${postgresql_version_req_micro}" = "x"],
 | 
| 
 | 
   153     [postgresql_version_req_micro="0"])
 | 
| 
 | 
   154 
 | 
| 
 | 
   155     postgresql_version_req_number=`expr ${postgresql_version_req_major} \* 1000000 \
 | 
| 
 | 
   156                                   \+ ${postgresql_version_req_minor} \* 1000 \
 | 
| 
 | 
   157                                   \+ ${postgresql_version_req_micro}`
 | 
| 
 | 
   158 
 | 
| 
 | 
   159     dnl Decompose version string of installed PostgreSQL
 | 
| 
 | 
   160     dnl and calculate its number representation
 | 
| 
 | 
   161 
 | 
| 
 | 
   162     postgresql_version_major=`expr ${POSTGRESQL_VERSION} : '\([[0-9]]*\)'`
 | 
| 
 | 
   163     postgresql_version_minor=`expr ${POSTGRESQL_VERSION} : '[[0-9]]*\.\([[0-9]]*\)'`
 | 
| 
 | 
   164     postgresql_version_micro=`expr ${POSTGRESQL_VERSION} : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'`
 | 
| 
 | 
   165 
 | 
| 
 | 
   166     AS_IF([test "x${postgresql_version_micro}" = "x"],
 | 
| 
 | 
   167       [postgresql_version_micro="0"])
 | 
| 
 | 
   168 
 | 
| 
 | 
   169     postgresql_version_number=`expr ${postgresql_version_major} \* 1000000 \
 | 
| 
 | 
   170                               \+ ${postgresql_version_minor} \* 1000 \
 | 
| 
 | 
   171                               \+ ${postgresql_version_micro}`
 | 
| 
 | 
   172 
 | 
| 
 | 
   173     postgresql_version_check=`expr ${postgresql_version_number} \>\= ${postgresql_version_req_number}`
 | 
| 
 | 
   174 
 | 
| 
 | 
   175     AS_IF([test "x${postgresql_version_check}" = "x1"],
 | 
| 
 | 
   176     [AC_MSG_RESULT([yes])],
 | 
| 
 | 
   177     [AC_MSG_RESULT([no])])
 | 
| 
 | 
   178   ])
 | 
| 
 | 
   179 
 | 
| 
 | 
   180   AC_SUBST([POSTGRESQL_CFLAGS])
 | 
| 
 | 
   181   AC_SUBST([POSTGRESQL_CPPFLAGS])
 | 
| 
 | 
   182   AC_SUBST([POSTGRESQL_LDFLAGS])
 | 
| 
 | 
   183   AC_SUBST([POSTGRESQL_VERSION])
 | 
| 
 | 
   184 ])
 |