1 EFL_VERSION([1], [16], [0], [release])
2 AC_INIT([elementary], [efl_version], [enlightenment-devel@lists.sourceforge.net])
5 AC_CONFIG_SRCDIR([configure.ac])
6 AC_CONFIG_MACRO_DIR([m4])
10 AC_CONFIG_HEADERS([elementary_config.h])
12 #ifndef EFL_CONFIG_H__
13 #define EFL_CONFIG_H__
16 #endif /* EFL_CONFIG_H__ */
19 AC_USE_SYSTEM_EXTENSIONS
21 AM_INIT_AUTOMAKE([1.11 dist-bzip2 dist-xz -Wall])
22 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
23 m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
25 LT_INIT([win32-dll disable-static pic-only])
29 ### Additional options to configure
33 AC_ARG_ENABLE([cxx-bindings],
34 [AS_HELP_STRING([--disable-cxx-bindings],
35 [Disable C++11 bindings. @<:@default=enabled@:>@])],
36 [want_cxx11="${enableval}"],
42 [AS_HELP_STRING([--with-tests=none|regular|coverage],
43 [choose elementary testing method: regular, coverage or none @<:@default=none@:>@])],
44 [build_tests=${withval}],
49 case "${build_tests}" in
51 if test "${build_profile}" = "dev"; then
65 AC_MSG_ERROR([Unknown build tests option: --with-tests=${build_tests}])
71 AC_ARG_WITH([elementary-base-dir],
72 [AS_HELP_STRING([--with-elementary-base-dir=PATH], [specify the subdirectory for all elementary data @<:@default=${elementary_base_dir}@:>@])],
73 [elementary_base_dir=${withval}],
74 [elementary_base_dir=".elementary"])
76 AC_MSG_NOTICE([ELEMENTARY_BASE_DIR set to ${elementary_base_dir}])
77 AC_DEFINE_UNQUOTED([ELEMENTARY_BASE_DIR], ["${elementary_base_dir}"], ["subdirectory for all elementary data"])
79 # Build and install examples
81 EFL_CHECK_BUILD_EXAMPLES(
82 [enable_build_examples="yes"],
83 [enable_build_examples="no"])
85 EFL_CHECK_INSTALL_EXAMPLES(
86 [enable_install_examples="yes"],
87 [enable_install_examples="no"])
91 AC_ARG_ENABLE([debug],
92 [AS_HELP_STRING([--enable-debug], [enable elementary debug support. @<:@default=disabled@:>@])],
93 [want_elementary_debug=$enableval],
94 [want_elementary_debug="no"])
96 ELM_DEBUG_DEF="#undef"
97 if test "x$want_elementary_debug" = "xyes"; then
98 AC_DEFINE([HAVE_ELEMENTARY_DEBUG], [1], [Elementary debug.])
99 ELM_DEBUG_DEF="#define"
101 AC_SUBST([ELM_DEBUG_DEF])
103 # quicklaunch support
105 AC_ARG_ENABLE([quick-launch],
106 [AS_HELP_STRING([--disable-quick-launch], [disable quick-launch support, @<:@default=detect@:>@])],
107 [want_quicklaunch=$enableval],
108 [want_quicklaunch="auto"])
111 ### Default options with respect to host and default values
113 ELM_VERSION_MAJOR="v_maj"
114 ELM_VERSION_MINOR="v_min"
115 AC_SUBST([ELM_VERSION_MAJOR])
116 AC_SUBST([ELM_VERSION_MINOR])
118 MODULE_ARCH="v-v_maj.v_min.v_mic"
119 AC_SUBST([MODULE_ARCH])
120 AC_DEFINE_UNQUOTED([MODULE_ARCH], ["$MODULE_ARCH"], ["Module architecture"])
122 ELM_UNIX_DEF="#undef"
123 ELM_WIN32_DEF="#undef"
129 AC_DEFINE([HAVE_EVIL], [1], [Set to 1 if evil package is installed.])
130 ELM_WIN32_DEF="#define"
134 ELM_UNIX_DEF="#define"
137 ELM_UNIX_DEF="#define"
141 ELM_UNIX_DEF="#define"
144 ELM_UNIX_DEF="#define"
148 AM_CONDITIONAL([ELEMENTARY_WINDOWS_BUILD], [test "x${have_windows}" = "xyes"])
149 AM_CONDITIONAL([HAVE_FREEBSD], [test "x${have_freebsd}" = "xyes"])
150 AC_SUBST([ELM_UNIX_DEF])
151 AC_SUBST([ELM_WIN32_DEF])
153 ### Checks for programs
160 EFL_CXX_COMPILE_STDCXX_11([ext])
166 m4_ifdef([AM_GNU_GETTEXT_VERSION], [
167 AM_GNU_GETTEXT_VERSION([0.18])
170 m4_ifdef([AM_GNU_GETTEXT], [
171 AM_GNU_GETTEXT([external])
172 po_makefile_in=po/Makefile.in
177 AC_SUBST([LTLIBINTL])
179 if test "x${POSUB}" = "x" ; then
183 AM_CONDITIONAL([HAVE_PO], [test "x${have_po}" = "xyes"])
186 EFL_CHECK_DOXYGEN([build_doc="yes"], [build_doc="no"])
189 EFL_WITH_BIN([eet], [eet-eet], [eet])
190 EFL_WITH_BIN([edje], [edje-cc], [edje_cc])
191 EFL_WITH_BIN([elementary], [elementary-codegen], [elementary_codegen])
192 EFL_WITH_BIN([elementary], [elm-prefs-cc], [elm_prefs_cc])
193 EFL_WITH_BIN([eolian], [eolian-gen], [eolian_gen])
194 EFL_WITH_BIN([eolian-cxx], [eolian-cxx], [eolian_cxx])
195 EFL_WITH_BIN([eldbus], [eldbus_codegen], [eldbus-codegen])
196 # Force the helper to try external eolian generators
197 AM_CONDITIONAL([HAVE_EOLIAN_GEN], [true])
198 AM_CONDITIONAL([HAVE_EOLIAN_CXX], [true])
200 EFL_ENABLE_BIN([elementary-test])
201 EFL_ENABLE_BIN([elementary-codegen])
202 EFL_ENABLE_BIN([elm-prefs-cc])
203 EFL_ENABLE_BIN([elementary-config])
206 ### Checks for libraries
208 requirement_elm_pc=""
212 requirement_elm_pc="evil >= efl_version"
214 #TIZEN_ONLY(20160425): Mobile Ux needs icu.
216 requirement_elm_pc="icu-i18n >= 4.8"
221 requirement_elm_pc_only="\
223 eina >= efl_version \
225 evas >= efl_version \
226 ecore >= efl_version \
227 ecore-evas >= efl_version \
228 ecore-file >= efl_version \
229 ecore-input >= efl_version \
230 edje >= efl_version \
232 ethumb_client >= efl_version \
233 emotion >= efl_version \
234 ecore-imf >= efl_version \
235 ecore-con >= efl_version \
237 eldbus >= efl_version \
238 efreet >= efl_version \
239 efreet-mime >= efl_version \
240 efreet-trash >= efl_version \
244 requirement_elm_pc="\
245 ${requirement_elm_pc} \
246 ${requirement_elm_pc_only} \
249 ELM_CHECK_BACKEND([X])
250 ELM_CHECK_BACKEND([FB])
251 ELM_CHECK_BACKEND([PSL1GHT])
252 ELM_CHECK_BACKEND([SDL])
253 ELM_CHECK_BACKEND([Cocoa])
254 ELM_CHECK_BACKEND([Win32])
255 ELM_CHECK_BACKEND([Wayland])
256 ELM_CHECK_BACKEND([DRM])
258 ELM_CHECK_OPTION([elocation], [0.1.0])
259 ELM_CHECK_OPTION([eweather], [0.2.0])
260 # emap is in svn : trunk/PROTO
261 ELM_CHECK_OPTION([emap], [0.1.0])
262 ELM_CHECK_OPTION([eweb])
264 PKG_CHECK_MODULES([ELEMENTARY], [${requirement_elm_pc}])
265 PKG_CHECK_MODULES([ELEMENTARY_PC], [${requirement_elm_pc_only}])
267 EFL_ENABLE_EO_API_SUPPORT
268 EFL_ENABLE_BETA_API_SUPPORT
271 if test "x${HAVE_CXX11}" = "x1" -a "x${want_cxx11}" = "xyes"; then
272 PKG_CHECK_MODULES([ELEMENTARY_CXX],
274 efl-cxx >= efl_version
275 eo-cxx >= efl_version
276 eina-cxx >= efl_version
277 evas-cxx >= efl_version
278 eio-cxx >= efl_version
279 edje-cxx >= efl_version
282 requirement_elm_pc="${requirement_elm_pc} \
283 efl-cxx >= efl_version \
284 eo-cxx >= efl_version \
285 eina-cxx >= efl_version \
286 evas-cxx >= efl_version \
287 eio-cxx >= efl_version \
288 edje-cxx >= efl_version \
291 LDFLAGS="${LDFLAGS} -fPIC -DPIC"
292 CXXFLAGS="${CXXFLAGS} -fPIC -DPIC"
293 AC_CONFIG_FILES([src/lib/Elementary.hh])
300 AM_CONDITIONAL([HAVE_CXX11], [test "x${have_cxx11}" = "xyes"])
303 MODULE_EDJE=`${PKG_CONFIG} --variable=module_arch edje`
304 AC_SUBST([MODULE_EDJE])
305 AC_DEFINE_UNQUOTED([MODULE_EDJE], ["$MODULE_EDJE"], ["Edje module architecture"])
307 # Needs to be moved into a macro, and also, needs a way to automatically fetch
308 # from all the dependencies using the Requires.
309 DEPS_EOLIAN_FLAGS=`${PKG_CONFIG} --variable=eolian_flags eo evas edje ecore efl`
310 AC_SUBST([DEPS_EOLIAN_FLAGS])
312 requirement_elm_libs="-lm"
321 AC_CHECK_LIB([socket], [connect],
324 requirement_elm_libs="-lsocket ${requirement_elm_libs}"
336 AM_CONDITIONAL([BUILD_RUN], [test "x$have_socket" = "xyes"])
344 AC_DEFINE([HAVE_DLADDR], [1], [Define to 1 if you have the `dladdr' function.])
346 requirement_elm_libs="-ldl ${requirement_elm_libs}"
349 AC_CHECK_LIB([dl], [dlopen], [res=yes], [res=no])
350 if test "x$res" = "xyes"; then
351 AC_CHECK_LIB([dl], [dladdr], AC_DEFINE([HAVE_DLADDR], [1], [Define to 1 if you have the `dladdr' function.]))
352 requirement_elm_libs="-ldl ${requirement_elm_libs}"
361 AM_CONDITIONAL([BUILD_MODULES], [test "x$have_dlopen" = "xyes"])
363 ELEMENTARY_LIBS="${ELEMENTARY_LIBS} ${requirement_elm_libs}"
364 ELEMENTARY_PC_LIBS="${ELEMENTARY_PC_LIBS} ${requirement_elm_libs}"
366 AC_SUBST([requirement_elm_pc])
368 # check unit testing library
369 if test "${want_tests}" = "yes"; then
370 PKG_CHECK_MODULES([CHECK], [check >= 0.9.5])
372 AM_CONDITIONAL([ELEMENTARY_ENABLE_TESTS], [test "${want_tests}" = "yes"])
375 if test "${want_coverage}" = "yes" ; then
376 AC_CHECK_PROG([have_lcov], [lcov], [yes], [no])
377 if test "x${have_lcov}" = "xyes" ; then
378 ELEMENTARY_CFLAGS="${ELEMENTARY_CFLAGS} -fprofile-arcs -ftest-coverage"
379 ELEMENTARY_LIBS="${ELEMENTARY_LIBS} -lgcov"
380 if test "x${prefer_assert}" = "xno"; then
381 ELEMENTARY_CFLAGS="${ELEMENTARY_CFLAGS} -DNDEBUG"
383 ELEMENTARY_CFLAGS="${ELEMENTARY_CFLAGS} -g -O0 -DDEBUG"
386 AC_MSG_ERROR([lcov is not found])
390 AM_CONDITIONAL([ELEMENTARY_ENABLE_COVERAGE], [test "${want_coverage}" = "yes"])
393 ### Checks for header files
396 PKG_CHECK_MODULES(TTRACE,
398 [have_ttrace="yes"], [have_ttrace="no"])
399 if test "x$have_ttrace" = "xyes"; then
400 AC_DEFINE(ENABLE_TTRACE, 1, [ttrace available])
403 ELM_ALLOCA_H_DEF="#undef"
404 AC_CHECK_HEADER([alloca.h], [ELM_ALLOCA_H_DEF="#define"])
405 AC_SUBST([ELM_ALLOCA_H_DEF])
407 ELM_LIBINTL_H_DEF="#undef"
408 AC_CHECK_HEADER([libintl.h], [ELM_LIBINTL_H_DEF="#define"])
409 AC_SUBST([ELM_LIBINTL_H_DEF])
411 ELM_DIRENT_H_DEF="#undef"
412 AC_CHECK_HEADER([dirent.h], [ELM_DIRENT_H_DEF="#define"])
413 AC_SUBST([ELM_DIRENT_H_DEF])
415 AC_CHECK_HEADER([sys/mman.h], [have_mman="yes"], [have_mman="no"])
416 if test "x${have_mman}" = "xyes"; then
417 AC_DEFINE([HAVE_MMAN_H], [1], [Have sys/mman.h header file])
420 AC_CHECK_HEADERS([locale.h langinfo.h sys/times.h])
424 AC_CHECK_HEADERS([crt_externs.h])
432 ### Checks for structures
435 ### Checks for compiler characteristics
441 EFL_COMPILER_FLAG([-Wshadow])
442 EFL_COMPILER_FLAG([-Wall])
443 EFL_COMPILER_FLAG([-W])
446 EFL_COMPILER_FLAG([-Wall -Wextra -Wpointer-arith -Wno-missing-field-initializers -fvisibility=hidden -fdata-sections -ffunction-sections])
451 ### Checks for linker characteristics
453 EFL_LINKER_FLAG([-fvisibility=hidden -fdata-sections -ffunction-sections -Wl,--gc-sections -fno-strict-aliasing -Wl,--as-needed -Wl,--no-copy-dt-needed-entries])
455 # Check if we can build binary with quicklaunch support
459 ### Checks for library functions
463 AC_CHECK_FUNCS([geteuid getuid getpwent])
465 if test "x${want_quicklaunch}" != "xno"; then
466 AC_CHECK_FUNCS([fork clearenv])
469 if test "x${have_dlopen}" = "xno"; then
470 AC_CHECK_FUNCS([dlopen dladdr])
473 if test "x${ac_cv_func_dlopen}" = "xyes"; then
477 AM_CONDITIONAL([BUILD_QUICKLAUNCH], [test "x${ac_cv_func_fork}" = "xyes" && test "x${have_dlopen}" = "xyes"])
484 # define _GNU_SOURCE 1
488 extern char **environ;
491 [AC_DEFINE([HAVE_ENVIRON], [1], [extern environ exists])])
495 AC_DEFINE([environ], [(*_NSGetEnviron())], ["apple doesn't follow POSIX in this case."])
512 src/modules/prefs/Makefile
513 src/modules/access_output/Makefile
514 src/modules/copypasteUI_ctxpopup/Makefile
515 src/modules/datetime_input_ctxpopup/Makefile
516 src/modules/test_entry/Makefile
517 src/modules/test_map/Makefile
518 src/edje_externals/Makefile
519 src/examples/Makefile
520 src/examples/sphere_hunter/Makefile
521 src/examples/performance/Makefile
523 src/imported/Makefile
524 src/imported/atspi/Makefile
528 data/objects/Makefile
529 data/desktop/Makefile
530 data/edje_externals/Makefile
532 config/default/Makefile
533 config/default/base.src
534 config/standard/Makefile
535 config/standard/base.src
536 config/mobile/Makefile
537 config/mobile/base.src
539 cmakeconfig/ElementaryConfig.cmake
540 cmakeconfig/ElementaryConfigVersion.cmake
545 #####################################################################
551 echo "------------------------------------------------------------------------"
552 echo "$PACKAGE $VERSION"
553 echo "------------------------------------------------------------------------"
555 echo "Configuration Options Summary:"
558 echo " X11....................: ${have_elementary_x}"
559 echo " Framebuffer............: ${have_elementary_fb}"
560 echo " DRM....................: ${have_elementary_drm}"
561 echo " PSL1GHT................: ${have_elementary_psl1ght}"
562 echo " SDL....................: ${have_elementary_sdl}"
563 echo " Cocoa..................: ${have_elementary_cocoa}"
564 echo " Windows XP.............: ${have_elementary_win32}"
565 echo " Wayland................: ${have_elementary_wayland}"
568 echo " EWeather...............: ${have_elementary_eweather}"
569 echo " EMap...................: ${have_elementary_emap}"
570 echo " Web (WebKit)...........: ${elementary_web}"
571 echo " Quick Launch...........: ${ac_cv_func_fork}"
572 echo " Elocation..............: ${have_elementary_elocation}"
574 echo " eet......................: ${eet_eet}"
575 echo " edje_cc..................: ${edje_cc}"
576 echo " elementary_codegen.......: ${elementary_codegen}"
577 echo " elm_prefs_cc.............: ${elm_prefs_cc}"
578 echo " eolian_gen...............: ${eolian_gen}"
579 echo " eolian_cxx...............: ${eolian_cxx}"
580 echo " eldbus_codegen...........: ${eldbus_codegen}"
582 echo " Build elementary_test....: ${have_elementary_test}"
583 echo " Build elementary_codegen.: ${have_elementary_codegen}"
584 echo " Build elm_prefs_cc.......: ${have_elm_prefs_cc}"
585 echo " Examples.................: ${enable_build_examples}"
586 echo " Examples installed.......: ${enable_install_examples}"
587 echo " Build elementary_config..: ${have_elementary_config}"
588 echo " Enable debug.............: ${want_elementary_debug}"
589 echo " Enable C++...............: ${have_cxx11}"
591 echo "Compilation................: make (or gmake)"
592 echo " CPPFLAGS.................: $CPPFLAGS"
593 echo " CFLAGS...................: $CFLAGS"
594 if test "x${have_cxx11}" = "xyes"; then
595 echo " CXXFLAGS.................: $CXXFLAGS"
597 echo " LDFLAGS..................: $LDFLAGS"
599 if test "${build_tests}" = "none"; then
600 echo "Tests......................: no"
602 echo "Tests......................: make check"
604 if test "${build_doc}" = "no"; then
605 echo "Docs.......................: no (doxygen not found)"
607 echo "Docs.......................: make doc"
610 echo "Installation...............: make install (as root if needed, with 'su' or 'sudo')"
611 echo " prefix...................: $prefix"