From: Gustavo Sverzut Barbieri Date: Thu, 6 Dec 2012 23:19:35 +0000 (+0000) Subject: efl: m4 is a macro-expansion language, use that. X-Git-Tag: submit/devel/efl/20131022.203902~3035 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4476601805b687d59ffd69e3ea05b0197c17460e;p=platform%2Fupstream%2Fefl.git efl: m4 is a macro-expansion language, use that. instead of replicating common patterns all around, let's use the common patterns as m4 macros. EFL_DEPEND_PKG() will use pkg-config and add the dependency. EFL_OPTIONAL_DEPEND_PKG() will use the former, but also defines have_XYZ and does the if statement for you. SVN revision: 80402 --- diff --git a/configure.ac b/configure.ac index 8b99c94..a4aafa4 100644 --- a/configure.ac +++ b/configure.ac @@ -431,11 +431,7 @@ AM_CONDITIONAL([EFL_ENABLE_TESTS], [test "x${_efl_enable_tests}" = "xyes"]) # check for crypto/tls library to use case "$build_crypto" in gnutls) - EFL_PKG_CHECK_STRICT([gnutls >= 2.11]) - - AC_DEFINE([HAVE_GNUTLS], [1], [Have Gnutls support]) - requirements_pc_crypto="gnutls >= 2.11 ${requirements_pc_crypto}" - requirements_pc_deps_crypto="gnutls >= 2.11 ${requirements_pc_deps_crypto}" + EFL_DEPEND_PKG([crypto], [GNUTLS], [gnutls >= 2.11]) # libgcrypt AC_PATH_GENERIC([libgcrypt], [], [:], @@ -444,11 +440,7 @@ case "$build_crypto" in ;; openssl) - EFL_PKG_CHECK_STRICT([openssl]) - - AC_DEFINE([HAVE_OPENSSL], [1], [Have Openssl support]) - requirements_pc_crypto="openssl ${requirements_pc_crypto}" - requirements_pc_deps_crypto="openssl ${requirements_pc_deps_crypto}" + EFL_DEPEND_PKG([crypto], [OPENSSL], [openssl]) ;; esac @@ -1453,56 +1445,31 @@ esac requirements_pc_evas="eo >= ${PACKAGE_VERSION} eet >= ${PACKAGE_VERSION} eina >= ${PACKAGE_VERSION} ${requirements_pc_evas}" # Freetype -EFL_PKG_CHECK_STRICT([freetype2 >= 9.3.0]) -requirements_pc_evas="freetype2 >= 9.3.0 ${requirements_pc_evas}" -requirements_pc_deps_evas="freetype2 >= 9.3.0 ${requirements_pc_deps_evas}" +EFL_DEPEND_PKG([evas], [FREETYPE], [freetype2 >= 9.3.0]) ## optional dependencies # FontConfig -have_fontconfig="no" -if test "x${want_fontconfig}" = "xyes"; then - EFL_PKG_CHECK_STRICT([fontconfig >= 2.5.0]) - have_fontconfig="yes" - AC_DEFINE(HAVE_FONTCONFIG, 1, [have fontconfig searching capabilities]) - requirements_pc_evas="fontconfig >= 2.5.0 ${requirements_pc_evas}" - requirements_pc_deps_evas="fontconfig >= 2.5.0 ${requirements_pc_deps_evas}" -fi +EFL_OPTIONAL_DEPEND_PKG([evas], [${want_fontconfig}], + [FONTCONFIG], [fontconfig >= 2.5.0]) # fribidi support -have_fribidi="no" -if test "x${want_fribidi}" = "xyes"; then - EFL_PKG_CHECK_STRICT([fribidi >= 0.19.2]) - have_fribidi="yes" - AC_DEFINE([HAVE_FRIBIDI], [1], [have fribidi support]) - requirements_pc_evas="fribidi >= 0.19.2 ${requirements_pc_evas}" - requirements_pc_deps_evas="fribidi >= 0.19.2 ${requirements_pc_deps_evas}" - - CPPFLAGS_SAVE="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $FRIBIDI_CFLAGS" - AC_CHECK_SIZEOF([FriBidiChar], [], [#include ]) - CPPFLAGS="$CPPFLAGS_SAVE" -fi +EFL_OPTIONAL_DEPEND_PKG([evas], [${want_fribidi}], + [FRIBIDI], [fribidi >= 0.19.2], + [ + CPPFLAGS_SAVE="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $FRIBIDI_CFLAGS" + AC_CHECK_SIZEOF([FriBidiChar], [], [#include ]) + CPPFLAGS="$CPPFLAGS_SAVE" + ]) # harfbuzz support -have_harfbuzz="no" have_harfbuzz_ft="no" -if test "x${want_harfbuzz}" = "xyes"; then - EFL_PKG_CHECK_STRICT([harfbuzz >= 0.9.0]) - have_harfbuzz="yes" - requirements_pc_evas="harfbuzz >= 0.9.0 ${requirements_pc_evas}" - requirements_pc_deps_evas="harfbuzz >= 0.9.0 ${requirements_pc_deps_evas}" -fi +EFL_OPTIONAL_DEPEND_PKG([evas], [${want_harfbuzz}], + [HARFBUZZ], [harfbuzz >= 0.9.0]) # Pixman -have_pixman="no" -if test "x${want_pixman}" = "xyes"; then - EFL_PKG_CHECK_STRICT([pixman-1]) - have_pixman="yes" - AC_DEFINE([HAVE_PIXMAN], [1], [have pixman for rendering]) - requirements_pc_evas="pixman-1 ${requirements_pc_evas}" - requirements_pc_deps_evas="pixman-1 ${requirements_pc_deps_evas}" -fi +EFL_OPTIONAL_DEPEND_PKG([evas], [${want_pixman}], [PIXMAN], [pixman-1]) if test "x${have_pixman}" = "xyes" ; then if test "x${have_pixman_font}" = "xyes" ; then @@ -1980,14 +1947,8 @@ requirements_pc_ecore="eo >= ${PACKAGE_VERSION} eina >= ${PACKAGE_VERSION} ${req # glib -have_glib="no" -if test "x${want_glib}" = "xyes" ; then - EFL_PKG_CHECK_STRICT([glib-2.0]) - have_glib="yes" - AC_DEFINE([HAVE_GLIB], [1], [Have GLib]) - requirements_pc_ecore="glib-2.0 ${requirements_pc_ecore}" - requirements_pc_deps_ecore="glib-2.0 ${requirements_pc_deps_ecore}" -else +EFL_OPTIONAL_DEPEND_PKG([ecore], [${want_glib}], [GLIB], [glib-2.0]) +if test "x${have_glib}" = "xno"; then want_g_main_loop="no" fi @@ -2155,27 +2116,12 @@ requirements_pc_deps_ecore_con="${requirements_pc_deps_crypto} ${requirements_pc requirements_libs_ecore_con="${requirements_libs_crypto} ${requirements_libs_ecore_con}" # cURL - -have_curl="no" -if test "x${want_curl}" = "xyes" ; then - EFL_PKG_CHECK_STRICT([libcurl]) - have_curl="yes" - AC_DEFINE([HAVE_CURL], [1], [Downloading with CURL]) - requirements_pc_ecore_con="libcurl ${requirements_pc_ecore_con}" - requirements_pc_deps_ecore_con="libcurl ${requirements_pc_deps_ecore_con}" -fi +EFL_OPTIONAL_DEPEND_PKG([ecore_con], [${want_curl}], [CURL], [libcurl]) # c-ares -have_cares="no" -if test "x${want_cares}" = "xyes" ; then - EFL_PKG_CHECK_STRICT([libcares >= 1.6.1]) - have_cares="yes" - AC_DEFINE([HAVE_CARES], [1], [Build Ecore_Con_Info with c-ares support]) - requirements_pc_ecore_con="libcares >= 1.6.1 ${requirements_pc_ecore_con}" - requirements_pc_deps_ecore_con="libcares >= 1.6.1 ${requirements_pc_deps_ecore_con}" -fi - +EFL_OPTIONAL_DEPEND_PKG([ecore_con], [${want_cares}], + [CARES], [libcares >= 1.6.1]) AM_CONDITIONAL([HAVE_CARES], [test "x${have_cares}" = "xyes"]) if test "x${requirements_pc_deps_ecore_con}" != "x" ; then diff --git a/m4/efl.m4 b/m4/efl.m4 new file mode 100644 index 0000000..d4a4d1a --- /dev/null +++ b/m4/efl.m4 @@ -0,0 +1,42 @@ +dnl file to manage modules in efl + +dnl EFL_DEPEND_PKG(EFL, NAME, PACKAGE, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +dnl Adds a pkg-config dependency to an efl, AC_DEFINE() HAVE_NAME, +dnl and inserts dependencies in proper variables +AC_DEFUN([EFL_DEPEND_PKG], +[ +m4_pushdef([UPEFL], m4_translit([$1], [-a-z], [_A-Z]))dnl +m4_pushdef([DOWNEFL], m4_translit([$1], [-A-Z], [_a-z]))dnl +m4_pushdef([UPNAME], m4_translit([$2], [-a-z], [_A-Z]))dnl +m4_pushdef([DOWNNAME], m4_translit([$2], [-A-Z], [_a-z]))dnl + + have_[]m4_defn([DOWNNAME])="no" + + EFL_PKG_CHECK_STRICT([$3], [ + AC_DEFINE([HAVE_]m4_defn([UPNAME]), [1], [Have `]m4_defn([DOWNNAME])[' pkg-config installed.]) + requirements_pc_[]m4_defn([DOWNEFL])="$3 ${requirements_pc_[][]m4_defn([DOWNEFL])}" + requirements_pc_deps_[]m4_defn([DOWNEFL])="$3 ${requirements_pc_deps_[]m4_defn([DOWNEFL])}" + have_[]m4_defn([DOWNNAME])="yes" + + $4 + + ], [$5]) + +m4_popdef([DOWNNAME]) +m4_popdef([UPNAME]) +m4_popdef([DOWNEFL]) +m4_popdef([UPEFL]) +]) + +dnl EFL_OPTIONAL_DEPEND_PKG(EFL, VARIABLE, NAME, PACKAGE, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +AC_DEFUN([EFL_OPTIONAL_DEPEND_PKG], +[ +m4_pushdef([DOWN], m4_translit([$3], [-A-Z], [_a-z]))dnl + + have_[]m4_defn([DOWN])="no" + if test "x$2" = "xyes"; then + EFL_DEPEND_PKG([$1], [$3], [$4], [$5], [$6]) + fi + +m4_popdef([DOWN]) +]) diff --git a/m4/efl_pkg_config.m4 b/m4/efl_pkg_config.m4 index c4f3c1e..13a9516 100644 --- a/m4/efl_pkg_config.m4 +++ b/m4/efl_pkg_config.m4 @@ -4,8 +4,7 @@ dnl EFL_PKG_CHECK_STRICT(MODULE, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) dnl similar to PKG_CHECK_EXISTS() that will AC_MSG_ERROR() if not found AC_DEFUN([EFL_PKG_CHECK_STRICT], [ - PKG_CHECK_EXISTS([$1], - [m4_if([$2], [$2], [:])], - [m4_if([$3], [$3], [AC_MSG_ERROR([pkg-config missing $1])])] + PKG_CHECK_EXISTS([$1], [$2], + [m4_ifval([$3], [$3], [AC_MSG_ERROR([pkg-config missing $1])])] ) ])