efl: introduce build profile, simplify options.

Introduced --with-profile={dev,release} that will simplify how to set
build options of EFL.

NOTE-1: specific e17 benchmark is now gone, it will always be built
and is the default benchmark for eina. If we want to have a faster
benchmark in the future, just add a command line option for
eina_suite.

NOTE-2: valgrind build is broken as it needs -fPIC. Will get to it
later. Likely someone needs to revisit the eina mempools for valgrind
and other basic tools (eo? likely evas).



SVN revision: 77771
This commit is contained in:
Gustavo Sverzut Barbieri 2012-10-10 18:43:15 +00:00
parent b82e878656
commit 0b19ba7bc2
5 changed files with 38 additions and 156 deletions

View File

@ -110,11 +110,6 @@ benchmark:
@mkdir benchmark || true
@cd benchmark && ../src/benchmarks/eo/eo_bench$(EXEEXT) `date +%F_%s`
benchmark-e17:
@$(MAKE) $(AM_MAKEFLAGS) -C src benchmark-e17
@mkdir benchmark || true
@cd benchmark && ../src/benchmarks/eina/eina_bench$(EXEEXT) `date +%F_%s`
# examples
examples:

View File

@ -85,6 +85,13 @@ AC_SUBST([requirements_pc_eet])
AC_CANONICAL_HOST
AC_ARG_WITH([profile],
[AC_HELP_STRING([--with-profile=PROFILE],
[use the predefined build profile, one of: dev, release.
@<:@default=dev@:>@])],
[build_profile=${withval}],
[build_profile=dev])
# TODO: move me to m4 file that setups module/so related variables
have_wince="no"
have_win32="no"
@ -123,21 +130,6 @@ AM_CONDITIONAL([HAVE_WINDOWS], [test "x${have_windows}" = "xyes"])
#### Additional options to configure
# Assert or fail.
AC_ARG_ENABLE([assert],
[AC_HELP_STRING([--enable-assert], [enable assert, @<:@default=no@:>@])],
[
if test "x${enableval}" = "xyes" ; then
prefer_assert="yes"
else
prefer_assert="no"
fi
],
[prefer_assert="no"])
#### Checks for programs
### libtool
@ -300,41 +292,30 @@ AC_MSG_NOTICE([Eina checks])
### Additional options to configure
# Magic debug
AC_ARG_ENABLE([magic-debug],
[AC_HELP_STRING([--disable-magic-debug], [disable magic debug of eina structure @<:@default=enabled@:>@])],
[
if test "x${enableval}" = "xyes" ; then
have_magic_debug="yes"
else
have_magic_debug="no"
fi
],
[have_magic_debug="yes"])
have_safety_checks="yes"
want_log="yes"
case "$build_profile" in
dev)
with_max_log_level=""
have_stringshare_usage="yes"
want_valgrind="no" # TODO: "yes" is not working: relocation R_X86_64_32S against `vgPlain_interim_stack' can not be used when making a shared object; recompile with -fPIC
want_debug_malloc="yes"
;;
AC_MSG_CHECKING([whether magic debug is enable])
AC_MSG_RESULT([${have_magic_debug}])
release)
with_max_log_level="3"
have_stringshare_usage="no"
want_valgrind="no"
want_debug_malloc="no"
;;
esac
if test "x${have_magic_debug}" = "xyes" ; then
EINA_CONFIGURE_MAGIC_DEBUG="#define EINA_MAGIC_DEBUG"
fi
AC_SUBST([EINA_CONFIGURE_MAGIC_DEBUG])
# Safety checks (avoid crashes on wrong api usage)
AC_ARG_ENABLE([safety-checks],
[AC_HELP_STRING([--disable-safety-checks], [disable safety checks for NULL pointers and like. @<:@default=enabled@:>@])],
[
if test "x${enableval}" = "xyes" ; then
have_safety_checks="yes"
else
have_safety_checks="no"
fi
],
[have_safety_checks="yes"])
AC_MSG_CHECKING([whether to do safety checking on api parameters])
AC_MSG_RESULT([${have_safety_checks}])
if test "x${have_safety_checks}" = "xyes" ; then
AC_DEFINE([EINA_SAFETY_CHECKS], [1], [disable safety checks for NULL pointers and like.])
EINA_CONFIGURE_SAFETY_CHECKS="#define EINA_SAFETY_CHECKS"
@ -343,23 +324,14 @@ AC_SUBST([EINA_CONFIGURE_SAFETY_CHECKS])
AM_CONDITIONAL([SAFETY_CHECKS], [test "x$have_safety_checks" = "xyes"])
# Miximum log level
with_max_log_level="<unset>"
AC_ARG_WITH([internal-maximum-log-level],
[AC_HELP_STRING([--with-internal-maximum-log-level=NUMBER],
[limit eina internal log level to the given number, any call to EINA_LOG() with values greater than this will be compiled out, ignoring runtime settings, but saving function calls.])],
[
if test "x${withval}" != "xno" ; then
if echo "${withval}" | grep -E '^[[0-9]]+$' >/dev/null 2>/dev/null; then
AC_MSG_NOTICE([ignoring any EINA_LOG() with level greater than ${withval}])
AC_DEFINE_UNQUOTED([EINA_LOG_LEVEL_MAXIMUM], [${withval}], [if set, logging is limited to this amount.])
with_max_log_level="${withval}"
else
AC_MSG_ERROR([--with-internal-maximum-log-level takes a decimal number, got "${withval}" instead.])
if test -n "$with_max_log_level"; then
AC_MSG_NOTICE([ignoring any EINA_LOG() with level greater than ${with_max_log_level}])
AC_DEFINE_UNQUOTED([EINA_LOG_LEVEL_MAXIMUM], [${with_max_log_level}], [if set, logging is limited to this amount.])
fi
if test "x${have_stringshare_usage}" = "xyes"; then
AC_DEFINE([EINA_STRINGSHARE_USAGE], [1], [Report Eina stringshare usage pattern])
fi
],
[:])
# Choose best memory pool
AC_ARG_ENABLE([default-mempool],
@ -381,58 +353,6 @@ if test "x${have_default_mempool}" = "xyes" ; then
fi
AC_SUBST([EINA_CONFIGURE_DEFAULT_MEMPOOL])
# Report stringshare usage
AC_ARG_ENABLE([stringshare-usage],
[AC_HELP_STRING([--enable-stringshare-usage], [Report stringshare usage on stringshare shutdown. @<:@default=disabled@:>@])],
[
if test "x${enableval}" = "xyes"; then
have_stringshare_usage="yes"
else
have_stringshare_usage="no"
fi
],
[have_stringshare_usage="no"]
)
AC_MSG_CHECKING([whether to report stringshare usage])
AC_MSG_RESULT([${have_stringshare_usage}])
if test "x${have_stringshare_usage}" = "xyes"; then
AC_DEFINE([EINA_STRINGSHARE_USAGE], [1], [Report Eina stringshare usage pattern])
fi
# Check if we want to benchmark on real data
AC_ARG_ENABLE([e17],
[AC_HELP_STRING([--enable-e17], [enable heavy benchmark @<:@default=no@:>@])],
[
if test "x${enableval}" = "xyes" ; then
enable_benchmark_e17="yes"
else
enable_benchmark_e17="no"
fi
],
[enable_benchmark_e17="no"])
AC_MSG_CHECKING([whether e17 real data benchmark are built])
AC_MSG_RESULT([${enable_benchmark_e17}])
AM_CONDITIONAL([EINA_ENABLE_BENCHMARK_E17], [test "x${enable_benchmark_e17}" = "xyes"])
# Valgrind
AC_ARG_ENABLE([valgrind],
[AC_HELP_STRING([--enable-valgrind], [improve valgrind support by hinting it of our memory usages, having it to report proper mempool leaks. @<:@default=no@:>@])],
[
if test "x${enableval}" = "xyes" ; then
want_valgrind="yes"
else
want_valgrind="no"
fi
],
[want_valgrind="no"])
AC_MSG_CHECKING([whether to enable build with valgrind])
AC_MSG_RESULT([${want_valgrind}])
### Checks for programs
### Checks for libraries
@ -482,7 +402,7 @@ AC_SUBST([EINA_CONFIGURE_HAVE_EXOTIC])
# Valgrind
if test "x${want_valgrind}" = "xyes" || test "x${want_valgrind}" = "xauto"; then
if test "x${want_valgrind}" = "xyes"; then
PKG_CHECK_MODULES([VALGRIND], [valgrind >= 2.4.0],
[
have_valgrind="yes"
@ -491,41 +411,16 @@ if test "x${want_valgrind}" = "xyes" || test "x${want_valgrind}" = "xauto"; then
],
[
have_valgrind="no"
AC_DEFINE([NVALGRIND], [1], [Valgrind support disabled])
if test "x${want_valgrind}" = "xyes"; then
AC_MSG_ERROR([Valgrind >= 2.4.0 is required])
fi
])
else
AC_DEFINE([NVALGRIND], [1], [Valgrind support disabled])
fi
AC_ARG_ENABLE([debug-malloc],
[AC_HELP_STRING([--enable-debug-malloc], [enable debugging of malloc usage overhead in our allocator @<:@default=enabled@:>@])],
[
if test "x${enableval}" = "xyes" ; then
want_debug_malloc="yes"
else
want_debug_malloc="no"
fi
],
[want_debug_malloc="no"])
if test "x${ac_cv_func_malloc_usable_size}" = "xyes" && test "x${want_debug_malloc}" = "xyes"; then
AC_DEFINE([EINA_DEBUG_MALLOC], [1], [Turn on debugging overhead in mempool])
fi
AC_ARG_ENABLE([log],
[AC_HELP_STRING([--disable-log], [disable Eina_Log infrastructure completly @<:@default=enabled@:>@])],
[
if test "x${enableval}" = "xyes" ; then
want_log="yes"
else
want_log="no"
fi
],
[want_log="yes"])
## Modules
# Check ememoa memory pool library
@ -1190,6 +1085,7 @@ echo
echo "Configuration Options Summary:"
echo
echo " OS...................: ${host_os}"
echo " Build Profile........: ${build_profile}"
if test "x${have_windows}" = "xyes" ; then
echo " Windows version......: ${_efl_windows_version}"
fi

View File

@ -2,16 +2,12 @@ MAINTAINERCLEANFILES = Makefile.in
SUBDIRS = lib modules bin scripts benchmarks tests examples
.PHONY: benchmark benchmark-e17 examples
.PHONY: benchmark examples
benchmark:
@$(MAKE) $(AM_MAKEFLAGS) -C lib
@$(MAKE) $(AM_MAKEFLAGS) -C benchmarks benchmark
benchmark-e17:
@$(MAKE) $(AM_MAKEFLAGS) -C lib
@$(MAKE) $(AM_MAKEFLAGS) -C benchmarks benchmark-e17
examples:
@make -C lib
@$(MAKE) $(AM_MAKEFLAGS) -C examples examples

View File

@ -2,11 +2,8 @@ MAINTAINERCLEANFILES = Makefile.in
SUBDIRS = eina eo
.PHONY: benchmark benchmark-e17
.PHONY: benchmark
benchmark:
@$(MAKE) $(AM_MAKEFLAGS) -C eina benchmark
@$(MAKE) $(AM_MAKEFLAGS) -C eo benchmark
benchmark-e17:
@$(MAKE) $(AM_MAKEFLAGS) -C eina benchmark-e17

View File

@ -5,6 +5,7 @@ AM_CPPFLAGS = \
-I$(top_builddir)/src/lib/eina \
-DPACKAGE_BUILD_DIR=\"`pwd`/$(top_builddir)\" \
-DCITYHASH_BENCH \
-DEINA_ENABLE_BENCH_E17 \
@EINA_CFLAGS@ \
@GLIB_CFLAGS@
@ -12,9 +13,6 @@ EXTRA_PROGRAMS = eina_bench
benchmark: eina_bench libcity.la
benchmark-e17: eina_bench
@$(MAKE) $(AM_MAKEFLAGS) AM_CPPFLAGS="${AM_CPPFLAGS} -DEINA_ENABLE_BENCH_E17"
eina_bench_SOURCES = \
eina_bench.c \
eina_bench_sort.c \