X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=configure.ac;h=f412863544c959004bec2e996f87d7318e6f2a5a;hb=HEAD;hp=c076de52d8dcc969481b49121d83b3dc8a49665a;hpb=121a1cb154f5c8947870f58285ff579cff8524ed;p=platform%2Fupstream%2Felementary.git diff --git a/configure.ac b/configure.ac index c076de5..f412863 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,7 @@ -EFL_VERSION([1], [11], [99], [dev]) +EFL_VERSION([1], [16], [0], [release]) AC_INIT([elementary], [efl_version], [enlightenment-devel@lists.sourceforge.net]) -AC_PREREQ(2.60) +AC_PREREQ(2.63) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) AC_CANONICAL_BUILD @@ -18,196 +18,202 @@ AH_BOTTOM([ AC_USE_SYSTEM_EXTENSIONS -AM_INIT_AUTOMAKE([1.6 dist-bzip2 dist-xz -Wall]) +AM_INIT_AUTOMAKE([1.11 dist-bzip2 dist-xz -Wall]) m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) +m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) -# pkg-config -PKG_PROG_PKG_CONFIG +LT_INIT([win32-dll disable-static pic-only]) +EFL_INIT -MODULE_EDJE=`pkg-config --variable=module_arch edje` -AC_SUBST(MODULE_EDJE) -AC_DEFINE_UNQUOTED(MODULE_EDJE, "$MODULE_EDJE", "Edje module architecture") -# Needs to be moved into a macro, and also, needs a way to automatically fetch -# from all the dependencies using the Requires. -DEPS_EOLIAN_FLAGS=`pkg-config --variable=eolian_flags eo evas edje ecore efl` -AC_SUBST(DEPS_EOLIAN_FLAGS) +### Additional options to configure + +# C++ bindings + +AC_ARG_ENABLE([cxx-bindings], + [AS_HELP_STRING([--disable-cxx-bindings], + [Disable C++11 bindings. @<:@default=enabled@:>@])], + [want_cxx11="${enableval}"], + [want_cxx11="yes"]) + +# Tests + +AC_ARG_WITH([tests], + [AS_HELP_STRING([--with-tests=none|regular|coverage], + [choose elementary testing method: regular, coverage or none @<:@default=none@:>@])], + [build_tests=${withval}], + [build_tests=auto]) + +want_coverage="no" +want_tests="no" +case "${build_tests}" in + auto) + if test "${build_profile}" = "dev"; then + want_tests="yes" + fi + ;; + regular) + want_tests="yes" + ;; + coverage) + want_tests="yes" + want_coverage="yes" + ;; + no*) + ;; + *) + AC_MSG_ERROR([Unknown build tests option: --with-tests=${build_tests}]) + ;; +esac + +# Elementary base dir + +AC_ARG_WITH([elementary-base-dir], + [AS_HELP_STRING([--with-elementary-base-dir=PATH], [specify the subdirectory for all elementary data @<:@default=${elementary_base_dir}@:>@])], + [elementary_base_dir=${withval}], + [elementary_base_dir=".elementary"]) + +AC_MSG_NOTICE([ELEMENTARY_BASE_DIR set to ${elementary_base_dir}]) +AC_DEFINE_UNQUOTED([ELEMENTARY_BASE_DIR], ["${elementary_base_dir}"], ["subdirectory for all elementary data"]) + +# Build and install examples + +EFL_CHECK_BUILD_EXAMPLES( + [enable_build_examples="yes"], + [enable_build_examples="no"]) + +EFL_CHECK_INSTALL_EXAMPLES( + [enable_install_examples="yes"], + [enable_install_examples="no"]) + +# Debug mode + +AC_ARG_ENABLE([debug], + [AS_HELP_STRING([--enable-debug], [enable elementary debug support. @<:@default=disabled@:>@])], + [want_elementary_debug=$enableval], + [want_elementary_debug="no"]) + +ELM_DEBUG_DEF="#undef" +if test "x$want_elementary_debug" = "xyes"; then + AC_DEFINE([HAVE_ELEMENTARY_DEBUG], [1], [Elementary debug.]) + ELM_DEBUG_DEF="#define" +fi +AC_SUBST([ELM_DEBUG_DEF]) + +# quicklaunch support + +AC_ARG_ENABLE([quick-launch], + [AS_HELP_STRING([--disable-quick-launch], [disable quick-launch support, @<:@default=detect@:>@])], + [want_quicklaunch=$enableval], + [want_quicklaunch="auto"]) + + +### Default options with respect to host and default values + +ELM_VERSION_MAJOR="v_maj" +ELM_VERSION_MINOR="v_min" +AC_SUBST([ELM_VERSION_MAJOR]) +AC_SUBST([ELM_VERSION_MINOR]) + +MODULE_ARCH="v-v_maj.v_min.v_mic" +AC_SUBST([MODULE_ARCH]) +AC_DEFINE_UNQUOTED([MODULE_ARCH], ["$MODULE_ARCH"], ["Module architecture"]) ELM_UNIX_DEF="#undef" ELM_WIN32_DEF="#undef" have_windows="no" -have_dlopen="no" have_freebsd="no" -case "$host_os" in - freebsd*) - have_freebsd="yes" - ;; -esac + case "$host_os" in mingw*) - PKG_CHECK_MODULES([EVIL], [evil]) - AC_DEFINE(HAVE_EVIL, 1, [Set to 1 if evil package is installed.]) + AC_DEFINE([HAVE_EVIL], [1], [Set to 1 if evil package is installed.]) ELM_WIN32_DEF="#define" have_windows="yes" -dnl managed by evil - AC_DEFINE(HAVE_DLADDR) - have_dlopen="yes" - dlopen_libs=-ldl - requirement_elm="evil" - have_socket="no" ;; *solaris*) ELM_UNIX_DEF="#define" - have_socket="yes" - have_dlopen="yes" - AC_CHECK_LIB([socket], [connect], [], [have_socket="no"]) + ;; + freebsd*) + ELM_UNIX_DEF="#define" + have_freebsd="yes" ;; darwin*) ELM_UNIX_DEF="#define" - have_socket="yes" - have_dlopen="yes" - AC_CHECK_HEADERS([crt_externs.h]) - AC_DEFINE([environ], [(*_NSGetEnviron())], ["apple doesn't follow POSIX in this case."]) ;; *) ELM_UNIX_DEF="#define" - AC_CHECK_FUNCS(dlopen, res=yes, res=no) - if test "x$res" = "xyes"; then - AC_CHECK_FUNCS(dladdr, AC_DEFINE(HAVE_DLADDR)) - have_dlopen="yes" - else - AC_CHECK_LIB(dl, dlopen, res=yes, res=no) - AC_CHECK_LIB(m, sincos) - if test "x$res" = "xyes"; then - AC_CHECK_LIB(dl, dladdr, AC_DEFINE(HAVE_DLADDR)) - dlopen_libs=-ldl - have_dlopen="yes" - fi - fi - have_socket="yes" ;; esac -AM_CONDITIONAL([BUILD_RUN], [test "x$have_socket" = "xyes"]) -AM_CONDITIONAL([BUILD_MODULES], [test "x$have_dlopen" = "xyes"]) +AM_CONDITIONAL([ELEMENTARY_WINDOWS_BUILD], [test "x${have_windows}" = "xyes"]) AM_CONDITIONAL([HAVE_FREEBSD], [test "x${have_freebsd}" = "xyes"]) +AC_SUBST([ELM_UNIX_DEF]) +AC_SUBST([ELM_WIN32_DEF]) -EFL_COMPILER_FLAG([-Wall -Wextra -Wpointer-arith -Wno-missing-field-initializers -fvisibility=hidden -fdata-sections -ffunction-sections]) -EFL_LINKER_FLAG([-fvisibility=hidden -fdata-sections -ffunction-sections -Wl,--gc-sections -fno-strict-aliasing -Wl,--as-needed -Wl,--no-copy-dt-needed-entries]) - -m4_ifdef([v_mic], - [ - EFL_COMPILER_FLAG([-Wshadow]) - EFL_COMPILER_FLAG([-Wall]) - EFL_COMPILER_FLAG([-W]) - ]) +### Checks for programs -m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) -LT_INIT([win32-dll disable-static pic-only]) -EFL_INIT - -AC_GNU_SOURCE - -AC_C_BIGENDIAN -AC_ISC_POSIX +# compilers AC_PROG_CC AC_PROG_CC_STDC -AC_HEADER_STDC -AC_C_CONST -AC_FUNC_ALLOCA AC_PROG_CXX -ELM_VERSION_MAJOR="v_maj" -ELM_VERSION_MINOR="v_min" -AC_SUBST(ELM_VERSION_MAJOR) -AC_SUBST(ELM_VERSION_MINOR) - -MODULE_ARCH="v-v_maj.v_min.v_mic" -AC_SUBST(MODULE_ARCH) -AC_DEFINE_UNQUOTED(MODULE_ARCH, "$MODULE_ARCH", "Module architecture") +EFL_CXX_COMPILE_STDCXX_11([ext]) -EFL_SHARED_EXTENSION="${shrext_cmds}" -AC_DEFINE_UNQUOTED(EFL_SHARED_EXTENSION, "${EFL_SHARED_EXTENSION}", "Shared extension") +# pkg-config +PKG_PROG_PKG_CONFIG -requirement_elm="" +# gettext +m4_ifdef([AM_GNU_GETTEXT_VERSION], [ +AM_GNU_GETTEXT_VERSION([0.18]) +]) -# Check whether pkg-config supports Requires.private -if $PKG_CONFIG --atleast-pkgconfig-version 0.22; then - pkgconfig_requires_private="Requires.private" -else - pkgconfig_requires_private="Requires" -fi -AC_SUBST(pkgconfig_requires_private) +m4_ifdef([AM_GNU_GETTEXT], [ +AM_GNU_GETTEXT([external]) +po_makefile_in=po/Makefile.in +have_po="yes" +],[ +have_po="no" +]) +AC_SUBST([LTLIBINTL]) -#================================================ -if test "x${prefix}" = "xNONE"; then - LOCALE_DIR="${ac_default_prefix}/share/locale" -else - LOCALE_DIR="${prefix}/share/locale" +if test "x${POSUB}" = "x" ; then + have_po="no" fi -AC_SUBST(LOCALE_DIR) -#================================================ -elementary_icon_dir="${datadir}/icons" -AC_SUBST(elementary_icon_dir) -have_fork="no" -want_quicklaunch="auto" -AC_ARG_ENABLE([quick-launch], - [AC_HELP_STRING([--disable-quick-launch], [disable quick-launch support, @<:@default=detect@:>@])], - [want_quicklaunch=$enableval], []) +AM_CONDITIONAL([HAVE_PO], [test "x${have_po}" = "xyes"]) -# Check if we can build binary with quicklaunch support -ELM_QUICKLAUNCH +# doxygen +EFL_CHECK_DOXYGEN([build_doc="yes"], [build_doc="no"]) -if test "x$want_quicklaunch" != "xno"; then - AC_CHECK_FUNCS(fork, [ - have_fork="yes" - AC_DEFINE(HAVE_FORK) - ]) - AC_CHECK_FUNCS([clearenv]) -fi -AM_CONDITIONAL([BUILD_QUICKLAUNCH], [test "x$have_fork" = "xyes" && test "x$have_dlopen" = "xyes"]) +# EFL binaries +EFL_WITH_BIN([eet], [eet-eet], [eet]) +EFL_WITH_BIN([edje], [edje-cc], [edje_cc]) +EFL_WITH_BIN([elementary], [elementary-codegen], [elementary_codegen]) +EFL_WITH_BIN([elementary], [elm-prefs-cc], [elm_prefs_cc]) +EFL_WITH_BIN([eolian], [eolian-gen], [eolian_gen]) +EFL_WITH_BIN([eolian-cxx], [eolian-cxx], [eolian_cxx]) +EFL_WITH_BIN([eldbus], [eldbus_codegen], [eldbus-codegen]) +# Force the helper to try external eolian generators +AM_CONDITIONAL([HAVE_EOLIAN_GEN], [true]) +AM_CONDITIONAL([HAVE_EOLIAN_CXX], [true]) -AC_CHECK_FUNCS([\ -geteuid \ -getuid \ -]) +EFL_ENABLE_BIN([elementary-test]) +EFL_ENABLE_BIN([elementary-codegen]) +EFL_ENABLE_BIN([elm-prefs-cc]) +EFL_ENABLE_BIN([elementary-config]) -AC_SUBST(dlopen_libs) -AC_SUBST(ELM_UNIX_DEF) -AC_SUBST(ELM_WIN32_DEF) -AM_CONDITIONAL([ELEMENTARY_WINDOWS_BUILD], [test "x${have_windows}" = "xyes"]) +### Checks for libraries -PKG_CHECK_MODULES([ELEMENTARY], - [ - efl >= efl_version - eina >= efl_version - eet >= efl_version - evas >= efl_version - ecore >= efl_version - ecore-evas >= efl_version - ecore-file >= efl_version - ecore-input >= efl_version - edje >= efl_version - eo >= efl_version - ethumb_client >= efl_version - emotion >= efl_version - ecore-imf >= efl_version - ecore-con >= efl_version - eio >= efl_version - eldbus >= efl_version - efreet >= efl_version - efreet-mime >= efl_version - efreet-trash >= efl_version - eio >= efl_version - ] -) +requirement_elm_pc="" -EFL_ENABLE_EO_API_SUPPORT -EFL_ENABLE_BETA_API_SUPPORT +case "$host_os" in + mingw*) + requirement_elm_pc="evil >= efl_version" + ;; +esac -requirement_elm="\ +requirement_elm_pc_only="\ efl >= efl_version \ eina >= efl_version \ eet >= efl_version \ @@ -230,29 +236,56 @@ requirement_elm="\ eio >= efl_version \ " -EFL_CXX_COMPILE_STDCXX_11([ext]) -want_cxx11="yes" -AC_ARG_ENABLE([cxx-bindings], - [AC_HELP_STRING([--disable-cxx-bindings], - [disable C++11 bindings. @<:@default=enabled@:>@])], - [want_cxx11="${enableval}"]) +requirement_elm_pc="\ + ${requirement_elm_pc} \ + ${requirement_elm_pc_only} \ + " + +ELM_CHECK_BACKEND([X]) +ELM_CHECK_BACKEND([FB]) +ELM_CHECK_BACKEND([PSL1GHT]) +ELM_CHECK_BACKEND([SDL]) +ELM_CHECK_BACKEND([Cocoa]) +ELM_CHECK_BACKEND([Win32]) +ELM_CHECK_BACKEND([Wayland]) +ELM_CHECK_BACKEND([DRM]) + +ELM_CHECK_OPTION([elocation], [0.1.0]) +ELM_CHECK_OPTION([eweather], [0.2.0]) +# emap is in svn : trunk/PROTO +ELM_CHECK_OPTION([emap], [0.1.0]) +ELM_CHECK_OPTION([eweb]) + +PKG_CHECK_MODULES([ELEMENTARY], [${requirement_elm_pc}]) +PKG_CHECK_MODULES([ELEMENTARY_PC], [${requirement_elm_pc_only}]) + +EFL_ENABLE_EO_API_SUPPORT +EFL_ENABLE_BETA_API_SUPPORT + if test "x${HAVE_CXX11}" = "x1" -a "x${want_cxx11}" = "xyes"; then PKG_CHECK_MODULES([ELEMENTARY_CXX], [ + efl-cxx >= efl_version eo-cxx >= efl_version eina-cxx >= efl_version evas-cxx >= efl_version + eio-cxx >= efl_version + edje-cxx >= efl_version ], [ - requirement_elm="${requirement_elm} \ + requirement_elm_pc="${requirement_elm_pc} \ + efl-cxx >= efl_version \ eo-cxx >= efl_version \ eina-cxx >= efl_version \ evas-cxx >= efl_version \ + eio-cxx >= efl_version \ + edje-cxx >= efl_version \ " have_cxx11="yes" LDFLAGS="${LDFLAGS} -fPIC -DPIC" CXXFLAGS="${CXXFLAGS} -fPIC -DPIC" + AC_CONFIG_FILES([src/lib/Elementary.hh]) ], [have_cxx11="no"] ) @@ -261,437 +294,207 @@ else fi AM_CONDITIONAL([HAVE_CXX11], [test "x${have_cxx11}" = "xyes"]) -have_elementary_x="no" -want_elementary_x="auto" -AC_ARG_ENABLE([ecore-x], - [AC_HELP_STRING([--disable-ecore-x], [disable ecore-x support. @<:@default=detect@:>@])], - [want_elementary_x=$enableval], []) -if test "x$want_elementary_x" != "xno"; then - PKG_CHECK_MODULES([ELEMENTARY_X], - [ecore-x >= efl_version], - [ - AC_DEFINE(HAVE_ELEMENTARY_X, 1, [X11 support for Elementary]) - have_elementary_x="yes" - requirement_elm="ecore-x >= efl_version ${requirement_elm}" - ], - [have_elementary_x="no"] - ) -else - have_elementary_x="no" -fi -if test "x$want_elementary_x" = "xyes" -a "x$have_elementary_x" = "xno"; then - AC_MSG_ERROR([ecore-x support requested, but ecore-x was not found by pkg-config.]) -fi +MODULE_EDJE=`${PKG_CONFIG} --variable=module_arch edje` +AC_SUBST([MODULE_EDJE]) +AC_DEFINE_UNQUOTED([MODULE_EDJE], ["$MODULE_EDJE"], ["Edje module architecture"]) +# Needs to be moved into a macro, and also, needs a way to automatically fetch +# from all the dependencies using the Requires. +DEPS_EOLIAN_FLAGS=`${PKG_CONFIG} --variable=eolian_flags eo evas edje ecore efl` +AC_SUBST([DEPS_EOLIAN_FLAGS]) -have_elementary_fb="no" -want_elementary_fb="auto" -AC_ARG_ENABLE([ecore-fb], - [AC_HELP_STRING([--disable-ecore-fb], [disable ecore-fb support. @<:@default=detect@:>@])], - [want_elementary_fb=$enableval], []) +requirement_elm_libs="-lm" -if test "x$want_elementary_fb" != "xno"; then - PKG_CHECK_MODULES([ELEMENTARY_FB], - [ecore-fb >= efl_version], - [ - AC_DEFINE(HAVE_ELEMENTARY_FB, 1, [FB support for Elementary]) - have_elementary_fb="yes" - requirement_elm="ecore-fb >= efl_version ${requirement_elm}" - ], - [have_elementary_fb="no"] - ) -else - have_elementary_fb="no" -fi -if test "x$want_elementary_fb" = "xyes" -a "x$have_elementary_fb" = "xno"; then - AC_MSG_ERROR([ecore-fb support requested, but ecore-fb was not found by pkg-config.]) -fi +# sockets + +case "$host_os" in + mingw*) + have_socket="no" + ;; + *solaris*) + AC_CHECK_LIB([socket], [connect], + [ + have_socket="yes" + requirement_elm_libs="-lsocket ${requirement_elm_libs}" + ], + [have_socket="no"]) + ;; + darwin*) + have_socket="yes" + ;; + *) + have_socket="yes" + ;; +esac -have_elementary_psl1ght="no" -want_elementary_psl1ght="auto" -AC_ARG_ENABLE([ecore-psl1ght], - [AC_HELP_STRING([--disable-ecore-psl1ght], [disable ecore-psl1ght support. @<:@default=detect@:>@])], - [want_elementary_psl1ght=$enableval], []) +AM_CONDITIONAL([BUILD_RUN], [test "x$have_socket" = "xyes"]) -if test "x$want_elementary_psl1ght" != "xno"; then - PKG_CHECK_MODULES([ELEMENTARY_PSL1GHT], - [ecore-psl1ght >= efl_version], - [ - AC_DEFINE(HAVE_ELEMENTARY_PSL1GHT, 1, [PSL1GHT support for Elementary]) - have_elementary_psl1ght="yes" - requirement_elm="ecore-psl1ght >= efl_version ${requirement_elm}" - ], - [have_elementary_psl1ght="no"] - ) -else - have_elementary_psl1ght="no" -fi -if test "x$want_elementary_psl1ght" = "xyes" -a "x$have_elementary_psl1ght" = "xno"; then - AC_MSG_ERROR([ecore-psl1ght support requested, but ecore-psl1ght was not found by pkg-config.]) -fi +# dlopen -have_elementary_sdl="no" -want_elementary_sdl="auto" -AC_ARG_ENABLE([ecore-sdl], - [AC_HELP_STRING([--disable-ecore-sdl], [disable ecore-sdl support. @<:@default=detect@:>@])], - [want_elementary_sdl=$enableval], []) +have_dlopen="no" +case "$host_os" in + mingw*) +dnl managed by evil + AC_DEFINE([HAVE_DLADDR], [1], [Define to 1 if you have the `dladdr' function.]) + have_dlopen="yes" + requirement_elm_libs="-ldl ${requirement_elm_libs}" + ;; + linux*) + AC_CHECK_LIB([dl], [dlopen], [res=yes], [res=no]) + if test "x$res" = "xyes"; then + AC_CHECK_LIB([dl], [dladdr], AC_DEFINE([HAVE_DLADDR], [1], [Define to 1 if you have the `dladdr' function.])) + requirement_elm_libs="-ldl ${requirement_elm_libs}" + have_dlopen="yes" + fi + ;; + *) + have_dlopen="yes" + ;; +esac -if test "x$want_elementary_sdl" != "xno"; then - PKG_CHECK_MODULES([ELEMENTARY_SDL], - [ecore-sdl >= efl_version], - [ - AC_DEFINE(HAVE_ELEMENTARY_SDL, 1, [SDL support for Elementary]) - have_elementary_sdl="yes" - requirement_elm="ecore-sdl >= efl_version ${requirement_elm}" - ], - [have_elementary_sdl="no"] - ) -else - have_elementary_sdl="no" -fi -if test "x$want_elementary_sdl" = "xyes" -a "x$have_elementary_sdl" = "xno"; then - AC_MSG_ERROR([ecore-sdl support requested, but ecore-sdl was not found by pkg-config.]) -fi +AM_CONDITIONAL([BUILD_MODULES], [test "x$have_dlopen" = "xyes"]) -have_elementary_cocoa="no" -want_elementary_cocoa="auto" -AC_ARG_ENABLE([ecore-cocoa], - [AC_HELP_STRING([--disable-ecore-cocoa], [disable ecore-cocoa support. @<:@default=detect@:>@])], - [want_elementary_cocoa=$enableval], []) +ELEMENTARY_LIBS="${ELEMENTARY_LIBS} ${requirement_elm_libs}" +ELEMENTARY_PC_LIBS="${ELEMENTARY_PC_LIBS} ${requirement_elm_libs}" -if test "x$want_elementary_cocoa" != "xno"; then - PKG_CHECK_MODULES([ELEMENTARY_COCOA], - [ecore-cocoa >= efl_version], - [ - AC_DEFINE(HAVE_ELEMENTARY_COCOA, 1, [COCOA support for Elementary]) - have_elementary_cocoa="yes" - requirement_elm="ecore-cocoa >= efl_version ${requirement_elm}" - ], - [have_elementary_cocoa="no"] - ) -else - have_elementary_cocoa="no" +AC_SUBST([requirement_elm_pc]) + +# check unit testing library +if test "${want_tests}" = "yes"; then + PKG_CHECK_MODULES([CHECK], [check >= 0.9.5]) fi -if test "x$want_elementary_cocoa" = "xyes" -a "x$have_elementary_cocoa" = "xno"; then - AC_MSG_ERROR([ecore-cocoa support requested, but ecore-cocoa was not found by pkg-config.]) +AM_CONDITIONAL([ELEMENTARY_ENABLE_TESTS], [test "${want_tests}" = "yes"]) + +# lcov +if test "${want_coverage}" = "yes" ; then + AC_CHECK_PROG([have_lcov], [lcov], [yes], [no]) + if test "x${have_lcov}" = "xyes" ; then + ELEMENTARY_CFLAGS="${ELEMENTARY_CFLAGS} -fprofile-arcs -ftest-coverage" + ELEMENTARY_LIBS="${ELEMENTARY_LIBS} -lgcov" + if test "x${prefer_assert}" = "xno"; then + ELEMENTARY_CFLAGS="${ELEMENTARY_CFLAGS} -DNDEBUG" + else + ELEMENTARY_CFLAGS="${ELEMENTARY_CFLAGS} -g -O0 -DDEBUG" + fi + else + AC_MSG_ERROR([lcov is not found]) + fi fi -have_elementary_win32="no" -want_elementary_win32="auto" -AC_ARG_ENABLE([ecore-win32], - [AC_HELP_STRING([--disable-ecore-win32], [disable ecore-win32 support. @<:@default=detect@:>@])], - [want_elementary_win32=$enableval], []) +AM_CONDITIONAL([ELEMENTARY_ENABLE_COVERAGE], [test "${want_coverage}" = "yes"]) -if test "x$want_elementary_win32" != "xno"; then - PKG_CHECK_MODULES([ELEMENTARY_WIN32], - [ecore-win32 >= efl_version], - [ - AC_DEFINE(HAVE_ELEMENTARY_WIN32, 1, [Windows XP support for Elementary]) - have_elementary_win32="yes" - requirement_elm="ecore-win32 >= efl_version ${requirement_elm}" - ], - [have_elementary_win32="no"] - ) -else - have_elementary_win32="no" -fi -if test "x$want_elementary_win32" = "xyes" -a "x$have_elementary_win32" = "xno"; then - AC_MSG_ERROR([ecore-win32 support requested, but ecore-win32 was not found by pkg-config.]) -fi -have_elementary_wayland="no" -want_elementary_wayland="auto" -AC_ARG_ENABLE([ecore-wayland], - [AC_HELP_STRING([--disable-ecore-wayland], [disable ecore-wayland support. @<:@default=detect@:>@])], - [want_elementary_wayland=$enableval], []) +### Checks for header files -if test "x$want_elementary_wayland" != "xno"; then - PKG_CHECK_MODULES([ELEMENTARY_WAYLAND], - [ecore-wayland], - [ - AC_DEFINE(HAVE_ELEMENTARY_WAYLAND, 1, [Wayland support for Elementary]) - have_elementary_wayland="yes" - requirement_elm="ecore-wayland ${requirement_elm}" - ], - [have_elementary_wayland="no"] - ) -else - have_elementary_wayland="no" -fi -if test "x$want_elementary_wayland" = "xyes" -a "x$have_elementary_wayland" = "xno"; then - AC_MSG_ERROR([ecore-wayland support requested, but ecore-wayland was not found by pkg-config.]) +# Check for ttrace +PKG_CHECK_MODULES(TTRACE, + [ttrace], + [have_ttrace="yes"], [have_ttrace="no"]) +if test "x$have_ttrace" = "xyes"; then + AC_DEFINE(ENABLE_TTRACE, 1, [ttrace available]) fi -have_elementary_drm="no" -want_elementary_drm="auto" -AC_ARG_ENABLE([ecore-drm], - [AC_HELP_STRING([--disable-ecore-drm], [disable ecore-drm support. @<:@default=detect@:>@])], - [want_elementary_drm=$enableval], []) +ELM_ALLOCA_H_DEF="#undef" +AC_CHECK_HEADER([alloca.h], [ELM_ALLOCA_H_DEF="#define"]) +AC_SUBST([ELM_ALLOCA_H_DEF]) -if test "x$want_elementary_drm" != "xno"; then - PKG_CHECK_MODULES([ELEMENTARY_DRM], - [ecore-drm >= efl_version], - [ - AC_DEFINE(HAVE_ELEMENTARY_DRM, 1, [DRM support for Elementary]) - have_elementary_drm="yes" - requirement_elm="ecore-drm >= efl_version ${requirement_elm}" - ], - [have_elementary_drm="no"] - ) -else - have_elementary_drm="no" -fi -if test "x$want_elementary_drm" = "xyes" -a "x$have_elementary_drm" = "xno"; then - AC_MSG_ERROR([ecore-drm support requested, but ecore-drm was not found by pkg-config.]) -fi +ELM_LIBINTL_H_DEF="#undef" +AC_CHECK_HEADER([libintl.h], [ELM_LIBINTL_H_DEF="#define"]) +AC_SUBST([ELM_LIBINTL_H_DEF]) +ELM_DIRENT_H_DEF="#undef" +AC_CHECK_HEADER([dirent.h], [ELM_DIRENT_H_DEF="#define"]) +AC_SUBST([ELM_DIRENT_H_DEF]) -ELM_ELOCATION_DEF="#undef" -have_elementary_elocation="no" -want_elementary_elocation="auto" -AC_ARG_ENABLE([elocation], - [AC_HELP_STRING([--disable-elocation], [disable elocation support. @<:@default=detect@:>@])], - [want_elementary_elocation=$enableval], []) - -if test "x$want_elementary_elocation" != "xno"; then - PKG_CHECK_MODULES([ELEMENTARY_ELOCATION], - [ - elocation >= 0.1.0 - ], - [ - AC_DEFINE(HAVE_ELEMENTARY_ELOCATION, 1, [Elocation support for Elementary]) - have_elementary_elocation="yes" - ELM_ELOCATION_DEF="#define" - requirement_elm="elocation >= 0.1.0 ${requirement_elm}" - ], - [have_elementary_elocation="no"] - ) -else - have_elementary_elocation="no" -fi -if test "x$want_elementary_elocation" = "xyes" -a "x$have_elementary_elocation" = "xno"; then - AC_MSG_ERROR([elocation support requested, but elocation was not found by pkg-config.]) -fi -AC_SUBST(ELM_ELOCATION_DEF) - -ELM_EWEATHER_DEF="#undef" -have_elementary_eweather="no" -want_elementary_eweather="auto" -AC_ARG_ENABLE([eweather], - [AC_HELP_STRING([--disable-eweather], [disable eweather support. @<:@default=detect@:>@])], - [want_elementary_eweather=$enableval], []) - -if test "x$want_elementary_eweather" != "xno"; then - PKG_CHECK_MODULES([ELEMENTARY_EWEATHER], - [ - eweather - ], - [ - AC_DEFINE(HAVE_ELEMENTARY_EWEATHER, 1, [EWeather support for Elementary]) - have_elementary_eweather="yes" - ELM_EWEATHER_DEF="#define" - requirement_elm="eweather ${requirement_elm}" - ], - [have_elementary_eweather="no"] - ) -else - have_elementary_eweather="no" -fi -if test "x$want_elementary_eweather" = "xyes" -a "x$have_elementary_eweather" = "xno"; then - AC_MSG_ERROR([Eweather support requested, but eweather was not found by pkg-config.]) -fi -AC_SUBST(ELM_EWEATHER_DEF) - -ELM_EMAP_DEF="#undef" -have_elementary_emap="no" -want_elementary_emap="auto" -AC_ARG_ENABLE([emap], - [AC_HELP_STRING([--disable-emap], [disable emap support. @<:@default=detect@:>@])], - [want_elementary_emap=$enableval], []) - -if test "x$want_elementary_emap" != "xno"; then - PKG_CHECK_MODULES([ELEMENTARY_EMAP], - [ - emap - ], - [ - AC_DEFINE(HAVE_ELEMENTARY_EMAP, 1, [EMap support for Elementary]) - have_elementary_emap="yes" - ELM_EMAP_DEF="#define" - requirement_elm="emap ${requirement_elm}" - ], - [have_elementary_emap="no"] - ) -else - have_elementary_emap="no" -fi -if test "x$want_elementary_emap" = "xyes" -a "x$have_elementary_emap" = "xno"; then - AC_MSG_ERROR([Emap support requested, but emap was not found by pkg-config.]) +AC_CHECK_HEADER([sys/mman.h], [have_mman="yes"], [have_mman="no"]) +if test "x${have_mman}" = "xyes"; then + AC_DEFINE([HAVE_MMAN_H], [1], [Have sys/mman.h header file]) fi -AC_SUBST(ELM_EMAP_DEF) - -ELM_WEB2_DEF="#undef" -elementary_web_backend="detect" -elementary_web="no" -want_elementary_web="" -AC_ARG_WITH([elementary-web-backend], - [AC_HELP_STRING([--with-elementary-web-backend=@<:@ewebkit2/detect/none@:>@], [Select the WebKit backend for Elementary to support web @<:@default=detect@:>@])], - [ - elementary_web_backend=${withval} - ], - [elementary_web_backend="detect"]) +AC_CHECK_HEADERS([locale.h langinfo.h sys/times.h]) -case "$elementary_web_backend" in - ewebkit2|detect|none) ;; - *) AC_MSG_ERROR([Invalid web backend: must be ewebkit2, detect or none]) ;; +case "$host_os" in + darwin*) + AC_CHECK_HEADERS([crt_externs.h]) + ;; esac -if test "x$elementary_web_backend" = "xdetect"; then - want_elementary_web="ewebkit2" -else - want_elementary_web=$elementary_web_backend -fi - -if test "x$want_elementary_web" != "xnone"; then - PKG_CHECK_MODULES([ELEMENTARY_WEB], - [$want_elementary_web], - [ - AC_DEFINE(HAVE_ELEMENTARY_WEB, 1, [Web support for Elementary]) - webkit_datadir=$($PKG_CONFIG $want_elementary_web --variable=datadir) - AC_DEFINE_UNQUOTED(WEBKIT_DATADIR, - "$webkit_datadir", - "WebKit's data dir") - ELM_WEB2_DEF="#define" -o - elementary_web=$want_elementary_web - requirement_elm="${want_elementary_web} ${requirement_elm}" - ], - [elementary_web="no"] - ) -else - elementary_web="no" -fi -if test "x$elementary_web_backend" = "xewebkit2"; then - if test "x$elementary_web" = "xnone"; then - AC_MSG_ERROR([Web support requested, but no $elementary_web_backend found by pkg-config.]) - fi -fi -AC_SUBST(ELM_WEB2_DEF) +### Checks for types -ELM_DEBUG_DEF="#undef" -want_elementary_debug="no" -AC_ARG_ENABLE([debug], - [AC_HELP_STRING([--enable-debug], [enable elementary debug support. @<:@default=disabled@:>@])], - [want_elementary_debug=$enableval], []) -if test "x$want_elementary_debug" = "xyes"; then - AC_DEFINE(HAVE_ELEMENTARY_DEBUG, 1, [Elementary debug.]) - ELM_DEBUG_DEF="#define" -fi -AC_SUBST(ELM_DEBUG_DEF) +### Checks for structures -AC_ARG_WITH([tests], - [AC_HELP_STRING([--with-tests=none|regular], - [choose elementary testing method: regular or none.(coverage will be supported)@<:@default=none@:>@])], - [build_tests=${withval}], - [build_tests=none]) -if test "${build_tests}" = "regular"; then - PKG_CHECK_MODULES([CHECK], [check >= 0.9.5]) -fi -AM_CONDITIONAL([ENABLE_ELEMENTARY_TESTS], [test "${build_tests}" = "regular"]) +### Checks for compiler characteristics -ELM_ALLOCA_H_DEF="#undef" -AC_CHECK_HEADER(alloca.h, [ELM_ALLOCA_H_DEF="#define"]) -AC_SUBST(ELM_ALLOCA_H_DEF) +AC_C_BIGENDIAN -ELM_LIBINTL_H_DEF="#undef" -AC_CHECK_HEADER(libintl.h, [ELM_LIBINTL_H_DEF="#define"]) -AC_SUBST(ELM_LIBINTL_H_DEF) +m4_ifdef([v_mic], + [ + EFL_COMPILER_FLAG([-Wshadow]) + EFL_COMPILER_FLAG([-Wall]) + EFL_COMPILER_FLAG([-W]) + ]) -ELM_DIRENT_H_DEF="#undef" -AC_CHECK_HEADER(dirent.h, [ELM_DIRENT_H_DEF="#define"]) -AC_SUBST(ELM_DIRENT_H_DEF) +EFL_COMPILER_FLAG([-Wall -Wextra -Wpointer-arith -Wno-missing-field-initializers -fvisibility=hidden -fdata-sections -ffunction-sections]) -AC_CHECK_HEADER(sys/mman.h, [have_mman="yes"], [have_mman="no"]) -if test "x${have_mman}" = "xyes"; then - AC_DEFINE(HAVE_MMAN_H, 1, [Have sys/mman.h header file]) -fi +EFL_CHECK_PATH_MAX -AC_CHECK_HEADERS([locale.h langinfo.h sys/times.h]) -my_libs="-lm" -AC_SUBST(my_libs) -AC_SUBST(requirement_elm) +### Checks for linker characteristics +EFL_LINKER_FLAG([-fvisibility=hidden -fdata-sections -ffunction-sections -Wl,--gc-sections -fno-strict-aliasing -Wl,--as-needed -Wl,--no-copy-dt-needed-entries]) -EFL_WITH_BIN([eet], [eet-eet], [eet]) -EFL_WITH_BIN([edje], [edje-cc], [edje_cc]) -EFL_WITH_BIN([elementary], [elementary-codegen], [elementary_codegen]) -EFL_WITH_BIN([elementary], [elm-prefs-cc], [elm_prefs_cc]) -EFL_WITH_BIN([eolian], [eolian-gen], [eolian_gen]) -EFL_WITH_BIN([eolian-cxx], [eolian-cxx], [eolian_cxx]) -# Force the helper to try external eolian generators -AM_CONDITIONAL(HAVE_EOLIAN_GEN, [true]) -AM_CONDITIONAL(HAVE_EOLIAN_CXX, [true]) +# Check if we can build binary with quicklaunch support +ELM_QUICKLAUNCH -EFL_CHECK_DOXYGEN([build_doc="yes"], [build_doc="no"]) -EFL_ENABLE_BIN([elementary-test]) -EFL_ENABLE_BIN([elementary-codegen]) -EFL_ENABLE_BIN([elm-prefs-cc]) -EFL_ENABLE_BIN([elementary-config]) +### Checks for library functions -m4_ifdef([AM_GNU_GETTEXT_VERSION], [ -AM_GNU_GETTEXT_VERSION([0.17]) -]) +AC_FUNC_ALLOCA -m4_ifdef([AM_GNU_GETTEXT], [ -AM_GNU_GETTEXT([external]) -po_makefile_in=po/Makefile.in -have_po="yes" -],[ -have_po="no" -]) -AC_SUBST(LTLIBINTL) +AC_CHECK_FUNCS([geteuid getuid getpwent]) -if test "x${POSUB}" = "x" ; then - have_po="no" +if test "x${want_quicklaunch}" != "xno"; then + AC_CHECK_FUNCS([fork clearenv]) fi -AM_CONDITIONAL([HAVE_PO], [test "x${have_po}" = "xyes"]) - -EFL_CHECK_PATH_MAX +if test "x${have_dlopen}" = "xno"; then + AC_CHECK_FUNCS([dlopen dladdr]) +fi -elementary_base_dir=".elementary" -AC_ARG_WITH([elementary-base-dir], - [AC_HELP_STRING([--with-elementary-base-dir=PATH], [specify the subdirectory for all elementary data @<:@default=${elementary_base_dir}@:>@])], - [elementary_base_dir=${withval}], - [elementary_base_dir=".elementary"]) +if test "x${ac_cv_func_dlopen}" = "xyes"; then + have_dlopen="yes" +fi -AC_MSG_NOTICE([ELEMENTARY_BASE_DIR set to ${elementary_base_dir}]) -AC_DEFINE_UNQUOTED(ELEMENTARY_BASE_DIR, "${elementary_base_dir}", "subdirectory for all elementary data") +AM_CONDITIONAL([BUILD_QUICKLAUNCH], [test "x${ac_cv_func_fork}" = "xyes" && test "x${have_dlopen}" = "xyes"]) -### Build and install examples -EFL_CHECK_BUILD_EXAMPLES([enable_build_examples="yes"], [enable_build_examples="no"]) -EFL_CHECK_INSTALL_EXAMPLES([enable_install_examples="yes"], [enable_install_examples="no"]) +# environ variable -AC_TRY_COMPILE([ +AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ # define _GNU_SOURCE 1 #include -], [ + ]], + [[ extern char **environ; -], [ - AC_DEFINE(HAVE_ENVIRON, 1, [extern environ exists]) -]) + ]]) + ], + [AC_DEFINE([HAVE_ENVIRON], [1], [extern environ exists])]) + +case "$host_os" in + darwin*) + AC_DEFINE([environ], [(*_NSGetEnviron())], ["apple doesn't follow POSIX in this case."]) + ;; +esac + AC_CONFIG_FILES([ Makefile elementary.spec -elementary.pc doc/Makefile doc/Doxyfile doc/widgets/Makefile @@ -703,11 +506,14 @@ src/bin/Makefile src/modules/Makefile src/modules/prefs/Makefile src/modules/access_output/Makefile +src/modules/copypasteUI_ctxpopup/Makefile src/modules/datetime_input_ctxpopup/Makefile src/modules/test_entry/Makefile src/modules/test_map/Makefile src/edje_externals/Makefile src/examples/Makefile +src/examples/sphere_hunter/Makefile +src/examples/performance/Makefile src/tests/Makefile src/imported/Makefile src/imported/atspi/Makefile @@ -757,7 +563,7 @@ echo " Features:" echo " EWeather...............: ${have_elementary_eweather}" echo " EMap...................: ${have_elementary_emap}" echo " Web (WebKit)...........: ${elementary_web}" -echo " Quick Launch...........: ${have_fork}" +echo " Quick Launch...........: ${ac_cv_func_fork}" echo " Elocation..............: ${have_elementary_elocation}" echo echo " eet......................: ${eet_eet}" @@ -766,6 +572,7 @@ echo " elementary_codegen.......: ${elementary_codegen}" echo " elm_prefs_cc.............: ${elm_prefs_cc}" echo " eolian_gen...............: ${eolian_gen}" echo " eolian_cxx...............: ${eolian_cxx}" +echo " eldbus_codegen...........: ${eldbus_codegen}" echo echo " Build elementary_test....: ${have_elementary_test}" echo " Build elementary_codegen.: ${have_elementary_codegen}"