Annotation of gpl/axl/configure.ac, revision 1.1.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>