Blame conf/libdap.m4

Packit a4aae4
# -*- mode: autoconf -*-
Packit a4aae4
# Configure macros for Libdap
Packit a4aae4
#
Packit a4aae4
# Code for version detection and comparison comes from freetype2.m4
Packit a4aae4
# Marcelo Magallon 2001-10-26, based on gtk.m4 by Owen Taylor
Packit a4aae4
#
Packit a4aae4
# Copyright 2001, 2003 by
Packit a4aae4
# David Turner, Robert Wilhelm, and Werner Lemberg.
Packit a4aae4
#
Packit a4aae4
# This file is part of the FreeType project, and may only be used, modified,
Packit a4aae4
# and distributed under the terms of the FreeType project license,
Packit a4aae4
# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
Packit a4aae4
# indicate that you have read the license and understand and accept it
Packit a4aae4
# fully.
Packit a4aae4
#
Packit a4aae4
# As a special exception to the FreeType project license, this file may be
Packit a4aae4
# distributed as part of a program that contains a configuration script
Packit a4aae4
# generated by Autoconf, under the same distribution terms as the rest of
Packit a4aae4
# that program.
Packit a4aae4
#
Packit a4aae4
# modified by Patrice Dumas 2005 for libdap
Packit a4aae4
#
Packit a4aae4
# AC_CHECK_DODS is based on code from gdal configure.in
Packit a4aae4
Packit a4aae4
# AC_CHECK_LIBDAP([MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
Packit a4aae4
# Test for Libdap and define DAP_CFLAGS and DAP_LIBS.
Packit a4aae4
# Check that the version is above MINIMUM-VERSION 
Packit a4aae4
# use when linking with a c++ aware linker, with a c linker you may also
Packit a4aae4
# need -lstdc++
Packit a4aae4
Packit a4aae4
AC_DEFUN([AC_CHECK_LIBDAP],
Packit a4aae4
[
Packit a4aae4
  dap_min_version=m4_if([$1], [], [3.5.0], [$1])
Packit a4aae4
  dap_no=
Packit a4aae4
  dap_pkgconfig_libdap=yes 
Packit a4aae4
  PKG_CHECK_MODULES([DAP],[libdap >= $dap_min_version],,
Packit a4aae4
    [dap_pkgconfig_libdap=no])
Packit a4aae4
  PKG_CHECK_MODULES([DAP_CLIENT],[libdapclient >= $dap_min_version],,
Packit a4aae4
    [dap_pkgconfig_libdap=no])
Packit a4aae4
  PKG_CHECK_MODULES([DAP_SERVER],[libdapserver >= $dap_min_version],,
Packit a4aae4
    [dap_pkgconfig_libdap=no])
Packit a4aae4
  
Packit a4aae4
  if test $dap_pkgconfig_libdap = no; then
Packit a4aae4
    AC_PATH_PROG([DAP_CONFIG], [dap-config], [no])
Packit a4aae4
    if test "$DAP_CONFIG" = "no" ; then
Packit a4aae4
      dap_no=yes
Packit a4aae4
    else
Packit a4aae4
      dap_config_major_version=`$DAP_CONFIG --version | sed 's/^libdap \([[0-9]][[0-9]]*\)\.\([[0-9]][[0-9]]*\)\.\([[0-9]][[0-9]]*\)[[ab]]*$/\1/'`
Packit a4aae4
      dap_config_minor_version=`$DAP_CONFIG --version | sed 's/^libdap \([[0-9]][[0-9]]*\)\.\([[0-9]][[0-9]]*\)\.\([[0-9]][[0-9]]*\)[[ab]]*$/\2/'`
Packit a4aae4
      dap_config_micro_version=`$DAP_CONFIG --version | sed 's/^libdap \([[0-9]][[0-9]]*\)\.\([[0-9]][[0-9]]*\)\.\([[0-9]][[0-9]]*\)[[ab]]*$/\3/'`
Packit a4aae4
      dap_min_major_version=`echo $dap_min_version | sed 's/\([[0-9]][[0-9]]*\).\([[0-9]][[0-9]]*\).\([[0-9]][[0-9]]*\)$/\1/'`
Packit a4aae4
      dap_min_minor_version=`echo $dap_min_version | sed 's/\([[0-9]][[0-9]]*\).\([[0-9]][[0-9]]*\).\([[0-9]][[0-9]]*\)$/\2/'`
Packit a4aae4
      dap_min_micro_version=`echo $dap_min_version | sed 's/\([[0-9]][[0-9]]*\).\([[0-9]][[0-9]]*\).\([[0-9]][[0-9]]*\)$/\3/'`
Packit a4aae4
Packit a4aae4
      dap_config_is_lt=""
Packit a4aae4
      if test $dap_config_major_version -lt $dap_min_major_version ; then
Packit a4aae4
        dap_config_is_lt=yes
Packit a4aae4
      else
Packit a4aae4
        if test $dap_config_major_version -eq $dap_min_major_version ; then
Packit a4aae4
          if test $dap_config_minor_version -lt $dap_min_minor_version ; then
Packit a4aae4
            dap_config_is_lt=yes
Packit a4aae4
          else
Packit a4aae4
            if test $dap_config_minor_version -eq $dap_min_minor_version ; then
Packit a4aae4
              if test $dap_config_micro_version -lt $dap_min_micro_version ; then
Packit a4aae4
                dap_config_is_lt=yes
Packit a4aae4
              fi
Packit a4aae4
            fi
Packit a4aae4
          fi
Packit a4aae4
        fi
Packit a4aae4
      fi
Packit a4aae4
      if test x$dap_config_is_lt = xyes ; then
Packit a4aae4
        dap_no=yes
Packit a4aae4
      else
Packit a4aae4
        DAP_LIBS="`$DAP_CONFIG --libs`"
Packit a4aae4
        if ($DAP_CONFIG --client-libs 2>&1 | grep unknown) >/dev/null 2>&1; then
Packit a4aae4
          DAP_CLIENT_LIBS=$DAP_LIBS
Packit a4aae4
          DAP_SERVER_LIBS=$DAP_LIBS
Packit a4aae4
        else
Packit a4aae4
          DAP_CLIENT_LIBS="`$DAP_CONFIG --client-libs`"
Packit a4aae4
          DAP_SERVER_LIBS="`$DAP_CONFIG --server-libs`"
Packit a4aae4
        fi
Packit a4aae4
        DAP_CFLAGS="`$DAP_CONFIG --cflags`"
Packit a4aae4
      fi
Packit a4aae4
    fi
Packit a4aae4
  else
Packit a4aae4
     DAP_STATIC_LIBS="`$PKG_CONFIG --static --libs libdap`"
Packit a4aae4
     DAP_CLIENT_STATIC_LIBS="`$PKG_CONFIG --static --libs libdapclient`"
Packit a4aae4
     DAP_SERVER_STATIC_LIBS="`$PKG_CONFIG --static --libs libdapserver`"
Packit a4aae4
  fi
Packit a4aae4
  AC_MSG_CHECKING([for libdap version >= $dap_min_version])
Packit a4aae4
  if test x$dap_no = x ; then
Packit a4aae4
    AC_MSG_RESULT([yes])
Packit a4aae4
    m4_if([$2], [], [:], [$2])
Packit a4aae4
  else
Packit a4aae4
    AC_MSG_RESULT([no])
Packit a4aae4
    if test "$DAP_CONFIG" = "no" ; then
Packit a4aae4
    AC_MSG_NOTICE([The dap-config script could not be found.])
Packit a4aae4
    else
Packit a4aae4
      if test x$dap_config_is_lt = xyes ; then
Packit a4aae4
        AC_MSG_NOTICE([the installed libdap library is too old.])
Packit a4aae4
      fi
Packit a4aae4
    fi
Packit a4aae4
    DAP_LIBS=""
Packit a4aae4
    DAP_CFLAGS=""
Packit a4aae4
    m4_if([$3], [], [:], [$3])
Packit a4aae4
  fi
Packit a4aae4
  if test x"$DAP_CFLAGS" != x -a x"$DAP_CLIENT_CFLAGS" = x ; then
Packit a4aae4
    DAP_CLIENT_CFLAGS=$DAP_CFLAGS
Packit a4aae4
  fi
Packit a4aae4
  if test x"$DAP_CFLAGS" != x -a x"$DAP_SERVER_CFLAGS" = x ; then
Packit a4aae4
    DAP_SERVER_CFLAGS=$DAP_CFLAGS
Packit a4aae4
  fi
Packit a4aae4
  if test x"$DAP_STATIC_LIBS" = x ; then
Packit a4aae4
    DAP_STATIC_LIBS=$DAP_LIBS
Packit a4aae4
    DAP_CLIENT_STATIC_LIBS=$DAP_CLIENT_LIBS
Packit a4aae4
    DAP_SERVER_STATIC_LIBS=$DAP_SERVER_LIBS
Packit a4aae4
  fi
Packit a4aae4
  AC_SUBST([DAP_CFLAGS])
Packit a4aae4
  AC_SUBST([DAP_CLIENT_CFLAGS])
Packit a4aae4
  AC_SUBST([DAP_SERVER_CFLAGS])
Packit a4aae4
  AC_SUBST([DAP_LIBS])
Packit a4aae4
  AC_SUBST([DAP_CLIENT_LIBS])
Packit a4aae4
  AC_SUBST([DAP_SERVER_LIBS])
Packit a4aae4
  AC_SUBST([DAP_STATIC_LIBS])
Packit a4aae4
  AC_SUBST([DAP_CLIENT_STATIC_LIBS])
Packit a4aae4
  AC_SUBST([DAP_SERVER_STATIC_LIBS])
Packit a4aae4
]) 
Packit a4aae4
Packit a4aae4
# AC_CHECK_DODS([ ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
Packit a4aae4
# Test for Libdap or older versions. Define DAP_CFLAGS and DAP_LIBS and
Packit a4aae4
# optionnaly DAP_ROOT
Packit a4aae4
Packit a4aae4
AC_DEFUN([AC_CHECK_DODS],
Packit a4aae4
[
Packit a4aae4
  AC_ARG_WITH([dods_root],
Packit a4aae4
    [AS_HELP_STRING([--with-dods-root=ARG],[DODS root fallback])],
Packit a4aae4
    ,,)
Packit a4aae4
Packit a4aae4
  ac_dods_ok='no'
Packit a4aae4
  DAP_ROOT=
Packit a4aae4
  AC_MSG_CHECKING([DODS specific root])
Packit a4aae4
  if test -z "$with_dods_root" -o "$with_dods_root" = "no"; then
Packit a4aae4
    AC_MSG_RESULT([disabled])
Packit a4aae4
  else
Packit a4aae4
    AC_MSG_RESULT([$with_dods_root])
Packit a4aae4
    DODS_ROOT=$with_dods_root
Packit a4aae4
    DODS_LIB=$with_dods_root/lib
Packit a4aae4
    DODS_INC=$with_dods_root/include
Packit a4aae4
    DODS_BIN=$with_dods_root/bin
Packit a4aae4
Packit a4aae4
    dnl Add the DODS libraries to LIBS
Packit a4aae4
    if test -x "$DODS_BIN/opendap-config" ; then 
Packit a4aae4
      dnl OPeNDAP 3.4 and earlier lack opendap-config, but use it if avail.
Packit a4aae4
      DAP_LIBS="`$DODS_BIN/opendap-config --libs`"
Packit a4aae4
      DAP_CFLAGS="`$DODS_BIN/opendap-config --cflags`"
Packit a4aae4
      ac_dods_ok='yes'
Packit a4aae4
    elif test -x "$DODS_BIN/dap-config" ; then
Packit a4aae4
      dnl for OPeNDAP 3.5
Packit a4aae4
      DAP_LIBS="`$DODS_BIN/dap-config --libs`"
Packit a4aae4
      DAP_CFLAGS="`$DODS_BIN/dap-config --cflags`"
Packit a4aae4
      ac_dods_ok='yes'
Packit a4aae4
    else
Packit a4aae4
      dnl Otherwise try to put things together in a more primitive way.
Packit a4aae4
      DAP_LIBS="-L$DODS_LIB -ldap++ -lpthread"
Packit a4aae4
      DAP_CFLAGS="-I$DODS_INC"
Packit a4aae4
    
Packit a4aae4
      ac_dods_curl='yes'
Packit a4aae4
      dnl Add curl to LIBS; it might be local to DODS or generally installed
Packit a4aae4
      AC_MSG_CHECKING([For curl])
Packit a4aae4
      if test -x "$DODS_BIN/curl-config"; then
Packit a4aae4
         DAP_LIBS="$DAP_LIBS  `$DODS_BIN/curl-config --libs`"
Packit a4aae4
      elif which curl-config > /dev/null 2>&1; then
Packit a4aae4
         DAP_LIBS="$DAP_LIBS  `curl-config --libs`"
Packit a4aae4
      else
Packit a4aae4
         ac_dods_curl='no'
Packit a4aae4
      fi
Packit a4aae4
      if test $ac_dods_curl = 'no' ; then
Packit a4aae4
         AC_MSG_RESULT([no]) 
Packit a4aae4
         dnl AC_MSG_WARN([You gave a dods root, but I can't find curl!])
Packit a4aae4
      else
Packit a4aae4
         AC_MSG_RESULT([yes])
Packit a4aae4
      fi 
Packit a4aae4
         
Packit a4aae4
      
Packit a4aae4
      AC_MSG_CHECKING([For libxml2])
Packit a4aae4
      ac_dods_xml2='yes'
Packit a4aae4
      if test -x "$DODS_BIN/xml2-config"; then
Packit a4aae4
         DAP_LIBS="$DAP_LIBS `$DODS_BIN/xml2-config --libs`"
Packit a4aae4
      elif which xml2-config > /dev/null 2>&1; then
Packit a4aae4
         DAP_LIBS="$DAP_LIBS  `xml2-config --libs`"
Packit a4aae4
      else
Packit a4aae4
         ac_dods_xml2='no'
Packit a4aae4
      fi
Packit a4aae4
      if test $ac_dods_xml2 = 'no' ; then
Packit a4aae4
         AC_MSG_RESULT([no]) 
Packit a4aae4
         dnl AC_MSG_WARN([You gave a dods root, but I can't find xml2!])
Packit a4aae4
      else
Packit a4aae4
         AC_MSG_RESULT([yes])
Packit a4aae4
      fi 
Packit a4aae4
         
Packit a4aae4
      AC_LANG_PUSH([C++])
Packit a4aae4
      if test $ac_dods_xml2 = 'yes' -a $ac_dods_curl = 'yes'; then
Packit a4aae4
         dnl We check that linking is succesfull
Packit a4aae4
         ac_save_LIBS=$LIBS
Packit a4aae4
         ac_save_CFLAGS=$CFLAGS
Packit a4aae4
         LIBS="$LIBS $DAP_LIBS"
Packit a4aae4
         CFLAGS="$CFLAGS $DAP_CFLAGS"
Packit a4aae4
         dnl AC_CHECK_LIB is not used because it caches results
Packit a4aae4
         dnl AC_CHECK_LIB([dap++],[main],[ac_dods_ok='yes'],[ac_dods_ok='no'])
Packit a4aae4
         AC_MSG_CHECKING([for DODS with curl and libxml2])
Packit a4aae4
         AC_LINK_IFELSE([AC_LANG_CALL([],[main])],[
Packit a4aae4
           ac_dods_ok='yes'
Packit a4aae4
           AC_MSG_RESULT([yes])
Packit a4aae4
         ],[
Packit a4aae4
           ac_dods_ok='no'
Packit a4aae4
           AC_MSG_RESULT([no])
Packit a4aae4
         ])
Packit a4aae4
         LIBS=$ac_save_LIBS
Packit a4aae4
         CFLAGS=$ac_save_CFLAGS
Packit a4aae4
         if test "z$ac_dods_ok" = "zno"; then
Packit a4aae4
           ac_save_LIBS=$LIBS
Packit a4aae4
           ac_save_CFLAGS=$CFLAGS
Packit a4aae4
           LIBS="$LIBS $DAP_LIBS -lrx"
Packit a4aae4
           CFLAGS="$CFLAGS $DAP_CFLAGS"
Packit a4aae4
           AC_MSG_CHECKING([for DODS with curl, libxml2 and librx])
Packit a4aae4
           AC_LINK_IFELSE([AC_LANG_CALL([],[main])],[
Packit a4aae4
               AC_MSG_RESULT([yes])
Packit a4aae4
               ac_dods_ok='yes'
Packit a4aae4
               DAP_LIBS="$DAP_LIBS -lrx"
Packit a4aae4
           ],[
Packit a4aae4
               ac_dods_ok='no'
Packit a4aae4
               AC_MSG_RESULT([no])
Packit a4aae4
           ])
Packit a4aae4
           LIBS=$ac_save_LIBS
Packit a4aae4
           CFLAGS=$ac_save_CFLAGS
Packit a4aae4
         fi
Packit a4aae4
      fi
Packit a4aae4
      if test $ac_dods_ok = 'no'; then
Packit a4aae4
         dnl assume it is an old version of DODS
Packit a4aae4
         AC_MSG_NOTICE([Checking for DODS with libwww and librx])
Packit a4aae4
         DAP_LIBS="-L$DODS_LIB -ldap++ -lwww -lpthread -lrx"
Packit a4aae4
         DAP_CFLAGS="-I$DODS_INC"
Packit a4aae4
         ac_save_LIBS=$LIBS
Packit a4aae4
         ac_save_CFLAGS=$CFLAGS
Packit a4aae4
         LIBS="$LIBS $DAP_LIBS"
Packit a4aae4
         CFLAGS="$CFLAGS $DAP_CFLAGS"
Packit a4aae4
         AC_CHECK_LIB([dap++],[main],[ac_dods_ok='yes'],[ac_dods_ok='no'])
Packit a4aae4
         LIBS=$ac_save_LIBS
Packit a4aae4
         CFLAGS=$ac_save_CFLAGS
Packit a4aae4
      fi
Packit a4aae4
      AC_LANG_POP
Packit a4aae4
    fi
Packit a4aae4
      
Packit a4aae4
    AC_MSG_CHECKING([for DODS in a specific root])
Packit a4aae4
    if test "z$ac_dods_ok" = "zyes"; then
Packit a4aae4
       AC_MSG_RESULT([yes])
Packit a4aae4
       AC_MSG_NOTICE([setting DAP_ROOT directory to $DODS_ROOT])
Packit a4aae4
       DAP_ROOT=$DODS_ROOT
Packit a4aae4
    else
Packit a4aae4
       AC_MSG_RESULT([no])
Packit a4aae4
    fi
Packit a4aae4
  fi
Packit a4aae4
  if test "z$ac_dods_ok" = "zno" ; then
Packit a4aae4
     AC_CHECK_LIBDAP([],[ac_dods_ok='yes'],[ac_dods_ok='no'])
Packit a4aae4
     if test "z$ac_dods_ok" = "zno" ; then
Packit a4aae4
       AC_PATH_PROG([OPENDAP_CONFIG], [opendap-config], [no])
Packit a4aae4
       AC_MSG_CHECKING([for libdap with opendap-config])
Packit a4aae4
       if test "$OPENDAP_CONFIG" = "no" ; then
Packit a4aae4
         ac_dods_ok='no'
Packit a4aae4
         AC_MSG_RESULT([no])
Packit a4aae4
       else
Packit a4aae4
         DAP_LIBS="`$OPENDAP_CONFIG --libs`"
Packit a4aae4
         DAP_CFLAGS="`$OPENDAP_CONFIG --cflags`"
Packit a4aae4
         ac_dods_ok='yes'
Packit a4aae4
         AC_MSG_RESULT([yes])
Packit a4aae4
       fi
Packit a4aae4
     fi
Packit a4aae4
  fi 
Packit a4aae4
  if test "x$ac_dods_ok" = "xyes" ; then
Packit a4aae4
     if test "z$DAP_CLIENT_LIBS" = 'z' ; then
Packit a4aae4
       DAP_CLIENT_LIBS=$DAP_LIBS
Packit a4aae4
       DAP_SERVER_LIBS=$DAP_LIBS
Packit a4aae4
     fi
Packit a4aae4
     if test x"$DAP_CFLAGS" != x -a x"$DAP_CLIENT_CFLAGS" = x ; then
Packit a4aae4
        DAP_CLIENT_CFLAGS=$DAP_CFLAGS
Packit a4aae4
     fi
Packit a4aae4
     if test x"$DAP_CFLAGS" != x -a x"$DAP_SERVER_CFLAGS" = x ; then
Packit a4aae4
       DAP_SERVER_CFLAGS=$DAP_CFLAGS
Packit a4aae4
     fi
Packit a4aae4
     if test x"$DAP_STATIC_LIBS" = x ; then
Packit a4aae4
       DAP_STATIC_LIBS=$DAP_LIBS
Packit a4aae4
       DAP_CLIENT_STATIC_LIBS=$DAP_CLIENT_LIBS
Packit a4aae4
       DAP_SERVER_STATIC_LIBS=$DAP_SERVER_LIBS
Packit a4aae4
     fi
Packit a4aae4
     m4_if([$1], [], [:], [$1])
Packit a4aae4
  else
Packit a4aae4
     DAP_LIBS=""
Packit a4aae4
     DAP_CFLAGS=""
Packit a4aae4
     DAP_CLIENT_LIBS=""
Packit a4aae4
     DAP_SERVER_LIBS=""
Packit a4aae4
     m4_if([$2], [], [:], [$2])
Packit a4aae4
  fi
Packit a4aae4
dnl done above
Packit a4aae4
dnl  AC_SUBST([DAP_CFLAGS])
Packit a4aae4
dnl  AC_SUBST([DAP_CLIENT_CFLAGS])
Packit a4aae4
dnl  AC_SUBST([DAP_SERVER_CFLAGS])
Packit a4aae4
dnl  AC_SUBST([DAP_LIBS])
Packit a4aae4
dnl  AC_SUBST([DAP_CLIENT_LIBS])
Packit a4aae4
dnl  AC_SUBST([DAP_SERVER_LIBS])
Packit a4aae4
dnl  AC_SUBST([DAP_STATIC_LIBS])
Packit a4aae4
dnl  AC_SUBST([DAP_CLIENT_STATIC_LIBS])
Packit a4aae4
dnl  AC_SUBST([DAP_SERVER_STATIC_LIBS])
Packit a4aae4
dnl  AC_SUBST([DAP_ROOT])
Packit a4aae4
])