1# Autojunk script for libdbus-c++
2
3AC_PREREQ(2.59)
4AC_INIT([libdbus-c++], 0.9.1pw)
5AC_CONFIG_SRCDIR([src/error.cpp])
6AM_CONFIG_HEADER([config.h])
7AC_CONFIG_MACRO_DIR([m4])
8AM_INIT_AUTOMAKE([subdir-objects])
9
10AC_CANONICAL_HOST
11
12AC_SUBST(PACKAGE_VERSION)
13
14
15# Set configuration options
16
17AC_ARG_ENABLE(ecore,
18	AS_HELP_STRING([--enable-ecore],
19		[enable ecore integration]),
20	[enable_ecore=$enableval],
21	[enable_ecore=yes]
22)
23
24AC_ARG_ENABLE(glib,
25	AS_HELP_STRING([--enable-glib],
26		[enable glib integration]),
27	[enable_glib=$enableval],
28	[enable_glib=yes]
29)
30
31AC_ARG_ENABLE(doxygen-docs,
32	AS_HELP_STRING([--enable-doxygen-docs],
33		[build DOXYGEN documentation (requires Doxygen)]),
34	[enable_doxygen_docs=$enableval],
35 	[enable_doxygen_docs=no]
36)
37
38AC_ARG_ENABLE(tests,
39	AS_HELP_STRING([--enable-tests],
40		[build tests]),
41	[enable_tests=$enableval],
42 	[enable_tests=yes]
43)
44
45AC_ARG_ENABLE(examples,
46	AS_HELP_STRING([--enable-examples],
47		[build examples]),
48	[enable_examples=$enableval],
49 	[enable_examples=yes]
50)
51
52AC_CHECK_FUNCS(clock_gettime, [], [
53  AC_CHECK_LIB(rt, clock_gettime, [
54    AC_DEFINE(HAVE_CLOCK_GETTIME, 1)
55    RT_LIBS="-lrt"
56  ])
57])
58AC_SUBST(RT_LIBS)
59
60# Check for programs
61
62AC_LANG_CPLUSPLUS
63
64AC_PROG_CC
65AC_PROG_CXX
66
67CXX_FOR_BUILD=${CXX_FOR_BUILD-${CXX}}
68AC_SUBST(CXX_FOR_BUILD)
69
70AM_PROG_LIBTOOL
71
72PKG_PROG_PKG_CONFIG
73
74
75AC_MSG_CHECKING([whether $CXX supports symbol visibility])
76
77vtest=`$CXX --help --verbose 2>&1 | grep fvisibility`
78
79if test -n "$vtest"; then
80	AC_MSG_RESULT(yes)
81
82	AC_DEFINE(GCC_HASCLASSVISIBILITY, 1, [to enable hidden symbols])
83	CXXFLAGS="$CXXFLAGS -fvisibility=hidden"
84else
85	AC_MSG_RESULT(no)
86fi
87
88
89# Check for dependencies
90
91DBUS_REQUIRED_VERSION=0.60
92PKG_CHECK_MODULES(dbus, [dbus-1 >= $DBUS_REQUIRED_VERSION],,
93	AC_MSG_ERROR([You need the DBus libraries (version 0.6 or better)]
94	[http://www.freedesktop.org/wiki/Software_2fdbus])
95)
96AC_SUBST(dbus_CFLAGS)
97AC_SUBST(dbus_LIBS)
98
99DBUS_API_STABLE_VERSION=1.0.0
100PKG_CHECK_EXISTS([dbus-1 < $DBUS_API_STABLE_VERSION],
101	[AC_DEFINE(DBUS_API_SUBJECT_TO_CHANGE, , [unstable DBus])]
102)
103
104DBUS_THREADS_INIT_DEFAULT_VERSION=0.93
105PKG_CHECK_EXISTS([dbus-1 >= $DBUS_THREADS_INIT_DEFAULT_VERSION],
106	[AC_DEFINE(DBUS_HAS_THREADS_INIT_DEFAULT, , [dbus_threads_init_default (needs DBus >= 0.93)])]
107)
108
109DBUS_RECURSIVE_MUTEX_VERSION=0.95
110PKG_CHECK_EXISTS([dbus-1 >= $DBUS_RECURSIVE_MUTEX_VERSION],
111	[AC_DEFINE(DBUS_HAS_RECURSIVE_MUTEX, , [DBus supports recursive mutexes (needs DBus >= 0.95)])]
112)
113
114
115if test "$enable_glib" = "yes" ; then
116PKG_CHECK_MODULES([glib], glib-2.0)
117AC_SUBST(glib_CFLAGS)
118AC_SUBST(glib_LIBS)
119AM_CONDITIONAL(ENABLE_GLIB, test 1 = 1)
120PKG_CHECK_MODULES([gtkmm], gtkmm-2.4,
121	AM_CONDITIONAL(HAVE_GTKMM, test 1 = 1),
122	AM_CONDITIONAL(HAVE_GTKMM, test 0 = 1)
123)
124AC_SUBST(gtkmm_CFLAGS)
125AC_SUBST(gtkmm_LIBS)
126else
127AM_CONDITIONAL(ENABLE_GLIB, test 0 = 1)
128AM_CONDITIONAL(HAVE_GTKMM, test 0 = 1)
129fi
130
131if test "$enable_ecore" = "yes" ; then
132PKG_CHECK_MODULES([ecore], ecore)
133AC_SUBST(ecore_CFLAGS)
134AC_SUBST(ecore_LIBS)
135AM_CONDITIONAL(ENABLE_ECORE, test 1 = 1)
136else
137AM_CONDITIONAL(ENABLE_ECORE, test 0 = 1)
138fi
139
140if test "$enable_tests" = "yes" ; then
141AM_CONDITIONAL(ENABLE_TESTS, test 1 = 1)
142else
143AM_CONDITIONAL(ENABLE_TESTS, test 0 = 1)
144fi
145
146if test "$enable_examples" = "yes" ; then
147AM_CONDITIONAL(ENABLE_EXAMPLES, test 1 = 1)
148else
149AM_CONDITIONAL(ENABLE_EXAMPLES, test 0 = 1)
150fi
151
152AC_CHECK_LIB([expat], XML_ParserCreate_MM,
153   	[AC_CHECK_HEADERS(expat.h, have_expat=true, have_expat=false)],
154	have_expat=false)
155
156if ! $have_expat; then
157	AC_MSG_ERROR([You need the eXpat xml parser]
158		[http://expat.sourceforge.net/])
159fi
160
161xml_CFLAGS=
162xml_LIBS=-lexpat
163
164AC_SUBST(xml_CFLAGS)
165AC_SUBST(xml_LIBS)
166
167ACX_PTHREAD
168if test x"$acx_pthread_ok" = xyes; then
169	AC_DEFINE(HAVE_PTHREAD_H, 1, [Define to enable pthread support])
170	AM_CONDITIONAL(HAVE_PTHREAD, test x"$acx_pthread_ok" = xyes)
171fi
172
173# Doxygen Documentation
174
175AC_PATH_PROG(DOXYGEN, doxygen, no)
176
177AC_MSG_CHECKING([whether to build Doxygen documentation])
178
179if test "$DOXYGEN" = "no" ; then
180	have_doxygen=no
181else
182	have_doxygen=yes
183fi
184
185if test "$enable_doxygen_docs" = "auto" ; then
186	enable_doxygen_docs=no
187
188	AC_MSG_RESULT(no)
189fi
190
191if test "$enable_doxygen_docs" = "yes" ; then
192	if test "$have_doxygen" = "no"; then
193		AC_MSG_ERROR([Building Doxygen docs explicitly required, but Doxygen not found])
194	fi
195
196	AC_MSG_RESULT(yes)
197fi
198
199AM_CONDITIONAL(DBUS_DOXYGEN_DOCS_ENABLED, test "$enable_doxygen_docs" = "yes")
200
201# For the tools/, we need libdbus-c++ for the "build" architecture as well
202
203AM_CONDITIONAL(CROSS_COMPILING, test "$cross_compiling" = "yes")
204
205AC_ARG_WITH(build-libdbus-cxx,
206	AS_HELP_STRING([--with-build-libdbus-cxx],
207	[For cross compilation: path to libdbus-cxx which was compiled for the 'build' system.]),
208	[ BUILD_LIBDBUS_CXX_DIR=${withval} ],
209	[ BUILD_LIBDBUS_CXX_DIR="\$(top_builddir)" ]
210)
211AC_SUBST(BUILD_LIBDBUS_CXX_DIR)
212
213# Save processed files
214
215AC_OUTPUT(
216	Makefile
217        src/Makefile
218        src/integration/Makefile
219        src/integration/ecore/Makefile
220        src/integration/glib/Makefile
221        tools/Makefile
222	test/Makefile
223	test/generator/Makefile
224	test/functional/Makefile
225	test/functional/Test1/Makefile
226	data/Makefile
227	doc/Makefile
228	doc/Doxyfile
229	examples/Makefile
230	examples/properties/Makefile
231	examples/echo/Makefile
232	examples/ecore/Makefile
233	examples/hal/Makefile
234	examples/glib/Makefile
235	examples/echo_ecore/Makefile
236	dbus-c++-1.pc
237	dbus-c++-1-uninstalled.pc
238	dbus-c++-ecore-1.pc
239	dbus-c++-ecore-1-uninstalled.pc
240	dbus-c++-glib-1.pc
241	dbus-c++-glib-1-uninstalled.pc
242	libdbus-c++.spec
243)
244
245echo
246echo "Build configuration:"
247echo "--------------------"
248echo
249echo "Mainloop integration support:"
250echo "ecore ......................... $enable_ecore"
251echo "glib........................... $enable_glib"
252echo
253echo "Optional build items:"
254echo "build tests.................... $enable_tests"
255echo "build examples................. $enable_examples"
256echo "build doxygen documentation.... $enable_doxygen_docs"
257echo "Cross Compiling activated...... $cross_compiling"
258echo "PThread support found.......... $acx_pthread_ok"
259echo
260
261