# =========================================================================== # https://www.gnu.org/software/autoconf-archive/ax_lib_firebird.html # =========================================================================== # # SYNOPSIS # # AX_LIB_FIREBIRD([MINIMUM-VERSION]) # # DESCRIPTION # # Test for the Firebird client library of a particular version (or newer). # This macro takes only one optional argument, the required version of # Firebird library. If required version is not passed, then 1.5.0 is used # in test of existence of Firebird client library. # # For more information about Firebird API versioning check: API Identifies # Client Version http://www.firebirdsql.org/rlsnotes20/rnfbtwo-apiods.html # # If no installation prefix to the installed Firebird library is given the # macro searches under /usr, /usr/local, and /opt. # # This macro calls: # # AC_SUBST(FIREBIRD_CFLAGS) # AC_SUBST(FIREBIRD_LDFLAGS) # AC_SUBST(FIREBIRD_VERSION) # # And sets: # # HAVE_FIREBIRD # # LICENSE # # Copyright (c) 2008 Mateusz Loskot # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. This file is offered as-is, without any # warranty. #serial 13 AC_DEFUN([AX_LIB_FIREBIRD], [ AC_ARG_WITH([firebird], AS_HELP_STRING( [--with-firebird=@<:@ARG@:>@], [use Firebird client library @<:@default=yes@:>@, optionally specify the prefix for firebird library] ), [ if test "$withval" = "no"; then WANT_FIREBIRD="no" elif test "$withval" = "yes"; then WANT_FIREBIRD="yes" ac_firebird_path="" else WANT_FIREBIRD="yes" ac_firebird_path="$withval" fi ], [WANT_FIREBIRD="yes"] ) FIREBIRD_CFLAGS="" FIREBIRD_LDFLAGS="" FIREBIRD_VERSION="" if test "x$WANT_FIREBIRD" = "xyes"; then ac_firebird_header="ibase.h" firebird_version_req=ifelse([$1], [], [3.0.0], [$1]) firebird_version_req_shorten=`expr $firebird_version_req : '\([[0-9]]*\.[[0-9]]*\)'` firebird_version_req_major=`expr $firebird_version_req : '\([[0-9]]*\)'` firebird_version_req_minor=`expr $firebird_version_req : '[[0-9]]*\.\([[0-9]]*\)'` firebird_version_req_micro=`expr $firebird_version_req : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'` if test "x$firebird_version_req_micro" = "x" ; then firebird_version_req_micro="0" fi dnl FB_API_VER represents the version of Firebird as follows: dnl - Any version of Interbase, or Firebird 1.0.x: 10 dnl - Firebird 1.5.x: 15 dnl - Firebird 2.0.x: 20 firebird_version_req_number=`expr $firebird_version_req_major \+ $firebird_version_req_minor` AC_MSG_CHECKING([for Firebird client library >= $firebird_version_req]) if test "$ac_firebird_path" != ""; then ac_firebird_ldflags="-L$ac_firebird_path/lib" ac_firebird_cppflags="-I$ac_firebird_path/include" else for ac_firebird_path_tmp in /usr /usr/local /opt ; do if test -f "$ac_firebird_path_tmp/include/$ac_firebird_header" \ && test -r "$ac_firebird_path_tmp/include/$ac_firebird_header"; then ac_firebird_path=$ac_firebird_path_tmp ac_firebird_cppflags="-I$ac_firebird_path_tmp/include" ac_firebird_ldflags="-L$ac_firebird_path_tmp/lib" break; fi done fi ac_firebird_header_path="$ac_firebird_path/include/$ac_firebird_header" if test ! -f "$ac_firebird_header_path"; then AC_MSG_RESULT([no]) success="no" else ac_firebird_ldflags="$ac_firebird_ldflags -lfbclient -lpthread" saved_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $ac_firebird_cppflags" AC_LANG_PUSH(C++) AC_COMPILE_IFELSE( [ AC_LANG_PROGRAM([[@%:@include ]], [[ #if (FB_API_VER >= $firebird_version_req_number) // Everything is okay #else # error Firebird version is too old #endif ]] ) ], [ AC_MSG_RESULT([yes]) success="yes" ], [ AC_MSG_RESULT([not found]) success="no" ] ) AC_LANG_POP([C++]) CPPFLAGS="$saved_CPPFLAGS" if test "$success" = "yes"; then FIREBIRD_CFLAGS="$ac_firebird_cppflags" FIREBIRD_LDFLAGS="$ac_firebird_ldflags" dnl Retrieve Firebird release version ac_firebird_version=`cat $ac_firebird_header_path | \ grep '#define.*FB_API_VER.*' | \ sed -e 's/.* //'` if test -n "$ac_firebird_version"; then ac_firebird_version_major=`expr $ac_firebird_version \/ 10` ac_firebird_version_minor=`expr $ac_firebird_version \% 10` FIREBIRD_VERSION="$ac_firebird_version_major.$ac_firebird_version_minor.x" else AC_MSG_WARN([Could not find FB_API_VER macro in $ac_firebird_header to get Firebird version.]) fi AC_SUBST(FIREBIRD_CFLAGS) AC_SUBST(FIREBIRD_LDFLAGS) AC_SUBST(FIREBIRD_VERSION) AC_DEFINE(HAVE_FIREBIRD) fi fi fi ])