92ab2f512d6f7417930b03a69af04863b832ea60
[platform/upstream/enlightenment.git] / configure.ac
1 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
2 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
3 m4_define([v_maj], [0])
4 m4_define([v_min], [17])
5 m4_define([v_mic], [0])
6 m4_define([v_rev], m4_esyscmd([(svnversion "${SVN_REPO_PATH:-.}" | grep -v '\(export\|Unversioned directory\)' || 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 m4_define([relname], [0.17.0-omega])
11 ##--   When doing snapshots - change soname. remove dnl on below line
12 dnl m4_define([relname], [ver-pre-svn-08])
13 dnl m4_define([v_rel], [-release relname])
14 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
15 m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])], [m4_define([v_ver], [v_maj.v_min.v_mic])])
16 m4_define([lt_cur], m4_eval(v_maj + v_min))
17 m4_define([lt_rev], v_mic)
18 m4_define([lt_age], v_min)
19 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
20 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
21
22 AC_INIT([enlightenment], [v_ver-omega], [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 AC_ISC_POSIX
29
30 AC_CONFIG_HEADERS([config.h])
31 AH_TOP([
32 #ifndef EFL_CONFIG_H__
33 #define EFL_CONFIG_H__
34 ])
35 AH_BOTTOM([
36 #endif /* EFL_CONFIG_H__ */
37 ])
38
39 AM_INIT_AUTOMAKE([1.11 dist-bzip2 -Wno-portability])
40 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
41
42 AC_GNU_SOURCE
43 AC_C_BIGENDIAN
44 AC_PROG_CC_C99
45 AM_PROG_CC_C_O
46 AC_C_CONST
47 AC_FUNC_ALLOCA
48 AC_C___ATTRIBUTE__
49
50 LT_INIT([disable-static])
51
52 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
53 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
54 m4_ifdef([v_rev], , [m4_define([v_rev], [0])])
55 m4_ifdef([v_rel], , [m4_define([v_rel], [])])
56 AC_DEFINE_UNQUOTED(VMAJ, [v_maj], [Major version])
57 AC_DEFINE_UNQUOTED(VMIN, [v_min], [Minor version])
58 AC_DEFINE_UNQUOTED(VMIC, [v_mic], [Micro version])
59 AC_DEFINE_UNQUOTED(VREV, [v_rev], [Revison])
60 version_info="lt_cur:lt_rev:lt_age"
61 release_info="v_rel"
62 AC_SUBST(version_info)
63 AC_SUBST(release_info)
64 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
65 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
66
67 release=relname
68 AC_SUBST(release)
69
70 PKG_PROG_PKG_CONFIG
71
72 EFL_CHECK_PATH_MAX
73
74 AC_CHECK_FUNCS(setenv)
75 AC_CHECK_FUNCS(unsetenv)
76
77 efl_version="1.7.4"
78 AC_SUBST(efl_version)
79
80 AC_CHECK_HEADERS([sys/timerfd.h sys/ptrace.h arpa/inet.h netinet/in.h])
81
82 dnl AC_CHECK_HEADERS(X11/extensions/shape.h,, AC_MSG_ERROR([Cannot find X11/extensions/shape.h. Make sure your CFLAGS environment variable contains include lines for the location of this file]))
83
84 AC_CHECK_HEADERS(fnmatch.h,, AC_MSG_ERROR([Cannot find fnmatch.h. Make sure your CFLAGS environment variable contains include lines for the location of this file]))
85
86 AC_CHECK_FUNCS(fnmatch, res=yes, res=no)
87 if test "x$res" = "xno"; then
88   AC_CHECK_LIB(fnmatch, fnmatch, res=yes, res=no)
89   if test "x$res" = "xno"; then
90     AC_MSG_ERROR([Cannot find fnmatch() in neither libc nor libfnmatch])
91   else
92     fnmatch_libs="-lfnmatch"
93   fi
94 fi
95
96 AC_SUBST(fnmatch_libs)
97
98 have_pam=no
99 AC_ARG_ENABLE(pam,
100   AC_HELP_STRING([--enable-pam], [enable PAM support @<:@default=detect@:>@]),
101   [want_pam=$enableval],
102   [want_pam=auto]
103 )
104 if test "x$want_pam" != "xno" ; then
105   AC_CHECK_HEADERS(security/pam_appl.h, [
106     LIBS="$LIBS -lpam"
107     have_pam=yes
108     AC_DEFINE(HAVE_PAM, 1, [PAM Authentication Support])])
109     if test "x$want_pam$have_pam" = "xyesno" ; then
110       AC_MSG_ERROR([PAM support was requested but not found])
111     fi
112 fi
113
114 dnl AC_E_CHECK_PKG(VALGRIND, [valgrind >= 2.4.0], [], [:])
115 AC_SUBST(VALGRIND_CFLAGS)
116 AC_SUBST(VALGRIND_LIBS)
117
118 MODULE_ARCH="$host_os-$host_cpu-relname"
119 AC_SUBST(MODULE_ARCH)
120 AC_DEFINE_UNQUOTED(MODULE_ARCH, "$MODULE_ARCH", "Module architecture")
121
122 if test "x${bindir}" = 'xNONE'; then
123   if test "x${prefix}" = "xNONE"; then
124     PACKAGE_BIN_DIR="${ac_default_prefix}/bin"
125   else
126     PACKAGE_BIN_DIR="${prefix}/bin"
127   fi
128 else
129   PACKAGE_BIN_DIR="${bindir}"
130 fi
131 AC_SUBST(PACKAGE_BIN_DIR)
132
133 if test "x${libdir}" = 'xNONE'; then
134   if test "x${prefix}" = "xNONE"; then
135     PACKAGE_LIB_DIR="${ac_default_prefix}/lib"
136   else
137     PACKAGE_LIB_DIR="${prefix}/lib"
138   fi
139 else
140   PACKAGE_LIB_DIR="${libdir}"
141 fi
142 AC_SUBST(PACKAGE_LIB_DIR)
143
144 if test "x${prefix}" = "xNONE"; then
145   PACKAGE_DATA_DIR="${ac_default_prefix}/share/${PACKAGE}"
146   LOCALE_DIR="${ac_default_prefix}/share/locale"
147   PACKAGE_SYSCONF_DIR="${ac_default_prefix}/etc"
148 else
149   PACKAGE_DATA_DIR="${prefix}/share/${PACKAGE}"
150   LOCALE_DIR="${prefix}/share/locale"
151   PACKAGE_SYSCONF_DIR="${sysconfdir}"
152 fi
153 AC_SUBST(PACKAGE_DATA_DIR)
154 AC_SUBST(LOCALE_DIR)
155 AC_SUBST(PACKAGE_SYSCONF_DIR)
156
157 #######################################
158 ## Simple X11 build/link
159
160 AC_ARG_ENABLE(simple-x11,
161   AC_HELP_STRING([--enable-simple-x11], [enable simple x11 linking]),
162   [ want_evas_simple_x11=$enableval ]
163 )
164     
165 dnl x_dir=""
166 dnl x_cflags=""
167 dnl x_libs=""
168 dnl AC_PATH_XTRA
169 dnl AC_CHECK_HEADER(X11/X.h,
170 dnl   [
171 dnl     if test "x$want_evas_simple_x11" = "xyes"; then
172 dnl       x_libs="${x_libs} -lX11 -lXext"
173 dnl     else
174 dnl       x_dir=${x_dir:-/usr/X11R6}
175 dnl       x_cflags=${x_cflags:--I${x_includes:-$x_dir/include}}
176 dnl       x_libs="${x_libs:--L${x_libraries:-$x_dir/lib}} -lX11 -lXext"
177 dnl     fi
178 dnl   ],[
179 dnl     AC_MSG_ERROR([Cannot find X headers and libraries.])
180 dnl   ]
181 dnl )
182 dnl AC_SUBST(x_cflags)
183 dnl AC_SUBST(x_libs)
184
185 cf_cflags=""
186 cf_libs=""
187 PCPPFLAGS="${CPPFLAGS}"
188 CPPFLAGS="${CPPFLAGS} -I /System/Library/Frameworks/CoreFoundation.framework/Headers"
189 AC_CHECK_HEADERS(CFBase.h,
190   [
191     cf_cflags="-I /System/Library/Frameworks/CoreFoundation.framework/Headers"
192     cf_cflags="${cf_cflags} -I /System/Library/Frameworks/IOKit.framework/Headers"
193     cf_libs="-framework 'CoreFoundation' -framework 'IOKit'"
194   ]
195 )
196 CPPFLAGS="${PCPPFLAGS}"
197 AC_SUBST(cf_cflags)
198 AC_SUBST(cf_libs)
199
200
201 execinfo_libs=""
202 AC_CHECK_HEADERS([execinfo.h], [have_execinfo="yes"], [have_execinfo="no"])
203 if test "x${have_execinfo}" = "xyes" ; then
204   AC_MSG_CHECKING([whether backtrace_symbols_fd() is in libc])
205
206   AC_LINK_IFELSE(
207     [AC_LANG_PROGRAM(
208       [[
209 #include <stdlib.h>
210 #include <execinfo.h>
211       ]],
212       [[
213 backtrace_symbols_fd(NULL, 0, 0);
214       ]])],
215     [link_execinfo="yes"],
216     [link_execinfo="no"])
217
218   AC_MSG_RESULT([${link_execinfo}])
219 fi
220
221 if test "x${link_execinfo}" = "xno" ; then
222   AC_MSG_CHECKING([whether backtrace_symbols_fd() is in libexecinfo])
223
224   LDFLAGS_save="${LDFLAGS}"
225   LDFLAGS="${LDFLAGS} -lexecinfo"
226   AC_LINK_IFELSE(
227     [AC_LANG_PROGRAM(
228       [[
229 #include <stdlib.h>
230 #include <execinfo.h>
231       ]],
232       [[
233 backtrace_symbols_fd(NULL, 0, 0);
234       ]])],
235     [
236       link_execinfo="yes"
237       execinfo_libs="-lexecinfo"
238     ],
239     [link_execinfo="no"])
240   LDFLAGS="${LDFLAGS_save}"
241
242   AC_MSG_RESULT([${link_execinfo}])
243 fi
244
245 dnl if test "x${link_execinfo}" = "xno" ; then
246 dnl   AC_MSG_ERROR([Cannot use backtrace_symbols_fd()])
247 dnl fi
248
249
250 #ALL_LINGUAS="bg de eo es fi fr ja pl pt ru zh_CN hu sl it cs da sk sv nb nl zh_TW ko"
251 #ALL_LINGUAS="bg de eo es fi fr ja pt ru zh_CN hu sl it cs da sk sv nb nl zh_TW"
252 # a lot of .po's are broken
253 ALL_LINGUAS="bg ca cs da de el eo es fi fr fr_CH he hu it ja ko nb nl pl pt_BR ru sk sl sv tr zh_CN zh_TW"
254 AC_SUBST(ALL_LINGUAS)
255
256 m4_ifdef([AM_GNU_GETTEXT_VERSION], [
257 AM_GNU_GETTEXT_VERSION([0.17])
258 ])
259
260 m4_ifdef([AM_GNU_GETTEXT], [
261 AM_GNU_GETTEXT([external], [need-ngettext])
262 po_makefile_in=po/Makefile.in
263 have_po="yes"
264 ],[
265 have_po="no"
266 ])
267 AC_SUBST(LTLIBINTL)
268 if test "x$LIBINTL" = "x"; then
269   LIBINTL="$INTLLIBS"
270 fi
271
272 if test "x${POSUB}" = "x" ; then
273    have_po="no"
274 fi
275
276 AM_CONDITIONAL([HAVE_PO], [test "x${have_po}" = "xyes"])
277
278 AC_CHECK_LIB(dl, dlopen, dlopen_libs=-ldl)
279 AC_SUBST(dlopen_libs)
280
281 AC_MSG_CHECKING([whether to install sysactions.conf])
282 AC_ARG_ENABLE([install-sysactions],
283   AS_HELP_STRING([--disable-install-sysactions],[disable installing /etc/enlightenment/sysactions.conf @<:@default=enabled@:>@]),
284     [e_cv_enable_install_sysactions=$enableval],
285     AC_CACHE_VAL([e_cv_enable_install_sysactions], [e_cv_enable_install_sysactions=yes]))
286 AC_MSG_RESULT([$e_cv_enable_install_sysactions])
287 AM_CONDITIONAL(INSTALL_SYSACTIONS, test x${e_cv_enable_install_sysactions} = xyes)
288
289 AC_MSG_CHECKING([whether to install enlightenment.menu])
290 AC_ARG_ENABLE([install-enlightenment-menu],
291   AS_HELP_STRING([--disable-enlightenment-menu],[disable installing /etc/xdg/menus/enlightenment.menu @<:@default=enabled@:>@]),
292     [e_cv_enable_install_enlightenment_menu=$enableval],
293     AC_CACHE_VAL([e_cv_enable_install_enlightenment_menu], [e_cv_enable_install_enlightenment_menu=yes]))
294 AC_MSG_RESULT([$e_cv_enable_install_enlightenment_menu])
295 AM_CONDITIONAL(INSTALL_ENLIGHTENMENT_MENU, test x${e_cv_enable_install_enlightenment_menu} = xyes)
296
297 AC_MSG_CHECKING([whether to enable Files menu item])
298 AC_ARG_ENABLE([files],
299   AS_HELP_STRING([--disable-files],[disable Files menu item @<:@default=enabled@:>@]),
300     [e_cv_enable_files=$enableval],
301     AC_CACHE_VAL([e_cv_enable_files], [e_cv_enable_files=yes]))
302 if test "[${e_cv_enable_files}]" = yes; then
303   AC_DEFINE_UNQUOTED([ENABLE_FILES],[1],[enable Files menu item])
304 fi
305 AC_MSG_RESULT([$e_cv_enable_files])
306
307 AC_ARG_ENABLE([device-hal],
308   AS_HELP_STRING([--enable-device-hal],[enable hal device backend @<:@default=disabled@:>@]),
309   [e_cv_want_device_hal=$enableval],
310   [e_cv_want_device_hal=no])
311
312 AC_MSG_CHECKING([whether the HAL device backend is enabled])
313 AC_MSG_RESULT([${e_cv_want_device_hal}])
314
315 AC_ARG_ENABLE([device-udev],
316   AS_HELP_STRING([--enable-device-udev],[enable udev device backend @<:@default=enabled@:>@]),
317   [e_cv_want_device_udev=$enableval],
318   [e_cv_want_device_udev=yes])
319
320 AC_MSG_CHECKING([whether the UDEV device backend is enabled])
321 AC_MSG_RESULT([${e_cv_want_device_udev}])
322
323 if test "x$e_cv_want_device_udev" != "xno";then
324   PKG_CHECK_MODULES([EEZE], [eeze >= ${efl_version} ecore >= ${efl_version} eina >= ${efl_version}],
325     [
326       device_backend=eeze
327       AC_DEFINE_UNQUOTED([HAVE_EEZE],[1],[enable udev support])
328     ],
329     [device_backend=ehal])
330 else
331   device_backend=ehal
332 fi
333
334 AC_MSG_CHECKING([which device backend to use])
335 AC_MSG_RESULT($device_backend)
336
337 AM_CONDITIONAL([HAVE_EEZE], [test "x${device_backend}" = "xeeze"])
338 test "x${device_backend}" = "xeeze" || AC_DEFINE_UNQUOTED([HAVE_HAL],[1],[enable HAL support])
339
340
341 DBUS_MOUNT_CONFIG=1
342 dbus_mount="dbus-1"
343 hal_mount="ehal >= $efl_version, edbus >= $efl_version"
344 udisks_mount="eukit >= $efl_version"
345 AC_ARG_ENABLE([mount-hal],
346   AS_HELP_STRING([--enable-mount-hal],[enable hal mounting support @<:@default=enabled@:>@]),
347   [e_cv_want_mount_hal=$enableval],
348   [e_cv_want_mount_hal=yes])
349
350 AC_MSG_CHECKING([whether the HAL mounting support is enabled])
351 AC_MSG_RESULT([${e_cv_want_mount_hal}])
352
353 if test "x$e_cv_want_mount_hal" != "xno";then
354   PKG_CHECK_EXISTS([ehal >= ${efl_version}],
355     [],[
356       hal_mount=
357       AC_MSG_NOTICE([HAL mounting disabled])
358     ])
359 else
360   hal_mount=
361   AC_MSG_NOTICE([HAL mounting disabled])
362 fi
363
364 AC_ARG_ENABLE([mount-udisks],
365   AS_HELP_STRING([--enable-mount-udisks],[enable udisks mounting support @<:@default=enabled@:>@]),
366   [e_cv_want_mount_udisks=$enableval],
367   [e_cv_want_mount_udisks=yes])
368
369 AC_MSG_CHECKING([whether the UDISKS mounting support is enabled])
370 AC_MSG_RESULT([${e_cv_want_mount_udisks}])
371
372 if test "x$e_cv_want_mount_udisks" != "xno";then
373   PKG_CHECK_EXISTS([eukit >= ${efl_version}],
374     [],[
375       udisks_mount=
376       AC_MSG_NOTICE([udisks mounting disabled])
377     ])
378 else
379   udisks_mount=
380   AC_MSG_NOTICE([udisks mounting disabled])
381 fi
382
383
384 if test "x${e_cv_want_mount_udisks}" = "xno" && test "x${e_cv_want_mount_hal}" = "xno" ; then
385   DBUS_MOUNT_CONFIG=0
386   dbus_mount=
387   udisks_mount=
388   hal_mount=
389 fi
390
391 AC_ARG_ENABLE([mount-eeze],
392   AS_HELP_STRING([--enable-mount-eeze],[enable eeze mounting support @<:@default=disabled@:>@]),
393   [e_cv_want_mount_eeze=$enableval],
394   [e_cv_want_mount_eeze=no])
395
396 AC_MSG_CHECKING([whether the Eeze mounting support is enabled])
397 AC_MSG_RESULT([${e_cv_want_mount_eeze}])
398
399 eeze_mount=
400 EEZE_MOUNT_CONFIG=0
401 if test "x$e_cv_want_mount_eeze" != "xno" && test -z "$dbus_mount" ; then
402       CPPFLAGS_save="$CPPFLAGS"
403       LIBS_save="$LIBS"
404       CPPFLAGS="$EEZE_CFLAGS $CPPFLAGS"
405       LIBS="$EEZE_LIBS $LIBS"
406       AC_CHECK_LIB([eeze], [eeze_disk_function],
407         [
408            eeze_mount="eeze >= $efl_version ecore-con >= $efl_version"
409            EEZE_MOUNT_CONFIG=1
410            AC_DEFINE_UNQUOTED([HAVE_EEZE_MOUNT], [1], [enable eeze mounting])
411            AC_MSG_NOTICE([eeze mounting enabled])
412         ],
413         [
414            AC_MSG_NOTICE([eeze mounting disabled])
415            e_cv_want_mount_eeze=no
416         ]
417       )
418       CPPFLAGS="$CPPFLAGS_save"
419       LIBS="$LIBS_save"
420 else
421   AC_MSG_NOTICE([eeze mounting disabled])
422 fi
423
424 AC_SUBST([EEZE_MOUNT_CONFIG])
425 AC_SUBST([DBUS_MOUNT_CONFIG])
426 AM_CONDITIONAL([HAVE_HAL_MOUNT], [test -n "$hal_mount"])
427 AM_CONDITIONAL([HAVE_EEZE_MOUNT], [false])
428 test -n "$hal_mount" && AC_DEFINE_UNQUOTED([HAVE_HAL_MOUNT], [1], [enable HAL mounting])
429 test -n "$udisks_mount" && AC_DEFINE_UNQUOTED([HAVE_UDISKS_MOUNT], [1], [enable Udisks mounting])
430 AM_CONDITIONAL([HAVE_UDISKS_MOUNT], [test -n "$udisks_mount"])
431 AM_CONDITIONAL([HAVE_EEZE_MOUNT], [test -n "$eeze_mount"])
432
433 # doxygen program for documentation building
434
435 EFL_CHECK_DOXYGEN([build_doc="yes"], [build_doc="no"])
436
437 # explicit libs for each binary to reduce linkage requirements
438 PKG_CHECK_MODULES(E_REMOTE, [
439   ecore >= ${efl_version}
440   ecore-ipc >= ${efl_version}
441   eet >= ${efl_version}
442   eina >= ${efl_version}
443 ])
444
445 PKG_CHECK_MODULES(E_START, [
446   eina >= ${efl_version}
447 ])
448
449 PKG_CHECK_MODULES(E_IMC, [
450   ecore-file >= ${efl_version}
451   eet >= ${efl_version}
452   eina >= ${efl_version}
453 ])
454
455 PKG_CHECK_MODULES(E_THUMB, [
456   eina >= ${efl_version}
457   evas >= ${efl_version}
458   ecore >= ${efl_version}
459   ecore-evas >= ${efl_version}
460   edje >= ${efl_version}
461   ecore-file >= ${efl_version}
462   ecore-ipc >= ${efl_version}
463   eet >= ${efl_version}
464   efreet >= ${efl_version}
465 ])
466
467 PKG_CHECK_MODULES(E_GRABBER, [
468   eina >= ${efl_version}
469   ecore >= ${efl_version}
470   eet >= ${efl_version}
471   efreet >= ${efl_version}
472   ecore-x >= ${efl_version}
473 ])
474
475 efm_requires="\
476 ecore >= $efl_version \
477 ecore-file >= $efl_version \
478 ecore-ipc >= $efl_version \
479 eet >= $efl_version \
480 efreet >= $efl_version \
481 edbus >= $efl_version \
482 eina >= $efl_version"
483 efm_requires="$efm_requires $eeze_mount $dbus_mount $hal_mount $udisks_mount"
484
485 AC_MSG_WARN([EFM requirements : $efm_requires])
486
487 PKG_CHECK_MODULES(E_FM, [$efm_requires])
488
489 PKG_CHECK_MODULES(E_FM_CMDLINE, [
490   eina >= ${efl_version}
491   ecore >= ${efl_version}
492   ecore-file >= ${efl_version}
493   edbus >= ${efl_version}
494   dbus-1
495 ])
496
497 PKG_CHECK_MODULES(E_FM_OP, [
498   ecore >= ${efl_version}
499   ecore-file >= ${efl_version}
500   eina >= ${efl_version}
501 ])
502
503 PKG_CHECK_MODULES(E_FM_OPEN, [
504   eina >= ${efl_version}
505   eet >= ${efl_version}
506   ecore >= ${efl_version}
507   ecore-ipc >= ${efl_version}
508   ecore-con >= ${efl_version}
509 ])
510
511 PKG_CHECK_MODULES(E_SYS, [
512   eina >= ${efl_version}
513 ])
514
515 PKG_CHECK_MODULES(E_INIT, [
516   evas >= ${efl_version}
517   ecore >= ${efl_version}
518   ecore-evas >= ${efl_version}
519   ecore-x >= ${efl_version}
520   edje >= ${efl_version}
521   ecore-ipc >= ${efl_version}
522   eina >= ${efl_version}
523 ])
524
525 PKG_CHECK_MODULES(E_ALERT, [
526   xcb
527   xcb-shape
528   xcb-keysyms
529   eina >= ${efl_version}
530   ecore >= ${efl_version}
531   ecore-ipc >= ${efl_version}
532 ])
533
534 PKG_CHECK_MODULES(E, [
535   evas >= ${efl_version}
536   ecore >= ${efl_version}
537   ecore-x >= ${efl_version}
538   ecore-evas >= ${efl_version}
539   ecore-input >= ${efl_version}
540   ecore-input-evas >= ${efl_version}
541   ecore-con >= ${efl_version}
542   ecore-ipc >= ${efl_version}
543   ecore-file >= ${efl_version}
544   eet >= ${efl_version}
545   edje >= ${efl_version}
546   efreet >= ${efl_version}
547   efreet-mime >= ${efl_version}
548   efreet-trash >= ${efl_version}
549   eina >= ${efl_version}
550   dbus-1
551   edbus >= ${efl_version}
552   eio >= ${efl_version}
553   $hal_mount
554   $eeze_mount
555   $udisks_mount
556   $device_backend
557 ])
558 requirements_e="\
559 evas >= ${efl_version} \
560 ecore >= ${efl_version} \
561 ecore-x >= ${efl_version} \
562 ecore-evas >= ${efl_version} \
563 ecore-con >= ${efl_version} \
564 ecore-ipc >= ${efl_version} \
565 ecore-file >= ${efl_version} \
566 eet >= ${efl_version} \
567 edje >= ${efl_version} \
568 efreet >= ${efl_version} \
569 efreet-mime >= ${efl_version} \
570 efreet-trash >= ${efl_version} \
571 eina >= ${efl_version} \
572 dbus-1 \
573 edbus >= ${efl_version} \
574 eio >= ${efl_version} \
575 $hal_mount \
576 $udisks_mount \
577 $eeze_mount \
578 $device_backend"
579
580
581 want_elementary=auto
582 have_elementary=no
583 AC_ARG_ENABLE(elementary,
584   AC_HELP_STRING([--enable-elementary], [enable Elementary support @<:@default=detect@:>@]),
585   [want_elementary=$enableval],
586   [want_elementary=auto]
587 )
588 if test "x$want_elementary" != "xno"; then
589    PKG_CHECK_MODULES(ELM, [elementary >= ${efl_version}],
590                      [have_elementary=yes], [have_elementary=no])
591    if test "x$want_elementary" = "xyes" -a "x$have_elementary" = "xno"; then
592       AC_MSG_ERROR([Elementary support requested but it was not found])
593    fi
594    if test "x$have_elementary" = "xyes"; then
595       AC_DEFINE([HAVE_ELEMENTARY], 1, "Have Elementary support")
596       requirements_e="${requirements_e} elementary > 1.6.9.0"
597    fi
598 fi
599
600 want_emotion=auto
601 have_emotion=no
602 AC_ARG_ENABLE(emotion,
603   AC_HELP_STRING([--enable-emotion], [enable emotion support @<:@default=detect@:>@]),
604   [want_emotion=$enableval],
605   [want_emotion=auto]
606 )
607 if test "x$want_emotion" != "xno"; then
608    PKG_CHECK_MODULES(EMOTION, [emotion >= ${efl_version}],
609                      [have_emotion=yes], [have_emotion=no])
610    if test "x$want_emotion" = "xyes" -a "x$have_emotion" = "xno"; then
611       AC_MSG_ERROR([emotion support requested but it was not found])
612    fi
613    if test "x$have_emotion" = "xyes"; then
614       AC_DEFINE([HAVE_EMOTION], 1, "Have emotion support")
615       requirements_e="${requirements_e} emotion >= ${efl_version}"
616    fi
617 fi
618
619 PKG_CHECK_MODULES(E_OPEN, [
620   eina >= ${efl_version}
621   ecore >= ${efl_version}
622   efreet >= ${efl_version}
623   efreet-mime >= ${efl_version}
624 ])
625
626 AC_E_CHECK_PKG(ECORE_IMF, [ ecore-imf >= ${efl_version} ecore-imf-evas >= ${efl_version} ], [], [:])
627
628 e_libs=$E_LIBS" "$LIBINTL" "$fnmatch_libs" "$ECORE_IMF_LIBS" "$execinfo_libs
629 e_cflags="-DUSE_E_CONFIG_H "$E_CFLAGS" "$ECORE_IMF_CFLAGS
630 e_configflags="-DUSE_E_CONFIG_H"
631
632 AC_SUBST(e_libs)
633 AC_SUBST(e_cflags)
634 AC_SUBST(e_configflags)
635 AC_SUBST(requirements_e)
636
637 profile="SLOW_PC"
638 AC_ARG_WITH(profile,
639   AS_HELP_STRING([--with-profile=TARGET_PROFILE], 
640   [specify a target format profile of:
641                                     LOWRES_PDA, MEDIUMRES_PDA, HIRES_PDA, SLOW_PC, MEDIUM_PC, FAST_PC]),
642   [profile=$withval])
643 AC_MSG_NOTICE([Enlightenment build profile set to $profile])
644 EDJE_DEF="-DLOWRES_PDA=1 -DMEDIUMRES_PDA=2 -DHIRES_PDA=3 -DSLOW_PC=4 -DMEDIUM_PC=5 -DFAST_PC=6"
645 EDJE_DEF=$EDJE_DEF" -DE17_PROFILE"=$profile
646 AC_SUBST(EDJE_DEF)
647
648 AC_ARG_WITH(edje-cc,
649 [  --with-edje-cc=PATH              specify a specific path to edje_cc],
650 [
651   v=$withval;
652   edje_cc=$v
653   echo "  Enlightenment edje_cc explicitly set to "$edje_cc;
654 ],[
655   edje_cc=$(pkg-config --variable=prefix edje)/bin/edje_cc
656 ])
657 AC_SUBST(edje_cc)
658
659 PKG_CHECK_MODULES(EET, [eet >= ${efl_version}])
660 AC_ARG_WITH(eet-eet,
661 [  --with-eet-eet=PATH              specify a specific path to eet utility],
662 [
663   v=$withval;
664   eet_eet=$v
665   echo "  Enlightenment eet explicitly set to "$eet_eet;
666 ],[
667   eet_eet=$(pkg-config --variable=prefix eet)/bin/eet
668 ])
669 AC_SUBST(eet_eet)
670
671 AC_DEFINE(E_INTERNAL, 1, "This define can be used to wrap internal E stuff, as config.h isn't exported")
672
673 AM_CONDITIONAL(HAVE_BATTERY, false)
674 define([CHECK_MODULE_BATTERY],
675 [
676   AC_E_CHECK_PKG(BATTERY, [ ecore >= $efl_version ecore-file >= $efl_version ecore-con >= $efl_version eina >= $efl_version ], [], [BATTERY=false])
677 ])
678
679 have_openbsd="no"
680 BATTERY_LDFLAGS=
681 case "$host_os" in
682   darwin*)
683     BATTERY_LDFLAGS="-framework Foundation -framework IOKit"
684   ;;
685   openbsd*)
686     have_openbsd="yes"
687   ;;
688 esac
689
690 AC_SUBST(BATTERY_LDFLAGS)
691 AM_CONDITIONAL([HAVE_OPENBSD], [test "x${have_openbsd}" = "xyes"])
692
693 AM_CONDITIONAL(HAVE_TEMPERATURE, false)
694 define([CHECK_MODULE_TEMPERATURE],
695 [
696   AC_E_CHECK_PKG(TEMPERATURE, [ ecore >= $efl_version ecore-file >= $efl_version eina >= $efl_version ], [], [TEMPERATURE=false])
697 ])
698
699 ##have_exchange=no
700 ##AC_ARG_ENABLE(exchange,
701 ##  AC_HELP_STRING([--disable-exchange], [disable Exchange support @<:@default=detect@:>@]),
702 ##  [want_exchange=$enableval],
703 ##  [want_exchange=auto]
704 ##)
705
706 AM_CONDITIONAL(HAVE_EXCHANGE, false)
707 ##define([CHECK_MODULE_CONF_THEME],
708 ##[
709 ##  if test "x$want_exchange" != "xno" ; then
710 ##    AC_E_CHECK_PKG(EXCHANGE, [exchange], [], [:])
711 ##  else
712 ##    AC_MSG_NOTICE([requested to not use exchange library])
713 ##  fi
714 ##])
715
716
717 have_enotify=no
718 AM_CONDITIONAL([HAVE_ENOTIFY], [false])
719 AC_ARG_ENABLE([enotify],
720   AC_HELP_STRING([--disable-enotify], [disable Enotify support @<:@default=detect@:>@]),
721   [e_cv_want_enotify=$enableval],
722   AC_CACHE_VAL([e_cv_want_enotify], [e_cv_want_enotify=yes])
723 )
724 if test "x$e_cv_want_enotify" != "xno" ; then
725   AC_E_CHECK_PKG(ENOTIFY, [ edbus >= $efl_version enotify >= $efl_version ], 
726   [
727     AC_DEFINE_UNQUOTED([HAVE_ENOTIFY], [1], [enable enotify])
728   ], 
729   [
730     AC_MSG_NOTICE([enotify disabled])
731     e_cv_want_enotify=no
732   ])
733 else
734   AC_MSG_NOTICE([enotify disabled])
735     e_cv_want_enotify=no
736 fi
737 AC_SUBST([ENOTIFY_CFLAGS])
738 AC_SUBST([ENOTIFY_LIBS])
739
740 AM_CONDITIONAL(HAVE_NOTIFICATION, false)
741 define([CHECK_MODULE_NOTIFICATION],
742 [
743   if test "x$e_cv_want_enotify" = "xno" ; then
744     NOTIFICATION=false
745   fi
746 ])
747
748 have_ephysics=no
749 AM_CONDITIONAL([HAVE_EPHYSICS], [false])
750 AC_ARG_ENABLE([ephysics],
751   AC_HELP_STRING([--disable-ephysics], [disable Ephysics support @<:@default=detect@:>@]),
752   [e_cv_want_ephysics=$enableval],
753   AC_CACHE_VAL([e_cv_want_ephysics], [e_cv_want_ephysics=yes])
754 )
755 if test "x$e_cv_want_ephysics" != "xno" ; then
756   AC_E_CHECK_PKG(EPHYSICS, [ ephysics ], 
757   [
758     AC_DEFINE_UNQUOTED([HAVE_EPHYSICS], [1], [enable ephysics])
759   ], 
760   [
761     AC_MSG_NOTICE([ephysics disabled])
762     e_cv_want_ephysics=no
763   ])
764 else
765   AC_MSG_NOTICE([ephysics disabled])
766     e_cv_want_ephysics=no
767 fi
768 AC_SUBST([EPHYSICS_CFLAGS])
769 AC_SUBST([EPHYSICS_LIBS])
770
771 AM_CONDITIONAL(HAVE_PHYSICS, false)
772 define([CHECK_MODULE_PHYSICS],
773 [
774   if test "x$e_cv_want_ephysics" = "xno" ; then
775     PHYSICS=false
776   fi
777 ])
778
779 AM_CONDITIONAL(HAVE_ALSA, false)
780 define([CHECK_MODULE_MIXER],
781 [
782   if test "x$enable_alsa" = "x" || test "x$enable_alsa" = "xdefault" || test "x$enable_alsa" = "xyes"; then
783     AC_E_CHECK_PKG(ALSA, [alsa >= 1.0.8],
784     [ SOUND_CFLAGS="$ALSA_CFLAGS -DHAVE_ALSA $SOUND_CFLAGS"
785       SOUND_LIBS="$ALSA_LIBS $SOUND_LDFLAGS"
786     ],
787     [ if test "x$enable_alsa" = "xyes"; then
788         AC_MSG_ERROR([alsa library >= 1.0.8 not found])
789       else
790         AC_MSG_WARN([alsa library development files not present. no alsa support.])
791       fi
792     ])
793   else
794     have_alsa=no
795   fi
796
797   if test "$have_alsa" = "yes"; then
798     AC_DEFINE(HAVE_ALSA, 1, [Define if the ALSA output plugin should be built])
799   else
800     have_alsa=no
801   fi
802 ])
803
804 AC_SUBST(SOUND_CFLAGS)
805 AC_SUBST(SOUND_LIBS)
806
807 AM_CONDITIONAL(HAVE_ECONNMAN, false)
808 AM_CONDITIONAL(HAVE_DUMMY, false)
809 define([CHECK_MODULE_CONNMAN],
810 [
811   AC_E_CHECK_PKG(ECONNMAN, [ edbus >= $efl_version ], [], [CONNMAN=false])
812 dnl  AC_E_CHECK_PKG(DUMMY, [ connman >= 1.0 ], [], [CONNMAN=false])
813 ])
814 AC_SUBST(ECONNMAN_CFLAGS)
815 AC_SUBST(ECONNMAN_LIBS)
816
817 have_wayland_clients=no
818 AC_ARG_ENABLE([wayland-clients],
819   AS_HELP_STRING([--enable-wayland-clients],[enable wayland clients in composite module @<:@default=disabled@:>@]),
820   [e_cv_want_wayland_clients=$enableval],
821   [e_cv_want_wayland_clients=no])
822
823 AC_MSG_CHECKING([whether wayland client support is enabled])
824 AC_MSG_RESULT([${e_cv_want_wayland_clients}])
825
826 if test "x$e_cv_want_wayland_clients" != "xno";then
827   PKG_CHECK_MODULES([WAYLAND], [wayland-server egl >= 7.10 glesv2 gl pixman-1 xcb-image],
828     [
829       have_wayland_clients=yes
830       AC_DEFINE_UNQUOTED([HAVE_WAYLAND_CLIENTS],[1],[enable wayland client support])
831     ],
832     [have_wayland_clients=no])
833 else
834   have_wayland_clients=no
835 fi
836
837 AM_CONDITIONAL([HAVE_WAYLAND_CLIENTS], [test "x${have_wayland_clients}" = "xyes"])
838
839
840 AC_E_OPTIONAL_MODULE([ibar], true)
841 AC_E_OPTIONAL_MODULE([dropshadow], true)
842 AC_E_OPTIONAL_MODULE([clock], true)
843 AC_E_OPTIONAL_MODULE([pager], true)
844 AC_E_OPTIONAL_MODULE([battery], true, [CHECK_MODULE_BATTERY])
845 AC_E_OPTIONAL_MODULE([temperature], true, [CHECK_MODULE_TEMPERATURE])
846 AC_E_OPTIONAL_MODULE([notification], true, [CHECK_MODULE_NOTIFICATION])
847 AC_E_OPTIONAL_MODULE([cpufreq], true)
848 AC_E_OPTIONAL_MODULE([ibox], true)
849 AC_E_OPTIONAL_MODULE([start], true)
850 AC_E_OPTIONAL_MODULE([winlist], true)
851 AC_E_OPTIONAL_MODULE([fileman], true)
852 AC_E_OPTIONAL_MODULE([fileman_opinfo], true)
853 AC_E_OPTIONAL_MODULE([wizard], true)
854 AC_E_OPTIONAL_MODULE([conf], true)
855 AC_E_OPTIONAL_MODULE([conf_wallpaper2], false)
856 AC_E_OPTIONAL_MODULE([conf_theme], true, true)
857 AC_E_OPTIONAL_MODULE([conf_intl], true)
858 AC_E_OPTIONAL_MODULE([msgbus], true)
859 AC_E_OPTIONAL_MODULE([conf_applications], true)
860 AC_E_OPTIONAL_MODULE([conf_display], true)
861 AC_E_OPTIONAL_MODULE([conf_shelves], true)
862 AC_E_OPTIONAL_MODULE([conf_keybindings], true)
863 AC_E_OPTIONAL_MODULE([conf_edgebindings], true)
864 AC_E_OPTIONAL_MODULE([conf_window_remembers], true)
865 AC_E_OPTIONAL_MODULE([conf_window_manipulation], true)
866 AC_E_OPTIONAL_MODULE([conf_menus], true)
867 AC_E_OPTIONAL_MODULE([conf_dialogs], true)
868 AC_E_OPTIONAL_MODULE([conf_performance], true)
869 AC_E_OPTIONAL_MODULE([conf_paths], true)
870 AC_E_OPTIONAL_MODULE([conf_interaction], true)
871 AC_E_OPTIONAL_MODULE([gadman], true)
872 AC_E_OPTIONAL_MODULE([mixer], true, [CHECK_MODULE_MIXER])
873 AC_E_OPTIONAL_MODULE([connman], true, [CHECK_MODULE_CONNMAN])
874 AC_E_OPTIONAL_MODULE([illume2], true)
875 AC_E_OPTIONAL_MODULE([syscon], true)
876 AC_E_OPTIONAL_MODULE([everything], true)
877 AC_E_OPTIONAL_MODULE([systray], true)
878 AC_E_OPTIONAL_MODULE([comp], true)
879 AC_E_OPTIONAL_MODULE([physics], false, [CHECK_MODULE_PHYSICS])
880 AC_E_OPTIONAL_MODULE([quickaccess], true)
881 AC_E_OPTIONAL_MODULE([shot], true)
882 AC_E_OPTIONAL_MODULE([backlight], true)
883 AC_E_OPTIONAL_MODULE([tasks], true)
884 AC_E_OPTIONAL_MODULE([conf_randr], true)
885 AC_E_OPTIONAL_MODULE([xkbswitch], true)
886 AC_E_OPTIONAL_MODULE([tiling], true)
887 AC_E_OPTIONAL_MODULE([access], false)
888
889 SUSPEND=""
890 HIBERNATE=""
891 case "$host_os" in
892    freebsd*|pcbsd*)
893       SUSPEND="acpiconf -s3"
894       AC_MSG_NOTICE([use suspend method: $SUSPEND])
895       AC_SUBST(SUSPEND)
896       HIBERNATE="acpiconf -s4"
897       AC_MSG_NOTICE([use hibernate method: $HIBERNATE])
898       AC_SUBST(HIBERNATE)
899       ;;
900    *)
901       AC_PATH_PROGS([SUSPEND], [sleep.sh pm-suspend],[/etc/acpi/sleep.sh], [/etc/acpi:/sbin:/usr/sbin:$PATH])
902       if test "$SUSPEND" = "/etc/acpi/sleep.sh" ; then
903          SUSPEND="/etc/acpi/sleep.sh force"
904          AC_MSG_NOTICE([use suspend method: $SUSPEND])
905       fi
906
907       AC_PATH_PROGS([HIBERNATE], [hibernate.sh pm-hibernate],[/etc/acpi/hibernate.sh], [/etc/acpi:/sbin:/usr/sbin:$PATH])
908       if test "$HIBERNATE" = "/etc/acpi/hibernate.sh" ; then
909          HIBERNATE="/etc/acpi/hibernate.sh force"
910          AC_MSG_NOTICE([use hibernate method: $HIBERNATE])
911       fi
912       ;;
913 esac
914
915 m4_ifdef([v_mic],
916    [
917     EFL_COMPILER_FLAG([-Wshadow])
918     EFL_COMPILER_FLAG([-Wall])
919     EFL_COMPILER_FLAG([-W])
920    ])
921
922 SUID_CFLAGS=-fPIE
923 SUID_LDFLAGS=-pie
924 AC_SUBST([SUID_CFLAGS])
925 AC_SUBST([SUID_LDFLAGS])
926
927 AC_OUTPUT([
928 Makefile
929 enlightenment.spec
930 enlightenment.pc
931 src/Makefile
932 src/bin/Makefile
933 src/bin/e_fm_shared_types.h
934 src/bin/e_fm/Makefile
935 src/modules/Makefile
936 src/modules/ibar/module.desktop
937 src/modules/dropshadow/module.desktop
938 src/modules/clock/module.desktop
939 src/modules/pager/module.desktop
940 src/modules/battery/module.desktop
941 src/modules/temperature/module.desktop
942 src/modules/notification/module.desktop
943 src/modules/cpufreq/module.desktop
944 src/modules/ibox/module.desktop
945 src/modules/start/module.desktop
946 src/modules/winlist/module.desktop
947 src/modules/fileman/module.desktop
948 src/modules/fileman_opinfo/module.desktop
949 src/modules/conf/module.desktop
950 src/modules/conf_wallpaper2/module.desktop
951 src/modules/conf_theme/module.desktop
952 src/modules/conf_intl/module.desktop
953 src/modules/conf_applications/module.desktop
954 src/modules/conf_display/module.desktop
955 src/modules/conf_shelves/module.desktop
956 src/modules/conf_keybindings/module.desktop
957 src/modules/conf_edgebindings/module.desktop
958 src/modules/conf_window_remembers/module.desktop
959 src/modules/conf_window_manipulation/module.desktop
960 src/modules/conf_menus/module.desktop
961 src/modules/conf_dialogs/module.desktop
962 src/modules/conf_performance/module.desktop
963 src/modules/conf_paths/module.desktop
964 src/modules/conf_interaction/module.desktop
965 src/modules/msgbus/module.desktop
966 src/modules/conf_randr/module.desktop
967 src/modules/gadman/module.desktop
968 src/modules/mixer/module.desktop
969 src/modules/connman/module.desktop
970 src/modules/illume2/doc/illume.dox
971 src/modules/illume2/module.desktop
972 src/modules/illume-home/module.desktop
973 src/modules/illume-home-toggle/module.desktop
974 src/modules/illume-softkey/module.desktop
975 src/modules/illume-keyboard/module.desktop
976 src/modules/illume-indicator/module.desktop
977 src/modules/illume-kbd-toggle/module.desktop
978 src/modules/illume-mode-toggle/module.desktop
979 src/modules/illume-bluetooth/module.desktop
980 src/modules/syscon/module.desktop
981 src/modules/everything/module.desktop
982 src/modules/everything/everything.pc
983 src/modules/systray/module.desktop
984 src/modules/comp/module.desktop
985 src/modules/physics/module.desktop
986 src/modules/quickaccess/module.desktop
987 src/modules/shot/module.desktop
988 src/modules/backlight/module.desktop
989 src/modules/tasks/module.desktop
990 src/modules/xkbswitch/module.desktop
991 src/modules/tiling/module.desktop
992 src/modules/access/module.desktop
993 data/Makefile
994 data/images/Makefile
995 data/flags/Makefile
996 data/favorites/Makefile
997 data/desktop/Makefile
998 data/input_methods/Makefile
999 data/themes/Makefile
1000 data/xsession/Makefile
1001 data/xsession/enlightenment.desktop
1002 data/tools/Makefile
1003 data/etc/Makefile
1004 data/etc/sysactions.conf
1005 data/icons/Makefile
1006 data/backgrounds/Makefile
1007 doc/Makefile
1008 doc/Doxyfile
1009 doc/e.dox
1010 config/Makefile
1011 config/default/Makefile
1012 config/standard/Makefile
1013 config/mobile/Makefile
1014 $po_makefile_in
1015 ])
1016
1017 # report
1018 txt_strip() {
1019   echo "[$]@" | sed -e 's/^[[ \t]]*\([[^ \t]]*\)[[ \t]]*$/\1/g'
1020 }
1021
1022 echo
1023 cat << SUMMARY_EOF
1024 Summary:
1025  * project.........: $PACKAGE $VERSION
1026  * prefix..........: $(txt_strip $prefix)
1027  * CFLAGS..........: $(txt_strip $CFLAGS)
1028  * LDFLAGS.........: $(txt_strip $LDFLAGS)
1029 SUMMARY_EOF
1030 echo
1031 cat << DEVICE_EOF
1032 Preferred Backends:
1033  * device..............: $device_backend
1034  * hal_mount...........: $e_cv_want_mount_hal
1035  * udisks_mount........: $e_cv_want_mount_udisks
1036  * eeze_mount..........: $e_cv_want_mount_eeze
1037 DEVICE_EOF
1038 echo
1039
1040 UNUSED_MODS=""
1041 for mod in $UNUSED_OPTIONAL_MODULES; do
1042   UNUSED_MODS="$UNUSED_MODS${COLOR_HRED}$mod${COLOR_END} "
1043 done
1044
1045 cat << MODULES_EOF
1046 Modules:
1047  * disabled........: $(txt_strip $UNUSED_MODS)
1048 MODULES_EOF
1049 echo
1050
1051 cat << DOCS_EOF
1052 Documentation:
1053  * enabled.........: ${build_doc}
1054 DOCS_EOF
1055 if test "x${build_doc}" = "xyes" ; then
1056   echo " Building..........: make doc"
1057 fi
1058 echo
1059
1060 cat << COMPILE_EOF
1061 Compilation........: make (or gmake)
1062 COMPILE_EOF
1063 echo
1064
1065 cat << INSTALL_EOF
1066 Installation.......: make all install (as root if needed, with 'su' or 'sudo')
1067 INSTALL_EOF
1068 echo