Annotation of gpl/axl/configure.ac, revision 1.1

1.1     ! misho       1: dnl  Copyright (C) 2009 Advanced Software Production Line, S.L.
        !             2: dnl
        !             3: dnl  This program is free software; you can redistribute it and/or
        !             4: dnl  modify it under the terms of the GNU Lesser General Public License
        !             5: dnl  as published by the Free Software Foundation; either version 2.1 of
        !             6: dnl  the License, or (at your option) any later version.
        !             7: dnl
        !             8: dnl  This program is distributed in the hope that it will be useful,
        !             9: dnl  but WITHOUT ANY WARRANTY; without even the implied warranty of 
        !            10: dnl  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
        !            11: dnl  GNU Lesser General Public License for more details.
        !            12: dnl
        !            13: dnl  You should have received a copy of the GNU Lesser General Public
        !            14: dnl  License along with this program; if not, write to the Free
        !            15: dnl  Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
        !            16: dnl  02111-1307 USA
        !            17: dnl  
        !            18: dnl  You may find a copy of the license under this software is released
        !            19: dnl  at COPYING file. This is LGPL software: you are wellcome to
        !            20: dnl  develop propietary applications using this library withtout any
        !            21: dnl  royalty or fee but returning back any change, improvement or
        !            22: dnl  addition in the form of source code, project image, documentation
        !            23: dnl  patches, etc. 
        !            24: dnl
        !            25: dnl  For commercial support on build XML enabled solutions contact us:
        !            26: dnl          
        !            27: dnl      Postal address:
        !            28: dnl         Advanced Software Production Line, S.L.
        !            29: dnl         Edificio Alius A, Oficina 102,
        !            30: dnl         C/ Antonio Suarez Nº 10,
        !            31: dnl         Alcalá de Henares 28802 Madrid
        !            32: dnl         Spain
        !            33: dnl
        !            34: dnl      Email address:
        !            35: dnl         info@aspl.es - http://www.aspl.es/xml
        !            36: dnl
        !            37: AC_INIT(src/axl.h)
        !            38: 
        !            39: configure_dir=`dirname "$0"`
        !            40: AXL_VERSION=`cat $configure_dir/VERSION`
        !            41: AC_SUBST(AXL_VERSION)
        !            42: 
        !            43: AC_CONFIG_AUX_DIR(.)
        !            44: AM_INIT_AUTOMAKE(axl, $AXL_VERSION)
        !            45: AM_CONFIG_HEADER(config.h)
        !            46: AM_MAINTAINER_MODE
        !            47: 
        !            48: AC_PROG_CC
        !            49: AC_ISC_POSIX
        !            50: AC_HEADER_STDC
        !            51: AM_PROG_LIBTOOL
        !            52: 
        !            53: # check type sizes
        !            54: AC_CHECK_SIZEOF(long)
        !            55: AC_CHECK_SIZEOF(int)
        !            56: AC_CHECK_SIZEOF(void *)
        !            57: 
        !            58: AM_PATH_PYTHON([2.3])
        !            59: 
        !            60: # find python-config
        !            61: PYTHON_CONFIG=`./get-python-config`
        !            62: 
        !            63: # get python includes 
        !            64: PYTHON_INCLUDES=`$PYTHON_CONFIG --includes 2>/dev/null`
        !            65: old_CPPFLAGS=$CPPFLAGS
        !            66: CPPFLAGS="-Wall -Werror $PYTHON_INCLUDES"
        !            67: echo "Python includes: $PYTHON_INCLUDES"
        !            68: AC_SUBST(PYTHON_INCLUDES)
        !            69: 
        !            70: AC_TRY_COMPILE([#include <Python.h>],
        !            71:   [Py_InitModule3(NULL, NULL, NULL);],
        !            72:   python_devel_found=yes,
        !            73:   python_devel_found=no)
        !            74: AC_MSG_RESULT([Python development headers status: $python_devel_found])
        !            75: if test "x$python_devel_found" = "xno"; then
        !            76:    AC_MSG_WARN([Cannot find Python.h header or current python development environment do not compile symbols required. On debian try to install python-dev package.])
        !            77: fi
        !            78: 
        !            79: # get python flags and libs
        !            80: PYTHON_CFLAGS=`$PYTHON_CONFIG --cflags 2>/dev/null`
        !            81: PYTHON_LIBS=`$PYTHON_CONFIG --ldflags 2>/dev/null`
        !            82: AC_SUBST(PYTHON_CFLAGS)
        !            83: AC_SUBST(PYTHON_LIBS)
        !            84: AM_CONDITIONAL(ENABLE_PY_AXL, test "x$python_devel_found" = "xyes")
        !            85: 
        !            86: ##########################
        !            87: # Check for doxygen tool #
        !            88: ##########################
        !            89: dnl check for doxygen documentation
        !            90: AC_ARG_ENABLE(axl-doc, [  --enable-axl-doc     Enable building Axl documentation (doxygen required) [default=yes]], enable_axl_doc="$enableval", enable_axl_doc=yes)
        !            91: if test x$enable_axl_doc = xyes ; then
        !            92:         AC_CHECK_PROG(DOXYGEN, doxygen, "yes", "no")
        !            93: fi
        !            94: AM_CONDITIONAL(ENABLE_AF_ARCH_DOC, test "x$DOXYGEN" = "xyes")
        !            95: 
        !            96: dnl check to build test files
        !            97: AC_ARG_ENABLE(axl-test, [  --enable-axl-test     Enable building Axl test executables [default=yes]], enable_axl_test="$enableval", enable_axl_test=yes)
        !            98: AM_CONDITIONAL(ENABLE_AXL_TESTS, test "x$enable_axl_test" = "xyes")
        !            99: 
        !           100: dnl check to build libaxl namespace support
        !           101: AC_ARG_ENABLE(axl-ns, [  --enable-axl-ns     Enable building Axl Namespace support [default=yes]], enable_axl_ns="$enableval", enable_axl_ns=yes)
        !           102: AM_CONDITIONAL(ENABLE_AXL_NS, test "x$enable_axl_ns" = "xyes")
        !           103: 
        !           104: AC_ARG_ENABLE(axl-log, [  --enable-axl-log     Enable building Axl with debug log support [default=yes]], enable_axl_log="$enableval", enable_axl_log=yes)
        !           105: AM_CONDITIONAL(ENABLE_AXL_LOG, test "x$enable_axl_log" = "xyes")
        !           106: 
        !           107: dnl check to build axl knife tool 
        !           108: AC_ARG_ENABLE(axl-knife, [  --enable-axl-knife     Enable building Axl Knife tool [default=yes]], enable_axl_knife="$enableval", enable_axl_knife=yes)
        !           109: AM_CONDITIONAL(ENABLE_AXL_KNIFE, test "x$enable_axl_knife" = "xyes")
        !           110: 
        !           111: dnl check to build axl babel support
        !           112: AC_ARG_ENABLE(axl-babel, [  --enable-axl-babel     Enable building Axl Babel tool [default=yes]], enable_axl_babel="$enableval", enable_axl_babel=yes)
        !           113: AM_CONDITIONAL(ENABLE_AXL_BABEL, test "x$enable_axl_babel" = "xyes")
        !           114: 
        !           115: # The following command also comes to produce the axl_config.h file
        !           116: # required by the tool. If you update this, remember to update the
        !           117: # af-arch main configure.ac
        !           118: AC_TRY_LINK([#define _GNU_SOURCE
        !           119: #include <stdio.h>], 
        !           120: [
        !           121:   char * result;
        !           122:   vasprintf (&result, "This is a test: %d", NULL);
        !           123:   return 0;
        !           124: ], [have_vasprintf=yes],[have_vasprintf=no])
        !           125: echo "Checking vasprintf support: $have_vasprintf"
        !           126: 
        !           127: # produce axl_config.h file this section will only be run if
        !           128: # config.status is invoked with no arguments, or with "axl_config.h"
        !           129: # as an argument. Remember to update af-arch configure.ac file to
        !           130: # include the same script building as the following.
        !           131: AC_CONFIG_COMMANDS([axl_config.h],
        !           132: [
        !           133:        outfile=axl_config.h-tmp
        !           134:        cat > $outfile <<_______EOF
        !           135: /* 
        !           136:  * Axl Library axl_config.h
        !           137:  * Platform dependant definitions.
        !           138:  *
        !           139:  * This is a generated file.  Please modify 'configure.in'
        !           140:  */
        !           141: 
        !           142: #ifndef __AXL_CONFIG_H__
        !           143: #define __AXL_CONFIG_H__
        !           144: 
        !           145: /** 
        !           146:  * \addtogroup axl_decl_module
        !           147:  * @{
        !           148:  */
        !           149: 
        !           150: /** 
        !           151:  * @brief Allows to convert integer value (including constant values)
        !           152:  * into a pointer representation. 
        !           153:  *
        !           154:  * Use the oposite function to restore the value from a pointer to a
        !           155:  * integer: \ref PTR_TO_INT. 
        !           156:  *
        !           157:  * @param integer The integer value to cast to pointer.
        !           158:  *
        !           159:  * @return A \ref axlPointer reference.
        !           160:  */
        !           161: #define INT_TO_PTR(integer)   ((axlPointer) ${pti_cast} ((int)integer))
        !           162: 
        !           163: /** 
        !           164:  * @brief Allows to convert a pointer reference (\ref axlPointer),
        !           165:  * which stores an integer that was stored using \ref INT_TO_PTR.
        !           166:  *
        !           167:  * Use the oposite function to restore the pointer value stored in the
        !           168:  * integer value.
        !           169:  * 
        !           170:  * @param ptr The pointer to cast to a integer value.
        !           171:  * 
        !           172:  * @return A int value.
        !           173:  */
        !           174: #define PTR_TO_INT(ptr) ((int) ${pti_cast} (ptr))
        !           175: 
        !           176: /**
        !           177:  * @brief Allows to get current platform configuration. This is used
        !           178:  * by Axl library but could be used by applications built on top of
        !           179:  * Axl to change its configuration based on the platform information.
        !           180:  */
        !           181: $axl_platform
        !           182: 
        !           183: $vasprintf_status
        !           184: 
        !           185: /* @} */
        !           186: 
        !           187: #endif
        !           188: _______EOF
        !           189: 
        !           190:        # Check if the file exists and it is equal, if not, overwrite it 
        !           191:        if cmp -s $outfile src/axl_config.h; then
        !           192:          AC_MSG_NOTICE([axl_config.h is unchanged])
        !           193:          rm -f $outfile
        !           194:        else
        !           195:          mv $outfile src/axl_config.h
        !           196:        fi
        !           197: ],[
        !           198: 
        !           199: # Check size of void pointer against the size of a single
        !           200: # integer. This will allow us to know if we can cast directly a
        !           201: # integer to pointer and viceversa.
        !           202: case $ac_cv_sizeof_void_p in
        !           203: $ac_cv_sizeof_int)     pti_cast=''        ptui_cast=''                ;;
        !           204: $ac_cv_sizeof_long)    pti_cast='(long)'  ptui_cast='(unsigned long)' ;;
        !           205: *)                     pti_unknown_void_p=yes                         ;;
        !           206: esac
        !           207: 
        !           208: # Get current configure for the platform and the os we are running.
        !           209: case $host in
        !           210:   *-*-beos*)
        !           211:     axl_platform="#define AXL_OS_BEOS (1)"
        !           212:     ;;
        !           213:   *-*-cygwin*)
        !           214:     axl_platform="#define AXL_OS_UNIX (1)
        !           215: #define AXL_PLATFORM_WIN32 (1)
        !           216: #define AXL_WITH_CYGWIN (1)"
        !           217:     ;;
        !           218:   *-*-mingw*)
        !           219:     axl_platform="#define AXL_OS_WIN32 (1)
        !           220: #define AXL_PLATFORM_WIN32 (1)"
        !           221:     ;;
        !           222:   *)
        !           223:     axl_platform="#define AXL_OS_UNIX (1)"
        !           224:     ;;
        !           225: esac
        !           226: 
        !           227: case $have_vasprintf in
        !           228: yes)
        !           229:      vasprintf_status="/**
        !           230:  * @internal Allows to now if the platform support vasprintf
        !           231:  * function. Do not use this macro as it is supposed to be for
        !           232:  * internal use.
        !           233:  */
        !           234: #define AXL_HAVE_VASPRINTF (1)"
        !           235:      ;;
        !           236: no)
        !           237:      vasprintf_status=""
        !           238:      ;;
        !           239: esac
        !           240: 
        !           241: ])
        !           242: 
        !           243: dnl The following lines are for the embeded support of exarg inside axl-knife.
        !           244: dnl support for vasprintf
        !           245: case $have_vasprintf in
        !           246: yes)
        !           247:        EXARG_FLAGS="-DHAVE_VASPRINTF $EXARG_FLAGS"
        !           248:        echo "vasprintf support found"
        !           249:      ;;
        !           250: esac
        !           251: 
        !           252: dnl check for windows platform
        !           253: case $host in
        !           254: *-*-mingw*)
        !           255:        EXARG_FLAGS="-DOS_WIN32 $EXARG_FLAGS"
        !           256:        echo "windows platform found"
        !           257:        ;;      
        !           258: *)
        !           259:        echo "platform found: $host"
        !           260:     ;;
        !           261: esac
        !           262: AC_SUBST(EXARG_FLAGS)
        !           263: 
        !           264: dnl get site dinamic library extension
        !           265: SHARED_EXTENSION=$shrext_cmds
        !           266: AC_SUBST(SHARED_EXTENSION)
        !           267: 
        !           268: 
        !           269: AC_OUTPUT([
        !           270: Makefile
        !           271: src/Makefile
        !           272: ns/Makefile
        !           273: doc/Makefile
        !           274: doc/axl-doc.doxygen
        !           275: babel/Makefile
        !           276: test/Makefile
        !           277: knife/Makefile
        !           278: py-axl/Makefile
        !           279: py-axl/__init__.py
        !           280: py-axl/doc/conf.py
        !           281: py-axl/doc/Makefile
        !           282: axl.pc
        !           283: axl-ns.pc
        !           284: axl-babel.pc])
        !           285: 
        !           286: echo "------------------------------------------"
        !           287: echo "--       LibAXL LIBRARY SETTINGS        --"
        !           288: echo "------------------------------------------"
        !           289: echo "   Installation prefix:          [$prefix]"
        !           290: echo "   Build Axl Namespace support:  [$enable_axl_ns]"
        !           291: echo "   Build Axl Library tests:      [$enable_axl_test]"
        !           292: echo "   Build Axl Knife:              [$enable_axl_knife]"
        !           293: echo "   Build Axl Library debug log:  [$enable_axl_log]"
        !           294: echo "   Build PyAxl:                  [$python_devel_found]"
        !           295: if test x$DOXYGEN = xyes ; then
        !           296:    echo "   Build Axl Library doc:        enabled"
        !           297: else       
        !           298:    echo "   Build Axl Library doc:        disabled"
        !           299:    echo "     NOTE: To enable Axl documentation you will"
        !           300:    echo "     have to install doxygen tool. Then run again"
        !           301:    echo "     configure process."
        !           302: fi
        !           303: echo "   vasprintf support:            [$have_vasprintf]"
        !           304: echo "------------------------------------------"
        !           305: echo "--     NOW TYPE: make; make install     --"
        !           306: echo "------------------------------------------"

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>