dnl dnl dnl ProLinga-Data dnl dnl Copyright (C) 2002-2009 Xobas Software. dnl All rights reserved. dnl dnl This file is part of ProLinga-Data. dnl dnl ProLinga-Data is free software: you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by dnl the Free Software Foundation, either version 3 of the License, or dnl (at your option) any later version. dnl dnl ProLinga-Data is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the dnl GNU General Public License for more details. dnl dnl You should have received a copy of the GNU General Public License dnl along with ProLinga-Data. If not, see . dnl dnl More information is available at the following addresses: dnl dnl Website : http://www.prolinga.org dnl dnl Email : prolinga-list@prolinga.org dnl dnl dnl Process this file with autoconf to produce a configure script. AC_PREREQ(2.57) AC_INIT(ProLinga-Data,0.0.2,prolinga-list@prolinga.org,prolinga-data) AC_CONFIG_SRCDIR(src/DatConfig.cpp) AC_CONFIG_AUX_DIR(config) AC_CONFIG_MACRO_DIR([m4]) AC_LANG(C++) AM_CONFIG_HEADER(src/config.h:src/config-h.in) AM_INIT_AUTOMAKE dnl set host/node name HOST_NODE_NAME=`(hostname || uname -n) 2>/dev/null | sed 1q` AC_SUBST(HOST_NODE_NAME) dnl set home dir HOME_DIR=`echo $HOME` AC_SUBST(HOME_DIR) dnl set required 3rd party versions PKG_CONFIG_REQUIRED_VERSION=0.7.0 PROLINGASOAP_PACKAGE="prolinga-soap" PROLINGASOAP_REQUIRED_VERSION=0.0.1 LIBGDA_PACKAGE="libgda-4.0" LIBGDA_REQUIRED_VERSION=4.1.1 LIBXML_REQUIRED_VERSION=2.6.5 dnl Set default pkg search path PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib64/pkgconfig:/usr/local/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/local/lib/pkgconfig" dnl Enable debugging mode AC_ARG_ENABLE(debug, [ --enable-debug Enable debug messages], CFLAGS="$CFLAGS -DDEBUG -O0 -g" CXXFLAGS="$CFLAGS -DDEBUG -O0 -g") AC_ARG_ENABLE(gprof, [ --enable-gprof Enable profiling with gprof], CFLAGS="$CFLAGS -pg" CXXFLAGS="$CFLAGS -pg" LDFLAGS="$LDFLAGS -pg" ) dnl Enable stripped and optimized release builds AC_ARG_ENABLE(final, [ --enable-final Build release executables (GCC only)], if test "x$GCC" != xyes; then CFLAGS="$CFLAGS -DNDEBUG -Os -s -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS" CXXFLAGS="$CXXFLAGS -DNDEBUG -Os -s -fexceptions -fno-check-new -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS" fi) dnl Enable compiler warnings AC_ARG_ENABLE(warnings, [ --enable-warnings Enable compiler warnings (GCC only)], if test "x$GCC" != xyes; then CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -Wmissing-declarations -Wparentheses -Wpointer-arith" CXXFLAGS="$CXXFLAGS -Wall -Wparentheses -Wpointer-arith" fi) dnl Checks for programs. AC_PROG_CC AC_PROG_CPP AC_PROG_CXX AC_PROG_CXXCPP AC_PROG_INSTALL dnl AC_PROG_RANLIB AC_PROG_LIBTOOL dnl Checks for libraries. dnl Checks for header files. AC_HEADER_STDC AC_CHECK_HEADERS(ctype.h fcntl.h signal.h stddef.h time.h) dnl Checks for typedefs, structures and compiler characteristics. AC_C_CONST AC_CHECK_TYPES(bool) AC_HEADER_STDBOOL AC_TYPE_PID_T AC_TYPE_SIGNAL #AC_TYPE_SIZE_T dnl Checks for library functions. AC_FUNC_FORK AC_FUNC_MALLOC #AC_FUNC_REALLOC AC_CHECK_FUNCS(memset) dnl Check 3rd party products dnl dnl If pkg-config available use it, otherwise ignore dnl Not sure how widely accepted/available pkg-config is dnl AC_PATH_PROG(PKG_CONFIG, pkg-config, no) dnl test if pkg-config is available and if so if correct version if test "x$PKG_CONFIG" = "xno" then AC_MSG_NOTICE([Could not find pkg-config anywhere (optional). It is recommended to have pkg-config available for library compile/link flag detections during configure. Check http://www.freedesktop.org/software/pkgconfig/ for details.]) else AC_MSG_CHECKING(for pkg-config >= $PKG_CONFIG_REQUIRED_VERSION) if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_REQUIRED_VERSION then AC_MSG_RESULT(yes) else PKG_CONFIG_VERS=`$PKG_CONFIG --version` AC_MSG_RESULT(Version $PKG_CONFIG_VERS found. You need at least pkg-config $PKG_CONFIG_REQUIRED_VERSION for this version of ProLinga-Data) PKG_CONFIG="no" fi fi dnl dnl specify location of libgda dnl DB_PREFIX="" DB_CXXFLAGS="" DB_LIBS="" AC_ARG_WITH(libgda-prefix, [ --with-libgda-prefix=[PFX] Specify location of libgda], LIBGDA_PREFIX=$withval ) AC_ARG_WITH(libgda-include-prefix, [ --with-libgda-include-prefix=[PFX] Specify location of libgda headers], LIBGDA_CXXFLAGS="-I$withval" ) AC_ARG_WITH(libgda-libs-prefix, [ --with-libgda-libs-prefix=[PFX] Specify location of libgda libs], LIBGDA_LIBS="-L$withval" ) dnl dnl use pkg-config if available dnl if test "x$PKG_CONFIG" != "xno" then dnl use pkg-config for version check and compile/link flag detection. AC_MSG_CHECKING(for libgda libraries >= $LIBGDA_REQUIRED_VERSION) dnl create pkg-config search path PKG_CONFIG_SEARCH="/usr/lib/pkgconfig:/usr/lib64/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig" if test $LIBGDA_PREFIX then PKG_CONFIG_SEARCH="$PKG_CONFIG_SEARCH:$LIBGDA_PREFIX/lib/pkgconfig:$LIBGDA_PREFIX/lib64/pkgconfig" fi if test $LIBGDA_LIBS then SEARCH_LIB=`echo $LIBGDA_LIBS | sed -e 's/-L//'` PKG_CONFIG_SEARCH="$PKG_CONFIG_SEARCH:$SEARCH_LIB/pkgconfig" fi dnl check version PKG_CONFIG_PATH="$PKG_CONFIG_SEARCH:$PKG_CONFIG_PATH" if `export PKG_CONFIG_PATH; $PKG_CONFIG --modversion $LIBGDA_PACKAGE >/dev/null 2>&1` then LIBGDAVERS=`export PKG_CONFIG_PATH; $PKG_CONFIG --modversion $LIBGDA_PACKAGE` if `export PKG_CONFIG_PATH; $PKG_CONFIG --atleast-version=$LIBGDA_REQUIRED_VERSION $LIBGDA_PACKAGE` then LIBGDA_CXXFLAGS="$LIBGDA_CXXFLAGS `export PKG_CONFIG_PATH; $PKG_CONFIG --cflags $LIBGDA_PACKAGE`" LIBGDA_LIBS="$LIBGDA_LIBS `export PKG_CONFIG_PATH; $PKG_CONFIG --libs $LIBGDA_PACKAGE`" AC_MSG_RESULT($LIBGDAVERS found) else AC_MSG_ERROR(Version $LIBGDAVERS found. You need at least libgda $LIBGDA_REQUIRED_VERSION for this version of ProLinga-Data) fi else dnl check if libraries are there AC_MSG_CHECKING(for libgda libraries ) if test -f `echo $LIBGDA_LIBS | sed -e 's/-L//'`/libgda-4.0.la || test -f $LIBGDA_PREFIX/lib/libgda-4.0.la \ || test -f /usr/lib/libgda-4.0.la || test -f /usr/local/lib/libgda-4.0.la then AC_MSG_RESULT(4.0.n found) else AC_MSG_ERROR([Could not find libgda anywhere, check http://www.gnome-db.org/.]) fi if test $LIBGDA_PREFIX then LIBGDA_CXXFLAGS="$LIBGDA_CXXFLAGS -I/usr/include/libxml2 -I/usr/include/libxml2 -pthread -I$LIBGDA_PREFIX/include/libgda-4.0 -I$LIBGDA_PREFIX/include/libgda-4.0/libgda -I/usr/include/libxml2 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include" LIBGDA_LIBS="$LIBGDA_LIBS -L$LIBGDA_PREFIX/lib -lgda-4.0 -lgobject-2.0 -lgthread-2.0 -lrt -lxml2 -lglib-2.0 -pthread" fi dnl AC_MSG_ERROR([Could not find libgda anywhere, check http://www.gnome-db.org/.]) fi else dnl check if libraries are there AC_MSG_CHECKING(for libgda libraries ) if test -f `echo $LIBGDA_LIBS | sed -e 's/-L//'`/libgda-4.0.la || test -f $LIBGDA_PREFIX/lib/libgda-4.0.la \ || test -f /usr/lib/libgda-4.0.la || test -f /usr/local/lib/libgda-4.0.la then AC_MSG_RESULT(found) else AC_MSG_ERROR([Could not find libgda anywhere, check http://www.gnome-db.org/.]) fi if test $LIBGDA_PREFIX then LIBGDA_CXXFLAGS="$LIBGDA_CXXFLAGS -I$LIBGDA_PREFIX/include" LIBGDA_LIBS="$LIBGDA_LIBS -L$LIBGDA_PREFIX/lib" fi fi dnl export values AC_SUBST(LIBGDA_LIBS) AC_SUBST(LIBGDA_CXXFLAGS) dnl dnl specify location of libxml2 dnl LIBXML_CONFIG_PREFIX="" LIBXML_CXXFLAGS="" LIBXML_LIBS="" AC_ARG_WITH(libxml-prefix, [ --with-libxml-prefix=[PFX] Specify location of libxml config], LIBXML_CONFIG_PREFIX=$withval ) AC_ARG_WITH(libxml-include-prefix, [ --with-libxml-include-prefix=[PFX] Specify location of libxml headers], LIBXML_CXXFLAGS="-I$withval" ) AC_ARG_WITH(libxml-libs-prefix, [ --with-libxml-libs-prefix=[PFX] Specify location of libxml libs], LIBXML_LIBS="-L$withval" ) dnl where is xml2-config AC_SUBST(LIBXML_REQUIRED_VERSION) AC_MSG_CHECKING(for libxml libraries >= $LIBXML_REQUIRED_VERSION) if test "x$LIBXML_CONFIG_PREFIX" != "x" then XML_CONFIG=${LIBXML_CONFIG_PREFIX}/bin/xml2-config else XML_CONFIG=xml2-config fi dnl check version number AC_DEFUN([VERSION_TO_NUMBER], [`$1 | sed -e 's/libxml //' | awk 'BEGIN { FS = "."; } { printf "%d", ([$]1 * 1000 + [$]2) * 1000 + [$]3;}'`]) if ${XML_CONFIG} --libs print > /dev/null 2>&1 then XMLVERS=`$XML_CONFIG --version` if test VERSION_TO_NUMBER(echo $XMLVERS) -ge VERSION_TO_NUMBER(echo $LIBXML_REQUIRED_VERSION) then LIBXML_LIBS="$LIBXML_LIBS `$XML_CONFIG --libs`" LIBXML_CXXFLAGS="$LIBXML_CXXFLAGS `$XML_CONFIG --cflags`" AC_MSG_RESULT($XMLVERS found) else AC_MSG_ERROR(Version $XMLVERS found. You need at least libxml2 $LIBXML_REQUIRED_VERSION for this version of ProLinga-Data) fi else AC_MSG_ERROR([Could not find libxml2 anywhere, check http://xmlsoft.org/.]) fi AC_SUBST(XML_CONFIG) AC_SUBST(LIBXML_LIBS) AC_SUBST(LIBXML_CXXFLAGS) dnl dnl specify location of ProLinga-Soap dnl PROLINGASOAP_PREFIX="" PROLINGASOAP_CXXFLAGS="" PROLINGASOAP_LIBS="" AC_ARG_WITH(prolingasoap-prefix, [ --with-prolingasoap-prefix=[PFX] Specify location of ProLinga-Soap], PROLINGASOAP_PREFIX=$withval ) AC_ARG_WITH(prolingasoap-include-prefix, [ --with-prolingasoap-include-prefix=[PFX] Specify location of ProLinga-Soap headers], PROLINGASOAP_CXXFLAGS="-I$withval" ) AC_ARG_WITH(prolingasoap-libs-prefix, [ --with-prolingasoap-libs-prefix=[PFX] Specify location of ProLinga-Soap libs], PROLINGASOAP_LIBS="-L$withval" ) dnl dnl use pkg-config if available dnl if test "x$PKG_CONFIG" != "xno" then dnl use pkg-config for version check and compile/link flag detection. AC_MSG_CHECKING(for ProLinga-Soap libraries >= $PROLINGASOAP_REQUIRED_VERSION) dnl create pkg-config search path PKG_CONFIG_SEARCH="/usr/lib64/pkgconfig:/usr/local/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/local/lib/pkgconfig" if test $PROLINGASOAP_PREFIX then PKG_CONFIG_SEARCH="$PROLINGASOAP_PREFIX/lib/pkgconfig:$PKG_CONFIG_SEARCH" fi if test $PROLINGASOAP_LIBS then SEARCH_LIB=`echo $PROLINGASOAP_LIBS | sed -e 's/-L//'` PKG_CONFIG_SEARCH="$PKG_CONFIG_SEARCH:$SEARCH_LIB/pkgconfig" fi dnl check version PKG_CONFIG_PATH="$PKG_CONFIG_SEARCH:$PKG_CONFIG_PATH" if `export PKG_CONFIG_PATH; $PKG_CONFIG --modversion $PROLINGASOAP_PACKAGE >/dev/null 2>&1` then SOAPVERS=`export PKG_CONFIG_PATH; $PKG_CONFIG --modversion $PROLINGASOAP_PACKAGE` if `export PKG_CONFIG_PATH; $PKG_CONFIG --atleast-version=$PROLINGASOAP_REQUIRED_VERSION $PROLINGASOAP_PACKAGE` then PROLINGASOAP_CXXFLAGS="$PROLINGASOAP_CXXFLAGS `export PKG_CONFIG_PATH; $PKG_CONFIG --cflags $PROLINGASOAP_PACKAGE`" PROLINGASOAP_LIBS="$PROLINGASOAP_LIBS `export PKG_CONFIG_PATH; $PKG_CONFIG --libs-only-L $PROLINGASOAP_PACKAGE`" AC_MSG_RESULT($SOAPVERS found) else AC_MSG_ERROR(Version $SOAPVERS found. You need at least ProLinga-Soap $PROLINGASOAP_REQUIRED_VERSION for this version of ProLinga-Data) fi else AC_MSG_ERROR([Could not find ProLinga-Soap anywhere, check http://www.prolinga.org/.]) fi else dnl check if libraries are there AC_MSG_CHECKING(for ProLinga-Soap libraries ) if test -f `echo $PROLINGASOAP_LIBS | sed -e 's/-L//'`/libprolingasoapclient.la || test -f $PROLINGASOAP_PREFIX/lib/libprolingasoapclient.la \ || test -f /usr/lib/libprolingasoapclient.la || test -f /usr/local/lib/libprolingasoapclient.la then AC_MSG_RESULT(found) else AC_MSG_ERROR([Could not find ProLinga-Soap anywhere, check http://www.prolinga.org/.]) fi if test $PROLINGASOAP_PREFIX then PROLINGASOAP_CXXFLAGS="$PROLINGASOAP_CXXFLAGS -I$PROLINGASOAP_PREFIX/include" PROLINGASOAP_LIBS="$PROLINGASOAP_LIBS -L$PROLINGASOAP_PREFIX/lib" fi fi dnl export values AC_SUBST(PROLINGASOAP_LIBS) AC_SUBST(PROLINGASOAP_CXXFLAGS) dnl create output files AC_OUTPUT(Makefile prolinga-data.pc src/Makefile prolinga/prolingadatcfg.xml prolinga/Makefile doc/Makefile doc/version.txt)