1 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
2 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
3 m4_define([v_maj], [0])
4 m4_define([v_min], [20])
5 m4_define([v_mic], [0])
6 m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n']))dnl
7 ##-- When released, remove the dnl on the below line
9 m4_define([relname], [0.20.0])
10 ##-- When doing snapshots - change soname. remove dnl on below line
11 m4_define([relname], [ver-autocannoli-0.20])
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])], [m4_define([v_ver], [v_maj.v_min.v_mic])])
15 m4_define([lt_cur], m4_eval(v_maj + v_min))
16 m4_define([lt_rev], v_mic)
17 m4_define([lt_age], v_min)
18 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
19 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
21 AC_INIT([enlightenment], [v_ver], [enlightenment-devel@lists.sourceforge.net])
23 AC_CONFIG_SRCDIR([configure.ac])
24 AC_CONFIG_MACRO_DIR([m4])
28 AC_CONFIG_HEADERS([config.h])
30 #ifndef EFL_CONFIG_H__
31 #define EFL_CONFIG_H__
34 #endif /* EFL_CONFIG_H__ */
37 AM_INIT_AUTOMAKE([1.11 dist-xz -Wno-portability])
38 AM_SILENT_RULES([yes])
40 AC_USE_SYSTEM_EXTENSIONS
47 LT_INIT([disable-static])
49 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
50 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
51 m4_ifdef([v_rev], , [m4_define([v_rev], [0])])
52 m4_ifdef([v_rel], , [m4_define([v_rel], [])])
53 AC_DEFINE_UNQUOTED(VMAJ, [v_maj], [Major version])
54 AC_DEFINE_UNQUOTED(VMIN, [v_min], [Minor version])
55 AC_DEFINE_UNQUOTED(VMIC, [v_mic], [Micro version])
56 AC_DEFINE_UNQUOTED(VREV, [v_rev], [Revison])
57 AC_DEFINE_UNQUOTED(E_RELEASE_BUILD, [1], [doin it])
58 version_info="lt_cur:lt_rev:lt_age"
60 AC_SUBST([version_info])
61 AC_SUBST([release_info])
62 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
63 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
72 AC_CHECK_FUNCS(setenv)
73 AC_CHECK_FUNCS(unsetenv)
74 AC_CHECK_FUNCS(clearenv)
75 AC_CHECK_HEADERS(features.h)
79 AC_DEFINE([environ], [(*_NSGetEnviron())],
80 ["apple doesn't follow POSIX in this case."])
89 extern char **environ;
91 AC_DEFINE(HAVE_ENVIRON, 1, [Have environ var])
97 AC_CHECK_HEADERS([sys/timerfd.h sys/ptrace.h arpa/inet.h netinet/in.h])
99 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]))
101 AC_CHECK_FUNCS(fnmatch, res=yes, res=no)
102 if test "x$res" = "xno"; then
103 AC_CHECK_LIB(fnmatch, fnmatch, res=yes, res=no)
104 if test "x$res" = "xno"; then
105 AC_MSG_ERROR([Cannot find fnmatch() in neither libc nor libfnmatch])
107 fnmatch_libs="-lfnmatch"
111 AC_SUBST([fnmatch_libs])
113 dnl AC_E_CHECK_PKG(VALGRIND, [valgrind >= 2.4.0], [], [:])
114 AC_SUBST([VALGRIND_CFLAGS])
115 AC_SUBST([VALGRIND_LIBS])
117 MODULE_ARCH="$host_os-$host_cpu-relname"
118 AC_SUBST([MODULE_ARCH])
119 AC_DEFINE_UNQUOTED(MODULE_ARCH, "$MODULE_ARCH", "Module architecture")
121 if test "x${bindir}" = 'xNONE'; then
122 if test "x${prefix}" = "xNONE"; then
123 PACKAGE_BIN_DIR="${ac_default_prefix}/bin"
125 PACKAGE_BIN_DIR="${prefix}/bin"
128 PACKAGE_BIN_DIR="${bindir}"
130 AC_SUBST([PACKAGE_BIN_DIR])
132 if test "x${libdir}" = 'xNONE'; then
133 if test "x${prefix}" = "xNONE"; then
134 PACKAGE_LIB_DIR="${ac_default_prefix}/lib"
136 PACKAGE_LIB_DIR="${prefix}/lib"
139 PACKAGE_LIB_DIR="${libdir}"
141 AC_SUBST([PACKAGE_LIB_DIR])
143 if test "x${prefix}" = "xNONE"; then
144 PACKAGE_DATA_DIR="${ac_default_prefix}/share/${PACKAGE}"
145 LOCALE_DIR="${ac_default_prefix}/share/locale"
146 PACKAGE_SYSCONF_DIR="${ac_default_prefix}/etc"
148 PACKAGE_DATA_DIR="${prefix}/share/${PACKAGE}"
149 LOCALE_DIR="${prefix}/share/locale"
150 PACKAGE_SYSCONF_DIR="${sysconfdir}"
152 AC_SUBST([PACKAGE_DATA_DIR])
153 AC_SUBST([LOCALE_DIR])
154 AC_SUBST([PACKAGE_SYSCONF_DIR])
158 PCPPFLAGS="${CPPFLAGS}"
159 CPPFLAGS="${CPPFLAGS} -I /System/Library/Frameworks/CoreFoundation.framework/Headers"
160 AC_CHECK_HEADERS(CFBase.h,
162 cf_cflags="-I /System/Library/Frameworks/CoreFoundation.framework/Headers"
163 cf_cflags="${cf_cflags} -I /System/Library/Frameworks/IOKit.framework/Headers"
164 cf_libs="-framework 'CoreFoundation' -framework 'IOKit'"
167 CPPFLAGS="${PCPPFLAGS}"
168 AC_SUBST([cf_cflags])
172 AC_CHECK_HEADERS([execinfo.h], [have_execinfo="yes"], [have_execinfo="no"])
173 if test "x${have_execinfo}" = "xyes" ; then
174 AC_MSG_CHECKING([whether backtrace_symbols_fd() is in libc])
180 #include <execinfo.h>
183 backtrace_symbols_fd(NULL, 0, 0);
185 [link_execinfo="yes"],
186 [link_execinfo="no"])
188 AC_MSG_RESULT([${link_execinfo}])
191 if test "x${link_execinfo}" = "xno" ; then
192 AC_MSG_CHECKING([whether backtrace_symbols_fd() is in libexecinfo])
194 LDFLAGS_save="${LDFLAGS}"
195 LDFLAGS="${LDFLAGS} -lexecinfo"
200 #include <execinfo.h>
203 backtrace_symbols_fd(NULL, 0, 0);
207 execinfo_libs="-lexecinfo"
209 [link_execinfo="no"])
210 LDFLAGS="${LDFLAGS_save}"
212 AC_MSG_RESULT([${link_execinfo}])
215 AC_CHECK_LIB(dl, dlopen, dlopen_libs=-ldl)
216 AC_SUBST([dlopen_libs])
218 AC_MSG_CHECKING([whether to enable Files menu item])
219 AC_ARG_ENABLE([files],
220 AS_HELP_STRING([--disable-files],[disable Files menu item @<:@default=enabled@:>@]),
221 [e_cv_enable_files=$enableval],
222 AC_CACHE_VAL([e_cv_enable_files], [e_cv_enable_files=yes]))
223 if test "[${e_cv_enable_files}]" = yes; then
224 AC_DEFINE_UNQUOTED([ENABLE_FILES],[1],[enable Files menu item])
226 AC_MSG_RESULT([$e_cv_enable_files])
229 # verify "wayland-only" early to adapt dependencies
232 AC_ARG_ENABLE([wayland],
233 AS_HELP_STRING([--enable-wayland],[enable wayland support in enlightenment @<:@default=disabled@:>@]),
234 [e_cv_want_wayland_only=$enableval],
235 [e_cv_want_wayland_only=no])
236 AC_MSG_CHECKING([whether wayland support is enabled])
237 AC_MSG_RESULT([${e_cv_want_wayland_only}])
240 AC_ARG_ENABLE([quick-init],
241 AS_HELP_STRING([--enable-quick-init],[]),
244 AC_DEFINE_UNQUOTED([ENABLE_QUICK_INIT], [1], [enable quick init])
247 AC_MSG_CHECKING([whether enlightenment quick initialization is enabled])
248 AC_MSG_RESULT([${quick_init}])
251 evas >= $efl_version \
252 ecore >= $efl_version \
253 ecore-evas >= $efl_version \
254 ecore-input >= $efl_version \
255 ecore-input-evas >= $efl_version \
256 ecore-con >= $efl_version \
257 ecore-ipc >= $efl_version \
258 ecore-file >= $efl_version \
259 eet >= $efl_version \
260 edje >= $efl_version \
261 eina >= $efl_version \
262 eldbus >= $efl_version \
263 eio >= $efl_version \
269 PKG_CHECK_MODULES(E_INFO, [
270 eina >= ${efl_version}
271 ecore >= ${efl_version}
272 eldbus >= ${efl_version}
276 PKG_CHECK_EXISTS([xkeyboard-config],[
277 xkb_base=`$PKG_CONFIG --variable=xkb_base xkeyboard-config 2>/dev/null`
278 AC_DEFINE_UNQUOTED([XKB_BASE],["$xkb_base"],[Define to the base directory for X keyboard configuration data])
283 AS_HELP_STRING([--with-profile=TARGET_PROFILE],
284 [specify a target format profile of:
285 LOWRES_PDA, MEDIUMRES_PDA, HIRES_PDA, SLOW_PC, MEDIUM_PC, FAST_PC]),
287 AC_MSG_NOTICE([Enlightenment build profile set to $profile])
288 EDJE_DEF="-DLOWRES_PDA=1 -DMEDIUMRES_PDA=2 -DHIRES_PDA=3 -DSLOW_PC=4 -DMEDIUM_PC=5 -DFAST_PC=6"
289 EDJE_DEF=$EDJE_DEF" -DE_PROFILE"=$profile
292 PKG_CHECK_MODULES(EET, [eet >= ${efl_version}])
293 EFL_WITH_BIN([edje], [edje-cc], [edje_cc])
294 EFL_WITH_BIN([eet], [eet-eet], [eet])
295 EFL_WITH_BIN([eldbus], [eldbus_codegen], [eldbus-codegen])
297 AC_DEFINE(E_INTERNAL, 1, "This define can be used to wrap internal E stuff, as config.h isn't exported")
300 AM_CONDITIONAL([HAVE_ENOTIFY], [false])
301 AC_ARG_ENABLE([enotify],
302 AS_HELP_STRING([--disable-enotify], [disable Enotify support @<:@default=detect@:>@]),
303 [e_cv_want_enotify=$enableval],
304 AC_CACHE_VAL([e_cv_want_enotify], [e_cv_want_enotify=yes])
306 if test "x$e_cv_want_enotify" != "xno" ; then
307 AC_E_CHECK_PKG(ENOTIFY, [ eldbus >= $efl_version ],
309 AC_DEFINE_UNQUOTED([HAVE_ENOTIFY], [1], [enable enotify])
312 AC_MSG_NOTICE([enotify disabled])
316 AC_MSG_NOTICE([enotify disabled])
319 AC_SUBST([ENOTIFY_CFLAGS])
320 AC_SUBST([ENOTIFY_LIBS])
323 AC_MSG_CHECKING([whether shm_open() is present])
329 #include <sys/stat.h>
330 #include <sys/mman.h>
335 fd = shm_open("/", O_RDWR | O_CREAT, S_IRUSR |
341 AC_DEFINE(HAVE_SHM_OPEN, 1, [Have shm_open() call])
345 AC_MSG_RESULT([${have_shm_open}])
346 AC_SUBST(SHM_OPEN_LIBS)
348 if test "x${e_cv_want_wayland_only}" != "xno" || test "x${e_cv_want_wayland_clients}" != "xno";then
349 PKG_CHECK_MODULES([WAYLAND], [wayland-server >= 1.8.0 xkbcommon uuid xdg-shell-server scaler-server transform-server screenshooter-server tizen-extension-server],
352 AC_DEFINE_UNQUOTED([HAVE_WAYLAND],[1],[enable wayland support])
358 if test "x${have_wayland}" = "xyes"; then
359 if test "x${e_cv_want_wayland_only}" != "xno"; then
360 have_wayland_only=yes
361 AC_DEFINE_UNQUOTED([HAVE_WAYLAND_ONLY],[1],[enable wayland-only version of enlightenment])
365 AC_ARG_ENABLE([wayland-tbm],
366 AS_HELP_STRING([--enable-wayland-tbm],[enable wayland-tbm @<:@default=enabled@:>@]),
367 [e_cv_want_wayland_tbm=$enableval],
368 [e_cv_want_wayland_tbm=yes])
369 AC_MSG_CHECKING([whether wayland TBM support is enabled])
370 AC_MSG_RESULT([${e_cv_want_wayland_tbm}])
372 if test "x$e_cv_want_wayland_tbm" != "xno";then
373 PKG_CHECK_MODULES([WAYLAND_TBM], [wayland-tbm-server],
376 AC_DEFINE_UNQUOTED([HAVE_WAYLAND_TBM],[1],[enable wayland-tbm support])
379 PKG_CHECK_MODULES([ECORE_DRM], [ecore-drm >= ${efl_version}])
386 AS_HELP_STRING([--enable-hwc],[enable hwc @<:@default=enabled@:>@]),
387 [e_cv_want_hwc=$enableval],
389 AC_MSG_CHECKING([whether HWC support is enabled])
390 AC_MSG_RESULT([${e_cv_want_hwc}])
392 if test "x$e_cv_want_hwc" != "xno";then
393 PKG_CHECK_MODULES([HWC], [gbm],
396 AC_DEFINE_UNQUOTED([HAVE_HWC],[1],[enable hwc support])
403 # Check for ttrace header files
404 PKG_CHECK_MODULES(TTRACE,
406 [have_ttrace="yes"], [have_ttrace="no"])
408 if test "x$have_ttrace" = "xyes"; then
409 AC_DEFINE(ENABLE_TTRACE, 1, [ttrace available])
412 AM_CONDITIONAL([HAVE_WAYLAND], [test "x${have_wayland}" = "xyes"])
413 AM_CONDITIONAL([HAVE_WAYLAND_TBM], [test "x${have_wayland_tbm}" = "xyes"])
414 AM_CONDITIONAL([HAVE_HWC], [test "x${have_hwc}" = "xyes"])
416 WL_DESKTOP_SHELL=false
417 define([CHECK_MODULE_WL_DESKTOP_SHELL],
419 if test "x${have_wayland}" = "xyes"; then
420 AC_E_CHECK_PKG(WL_DESKTOP_SHELL, [ ecore >= $efl_version eina >= $efl_version ], [WL_DESKTOP_SHELL=true], [WL_DESKTOP_SHELL=false])
422 WL_DESKTOP_SHELL=false
425 AM_CONDITIONAL([HAVE_WL_DESKTOP_SHELL], [test "x${WL_DESKTOP_SHELL}" = "xtrue"])
428 define([CHECK_MODULE_WL_DRM],
430 if test "x${have_wayland}" = "xyes" ; then
431 AC_E_CHECK_PKG(WL_DRM, [ ecore-drm >= $efl_version ecore >= $efl_version eina >= $efl_version ], [WL_DRM=true], [WL_DRM=false])
436 AM_CONDITIONAL([HAVE_WL_DRM], [test "x${WL_DRM}" = "xtrue"])
438 define([CHECK_MODULE_BUFFERQUEUE],
440 if test "x${have_wayland_clients}" = "xyes" || test "x${e_cv_want_wayland_only}" = "xyes"; then
441 AC_E_CHECK_PKG(BUFFERQUEUE, [ ecore >= $efl_version eina >= $efl_version ], [BUFFERQUEUE=true], [BUFFERQUEUE=false])
446 AM_CONDITIONAL([HAVE_BUFFERQUEUE], [test "x${BUFFERQUEUE}" = "xtrue"])
448 AC_E_OPTIONAL_MODULE([wl_desktop_shell], $have_wayland, [CHECK_MODULE_WL_DESKTOP_SHELL])
449 #AC_E_OPTIONAL_MODULE([wl_drm], $have_wayland, [CHECK_MODULE_WL_DRM])
450 AC_E_OPTIONAL_MODULE([bufferqueue], $have_wayland, [CHECK_MODULE_BUFFERQUEUE])
452 if test "x${have_wayland}" = "xyes"; then
453 AC_DEFINE_UNQUOTED([HAVE_WAYLAND_ONLY],[1],[enable wayland-only version of enlightenment])
454 have_wayland_only=yes
459 AM_CONDITIONAL([HAVE_WAYLAND_ONLY], [test "x${have_wayland_only}" = "xyes"])
461 PKG_CHECK_MODULES(E, [$e_requires])
463 evas >= ${efl_version} \
464 ecore >= ${efl_version} \
465 ecore-evas >= ${efl_version} \
466 ecore-con >= ${efl_version} \
467 ecore-ipc >= ${efl_version} \
468 ecore-file >= ${efl_version} \
469 eet >= ${efl_version} \
470 edje >= ${efl_version} \
471 eina >= ${efl_version} \
472 eldbus >= ${efl_version} \
473 eio >= ${efl_version} \
474 eo >= ${efl_version} \
477 e_libs="$E_LIBS $fnmatch_libs $execinfo_libs"
478 e_cflags="-DUSE_E_CONFIG_H $E_CFLAGS -D_F_ZONE_WINDOW_ROTATION_ -D_F_E_VIRTUAL_KEYBOARD_TYPE_ -D_F_E_CLIENT_NEW_CLIENT_POST_HOOK_ -D_F_E_COMP_OBJECT_INTERCEPT_HOOK_ -D_F_TRANSIENT_FOR_PATCH -D_F_DISABLE_BACKLIGHT_MOD_SUPPORT"
479 e_configflags="-DUSE_E_CONFIG_H -D_F_ZONE_WINDOW_ROTATION_ -D_F_E_VIRTUAL_KEYBOARD_TYPE_ -D_F_E_CLIENT_NEW_CLIENT_POST_HOOK_ -D_F_E_COMP_OBJECT_INTERCEPT_HOOK_ -D_F_TRANSIENT_FOR_PATCH -D_F_DISABLE_BACKLIGHT_MOD_SUPPORT"
483 AC_SUBST([e_configflags])
484 AC_SUBST([requirements_e])
488 EFL_COMPILER_FLAG([-Wshadow])
489 EFL_COMPILER_FLAG([-Wall])
490 EFL_COMPILER_FLAG([-Wpointer-arith])
491 EFL_COMPILER_FLAG([-W])
492 EFL_COMPILER_FLAG([-Wno-missing-field-initializers])
493 EFL_COMPILER_FLAG([-Wfloat-equal])
494 EFL_COMPILER_FLAG([-Wuninitialized])
495 EFL_COMPILER_FLAG([-Wundef])
496 EFL_COMPILER_FLAG([-Wcast-align])
497 EFL_COMPILER_FLAG([-Wformat=2])
508 AC_SUBST([SUID_CFLAGS])
509 AC_SUBST([SUID_LDFLAGS])
515 src/modules/wl_desktop_shell/module.desktop
520 echo "[$]@" | sed -e 's/^[[ \t]]*\([[^ \t]]*\)[[ \t]]*$/\1/g'
526 * project.........: $PACKAGE $VERSION
527 * prefix..........: $(txt_strip $prefix)
528 * CFLAGS..........: $(txt_strip $CFLAGS)
529 * LDFLAGS.........: $(txt_strip $LDFLAGS)
530 * edje_cc.........: ${edje_cc}
531 * eet.............: ${eet_eet}
532 * eldbus-codegen..: ${eldbus_codegen}
538 for mod in $UNUSED_OPTIONAL_MODULES; do
539 UNUSED_MODS="$UNUSED_MODS${COLOR_HRED}$mod${COLOR_END} "
544 * disabled........: $(txt_strip $UNUSED_MODS)
549 Compilation........: make (or gmake)
554 Installation.......: make all install (as root if needed, with 'su' or 'sudo')