fix DSO linking problem
[framework/uifw/edbus.git] / configure.ac
1 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
2 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
3 m4_define([v_maj], [1])
4 m4_define([v_min], [0])
5 m4_define([v_mic], [0])
6 m4_define([v_rev], m4_esyscmd([(svnversion "${SVN_REPO_PATH:-.}" | grep -v exported || echo 0) | awk -F : '{printf("%s\n", $1);}' | tr -d ' :MSP\n']))
7 m4_if(v_rev, [0], [m4_define([v_rev], m4_esyscmd([git log 2> /dev/null | (grep -m1 git-svn-id || echo 0) | sed -e 's/.*@\([0-9]*\).*/\1/' | tr -d '\n']))])
8 ##--   When released, remove the dnl on the below line
9 m4_undefine([v_rev])
10 ##--   When doing snapshots - change soname. remove dnl on below line
11 dnl m4_define([relname], [ver-pre-svn-07])
12 dnl m4_define([v_rel], [-release relname])
13 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
14 m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])],
15 [m4_define([v_ver], [v_maj.v_min.v_mic])])
16 m4_define([lt_rev], m4_eval(v_maj + v_min))
17 m4_define([lt_cur], v_mic)
18 m4_define([lt_age], v_min)
19 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
20 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
21
22 AC_INIT([e_dbus], [v_ver.beta3], [enlightenment-devel@lists.sourceforge.net])
23 AC_PREREQ([2.52])
24 AC_CONFIG_SRCDIR([configure.ac])
25 AC_CONFIG_MACRO_DIR([m4])
26 AC_CANONICAL_BUILD
27 AC_CANONICAL_HOST
28
29 AM_INIT_AUTOMAKE([1.6 dist-bzip2])
30 AM_CONFIG_HEADER([config.h])
31 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
32
33 AC_LIBTOOL_WIN32_DLL
34 define([AC_LIBTOOL_LANG_CXX_CONFIG], [:])dnl
35 define([AC_LIBTOOL_LANG_F77_CONFIG], [:])dnl
36 AC_PROG_LIBTOOL
37
38 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
39 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
40 m4_ifdef([v_rev], , [m4_define([v_rev], [0])])
41 m4_ifdef([v_rel], , [m4_define([v_rel], [])])
42 AC_DEFINE_UNQUOTED(VMAJ, [v_maj], [Major version])
43 AC_DEFINE_UNQUOTED(VMIN, [v_min], [Minor version])
44 AC_DEFINE_UNQUOTED(VMIC, [v_mic], [Micro version])
45 AC_DEFINE_UNQUOTED(VREV, [v_rev], [Revison])
46 version_info="lt_rev:lt_cur:lt_age"
47 release_info="v_rel"
48 AC_SUBST(version_info)
49 AC_SUBST(release_info)
50 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
51 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
52 VMAJ=v_maj
53 AC_SUBST(VMAJ)
54
55 ### Needed information
56
57 want_ebluez="yes"
58 want_econnman="yes"
59 want_ehal="yes"
60 want_enotify="yes"
61 want_eofono="yes"
62 want_eukit="yes"
63
64 case "$host_os" in
65    mingw*)
66       want_ebluez="no"
67       want_econnman="no"
68       want_ehal="no"
69       want_enotify="no"
70       want_eofono="no"
71       want_eukit="no"
72       ;;
73 esac
74
75 requirement_ebluez="edbus >= 1.0.0"
76 requirement_econnman="edbus >= 1.0.0"
77 requirement_edbus="ecore >= 1.0.0 eina >= 1.0.0 dbus-1 >= 0.62"
78 requirement_ehal="edbus >= 1.0.0"
79 requirement_enotify="edbus >= 1.0.0"
80 requirement_eofono="edbus >= 1.0.0"
81 requirement_eukit="edbus >= 1.0.0"
82 requirement_dbus="dbus-1 >= 0.62"
83
84 ### Additional options to configure
85
86 dnl Check enabled modules to build
87
88 AC_ARG_ENABLE([ebluez],
89    [AC_HELP_STRING([--enable-ebluez], [Enable ebluez build])],
90    [enable_ebluez=$enableval],
91    [enable_ebluez="${want_ebluez}"])
92
93 AC_ARG_ENABLE([econnman],
94    [AC_HELP_STRING([--enable-econnman], [Enable econnman build])],
95    [enable_econnman=$enableval],
96    [enable_econnman="${want_econnman}"])
97
98 AC_ARG_ENABLE([ehal],
99    [AC_HELP_STRING([--disable-ehal], [Disable ehal build])],
100    [enable_ehal=$enableval],
101    [enable_ehal="${want_ehal}"])
102
103 AC_ARG_ENABLE([enotify],
104    [AC_HELP_STRING([--disable-enotify], [Disable enotify build])],
105    [enable_enotify=$enableval],
106    [enable_enotify="${want_enotify}"])
107
108 AC_ARG_ENABLE([eofono],
109    [AC_HELP_STRING([--enable-eofono], [Enable eofono build])],
110    [enable_eofono=$enableval],
111    [enable_eofono="${want_eofono}"])
112
113 AC_ARG_ENABLE([eukit],
114    [AC_HELP_STRING([--disable-eukit], [Disable eukit build])],
115    [enable_eukit=$enableval],
116    [enable_eukit="${want_eukit}"])
117
118
119 EFL_ENABLE_BIN([edbus-test])
120 EFL_ENABLE_BIN([edbus-test-client])
121 EFL_ENABLE_BIN([edbus-bluez-test])
122 EFL_ENABLE_BIN([edbus-connman-test])
123 EFL_ENABLE_BIN([edbus-notification-deamon-test])
124 EFL_ENABLE_BIN([edbus-notify-send])
125 EFL_ENABLE_BIN([edbus-notify-test])
126 EFL_ENABLE_BIN([edbus-ofono-test])
127 EFL_ENABLE_BIN([edbus-ukit-test])
128
129 ### Checks for programs
130
131 AC_PROG_CC
132 AM_PROG_CC_C_O
133
134 # pkg-config
135 PKG_PROG_PKG_CONFIG
136
137 # Check whether pkg-config supports Requires.private
138 if $PKG_CONFIG --atleast-pkgconfig-version 0.22 ; then
139    pkgconfig_requires_private="Requires.private"
140 else
141    pkgconfig_requires_private="Requires"
142 fi
143 AC_SUBST(pkgconfig_requires_private)
144
145 # doxygen program for documentation building
146 EFL_CHECK_DOXYGEN([build_doc="yes"], [build_doc="no"])
147
148
149 ### Checks for libraries
150
151 PKG_CHECK_MODULES([EDBUS], [ecore >= 1.0.0 eina >= 1.0.0 dbus-1 >= 0.62])
152
153 # Find out the version of DBUS we're using
154 dbus_version=`pkg-config --modversion dbus-1`
155 DBUS_VERSION_MAJOR=`echo $dbus_version | awk -F. '{print $1}'`
156 DBUS_VERSION_MINOR=`echo $dbus_version | awk -F. '{print $2}'`
157 DBUS_VERSION_MICRO=`echo $dbus_version | awk -F. '{print $3}'`
158
159 if test "z$DBUS_VERSION_MAJOR" = "z" ; then
160    DBUS_VERSION_MAJOR="0"
161 fi
162
163 if test "z$DBUS_VERSION_MINOR" = "z" ; then
164    DBUS_VERSION_MINOR="0"
165 fi
166
167 if test "z$DBUS_VERSION_MICRO" = "z" ; then
168    DBUS_VERSION_MICRO="0"
169 fi
170
171 DBUS_VERSION_CFLAGS="$DBUS_VERSION_CFLAGS -DDBUS_VERSION_MAJOR=$DBUS_VERSION_MAJOR"
172 DBUS_VERSION_CFLAGS="$DBUS_VERSION_CFLAGS -DDBUS_VERSION_MINOR=$DBUS_VERSION_MINOR"
173 DBUS_VERSION_CFLAGS="$DBUS_VERSION_CFLAGS -DDBUS_VERSION_MICRO=$DBUS_VERSION_MICRO"
174 AC_SUBST(DBUS_VERSION_CFLAGS)
175
176 # Dependencies for the libraries
177 if test "x${enable_enotify}" = "xyes" ; then
178    PKG_CHECK_MODULES([EVAS],
179       [evas >= 1.0.0],
180       [requirement_enotify="evas >= 1.0.0 ${requirement_enotify}"],
181       [enable_enotify="no"])
182 fi
183
184 AM_CONDITIONAL([BUILD_EBLUEZ],   [test "x${enable_ebluez}"   = "xyes"])
185 AM_CONDITIONAL([BUILD_ECONNMAN], [test "x${enable_econnman}" = "xyes"])
186 AM_CONDITIONAL([BUILD_EHAL],     [test "x${enable_ehal}"     = "xyes"])
187 AM_CONDITIONAL([BUILD_ENOTIFY],  [test "x${enable_enotify}"  = "xyes"])
188 AM_CONDITIONAL([BUILD_EOFONO],   [test "x${enable_eofono}"   = "xyes"])
189 AM_CONDITIONAL([BUILD_EUKIT],    [test "x${enable_eukit}"    = "xyes"])
190
191 # Dependencies for the binaries
192
193 if test "x${have_edbus_test}" = "xyes" ; then
194    PKG_CHECK_MODULES([EDBUS_TEST], [ecore >= 1.0.0 dbus-1 >= 0.62])
195 fi
196
197 if test "x${have_edbus_test_client}" = "xyes" ; then
198    PKG_CHECK_MODULES([EDBUS_TEST_CLIENT], [ecore >= 1.0.0 dbus-1 >= 0.62])
199 fi
200
201 if test "x${have_edbus_bluez_test}" = "xyes" ; then
202    PKG_CHECK_MODULES([EDBUS_BLUEZ_TEST], [ecore >= 1.0.0 eina >= 1.0.0 dbus-1 >= 0.62])
203 fi
204
205 if test "x${have_edbus_connman_test}" = "xyes" ; then
206    PKG_CHECK_MODULES([EDBUS_CONNMAN_TEST], [ecore >= 1.0.0 eina >= 1.0.0 dbus-1 >= 0.62])
207 fi
208
209 if test "x${have_edbus_notification_deamon_test}" = "xyes" ; then
210    PKG_CHECK_MODULES([EDBUS_NOTIFICATION_DEAMON_TEST], [ecore >= 1.0.0 evas >= 1.0.0 eina >= 1.0.0 dbus-1 >= 0.62])
211 fi
212
213 if test "x${have_edbus_notify_send}" = "xyes" ; then
214    PKG_CHECK_MODULES([EDBUS_NOTIFY_SEND], [ecore >= 1.0.0 evas >= 1.0.0 dbus-1 >= 0.62])
215 fi
216
217 if test "x${have_edbus_notify_test}" = "xyes" ; then
218    PKG_CHECK_MODULES([EDBUS_NOTIFY_TEST], [ecore >= 1.0.0 evas >= 1.0.0 dbus-1 >= 0.62])
219 fi
220
221 if test "x${have_edbus_ofono_test}" = "xyes" ; then
222    PKG_CHECK_MODULES([EDBUS_OFONO_TEST], [ecore >= 1.0.0 eina >= 1.0.0 dbus-1 >= 0.62])
223 fi
224
225 if test "x${have_edbus_ukit_test}" = "xyes" ; then
226    PKG_CHECK_MODULES([EDBUS_UKIT_TEST], [ecore >= 1.0.0 eina >= 1.0.0 dbus-1 >= 0.62])
227 fi
228
229
230 ### Checks for header files
231
232
233 ### Checks for types
234
235
236 ### Checks for structures
237
238
239 ### Checks for compiler characteristics
240
241 EFL_EDBUS_BUILD=""
242 case "$host_os" in
243    mingw*)
244       EFL_EDBUS_BUILD="-DEFL_EDBUS_BUILD"
245    ;;
246 esac
247 AC_SUBST(EFL_EDBUS_BUILD)
248
249 AC_HEADER_STDC
250 AC_C___ATTRIBUTE__
251
252 if ! test "x${VMIC}" = "x" ; then
253    EFL_COMPILER_FLAG([-Wall])
254    EFL_COMPILER_FLAG([-W])
255 fi
256
257 EFL_COMPILER_FLAG([-Wshadow])
258
259
260 ### Checks for linker characteristics
261
262 lt_enable_auto_import=""
263 case "$host_os" in
264    mingw*)
265       lt_enable_auto_import="-Wl,--enable-auto-import"
266    ;;
267 esac
268 AC_SUBST(lt_enable_auto_import)
269
270
271 ### Checks for library functions
272
273 AC_FUNC_ALLOCA
274
275
276 AC_SUBST(requirement_ebluez)
277 AC_SUBST(requirement_econnman)
278 AC_SUBST(requirement_edbus)
279 AC_SUBST(requirement_ehal)
280 AC_SUBST(requirement_enotify)
281 AC_SUBST(requirement_eofono)
282 AC_SUBST(requirement_eukit)
283 AC_SUBST(requirement_dbus)
284
285 AC_OUTPUT([
286 e_dbus.spec
287 Makefile
288 doc/Makefile
289 src/Makefile
290 src/lib/Makefile
291 src/lib/bluez/Makefile
292 src/lib/connman/Makefile
293 src/lib/dbus/Makefile
294 src/lib/hal/Makefile
295 src/lib/notification/Makefile
296 src/lib/ofono/Makefile
297 src/lib/ukit/Makefile
298 src/bin/Makefile
299 ebluez.pc
300 econnman.pc
301 edbus.pc
302 ehal.pc
303 enotify.pc
304 eofono.pc
305 eukit.pc
306 ])
307
308
309 #####################################################################
310 ## Info
311
312 echo
313 echo
314 echo
315 echo "------------------------------------------------------------------------"
316 echo "$PACKAGE $VERSION"
317 echo "------------------------------------------------------------------------"
318 echo
319 echo "Configuration Options Summary:"
320 echo
321 echo "  Modules:"
322 echo
323 echo "    EBluez.............: $enable_ebluez"
324 echo "    EConnman...........: $enable_econnman"
325 echo "    EHal...............: $enable_ehal"
326 echo "    ENotify............: $enable_enotify"
327 echo "    EOfono.............: $enable_eofono"
328 echo "    EUkit..............: $enable_eukit"
329 echo
330 echo "Documentation..........: ${build_doc}"
331 echo
332 echo "Compilation............: make (or gmake)"
333 echo "  CPPFLAGS.............: $CPPFLAGS"
334 echo "  CFLAGS...............: $CFLAGS"
335 echo "  LDFLAGS..............: $LDFLAGS"
336 echo
337 echo "Installation...........: make install (as root if needed, with 'su' or 'sudo')"
338 echo "  prefix...............: $prefix"
339 echo