[oe] [PATCH] wxwidgets: add 2.9.0 and clean up recipes

Philip Balister philip at balister.org
Thu Dec 17 14:35:46 UTC 2009


On 12/17/2009 09:30 AM, Johan Hovold wrote:
>   - Add wxwidget-2.9.0 include with derived rather than hardcoded lib and
>     config script names (depends on debug and charset configure flags)
>   - Use regular expression for LEAD_SONAME rather than hardcoded name.
>   - Fix autoconf issue where configure could not find staging root.
>   - Use INC_PR.
>
>   - Add wxwidgets-2.9.0 (unicode)
>   - Add wxwidgets-ansi-2.9.0 (non-unicode)
>   - Add wxwidgets-opengl-2.9.0 (unicode, opengl)
>
> Signed-off-by: Johan Hovold<johan.hovold at lundinova.se>
> ---
> Hi,
>
> The autoconf patch is a bit of a hack and should really be fixed properly
> upstream. Works fine for now though.
>
> Cheers,
> Johan
>
>
>
>   conf/checksums.ini                                 |    4 ++
>   .../wxwidgets-2.9.0/configure-cross_root.patch     |   30 +++++++++++++
>   recipes/wxwidgets/wxwidgets-ansi_2.9.0.bb          |    5 ++
>   recipes/wxwidgets/wxwidgets-opengl_2.9.0.bb        |    7 +++
>   recipes/wxwidgets/wxwidgets_2.9.0.bb               |    3 +
>   recipes/wxwidgets/wxwidgets_2.9.0.inc              |   44 ++++++++++++++++++++

Shouldn't the include file be called wxwidgets-2.9.0.inc?

Philip


>   6 files changed, 93 insertions(+), 0 deletions(-)
>   create mode 100644 recipes/wxwidgets/wxwidgets-2.9.0/configure-cross_root.patch
>   create mode 100644 recipes/wxwidgets/wxwidgets-ansi_2.9.0.bb
>   create mode 100644 recipes/wxwidgets/wxwidgets-opengl_2.9.0.bb
>   create mode 100644 recipes/wxwidgets/wxwidgets_2.9.0.bb
>   create mode 100644 recipes/wxwidgets/wxwidgets_2.9.0.inc
>
> diff --git a/conf/checksums.ini b/conf/checksums.ini
> index 10ce619..f810d08 100644
> --- a/conf/checksums.ini
> +++ b/conf/checksums.ini
> @@ -27390,6 +27390,10 @@ sha256=9b4096bb1e273914adf101182c27d457f46fcc44d1b3ea027bae3d34ace8c6f7
>   md5=3ad40ea2b1728eefa94f60beb9951ff7
>   sha256=9b4096bb1e273914adf101182c27d457f46fcc44d1b3ea027bae3d34ace8c6f7
>
> +[http://downloads.sourceforge.net/wxwindows/wxWidgets-2.9.0.tar.bz2]
> +md5=09058928eeb72853142c062bdec056ce
> +sha256=8cf5c1dcf6357b2d27efd0c737b95baf1d2d1e88b5bf24560824b5eb6f2dc782
> +
>   [http://xorg.freedesktop.org/releases/individual/app/x11perf-1.4.1.tar.bz2]
>   md5=fd06c8b8e3572a0e14af65a49e0dd7d1
>   sha256=c81819618ec596fda55b950ef80f2ee02e5ce149ea99f1f741cedb459b4d3064
> diff --git a/recipes/wxwidgets/wxwidgets-2.9.0/configure-cross_root.patch b/recipes/wxwidgets/wxwidgets-2.9.0/configure-cross_root.patch
> new file mode 100644
> index 0000000..e91a95c
> --- /dev/null
> +++ b/recipes/wxwidgets/wxwidgets-2.9.0/configure-cross_root.patch
> @@ -0,0 +1,30 @@
> +diff -pu a/configure.in b/configure.in
> +--- a/configure.in	2009-12-04 11:02:26.000000000 +0100
> ++++ b/configure.in	2009-12-03 22:08:05.000000000 +0100
> +@@ -2117,14 +2117,21 @@ if test "$build" != "$host" -a "$GCC" =
> +     dnl the linker. Stripping off the trailing '/bin/ld' gives us a candiate
> +     dnl for a 'root' below which libraries and headers for the target system
> +     dnl might be installed.
> +-    if cross_root=`$CC -print-prog-name=ld 2>/dev/null`; then
> ++    m4_pattern_allow([^PKG_CONFIG_SYSROOT_DIR$])
> ++    if test ! -z "$PKG_CONFIG_SYSROOT_DIR"; then
> ++	    cross_root="$PKG_CONFIG_SYSROOT_DIR"
> ++    elif cross_root=`$CC -print-prog-name=ld 2>/dev/null`; then
> +         cross_root=`dirname $cross_root`
> +         cross_root=`dirname $cross_root`
> ++    else
> ++	cross_root=""
> ++    fi
> +
> +-        dnl substitute this candiate root for '^/usr' in the search lists,
> +-        dnl strip out any that don't start '^/usr'.
> +-        SEARCH_LIB=`for x in $SEARCH_LIB; do echo $x; done | sed -ne "s|^/usr|$cross_root|p"`
> +-        SEARCH_INCLUDE=`for x in $SEARCH_INCLUDE; do echo $x; done | sed -ne "s|^/usr|$cross_root|p"`
> ++    if test ! -z "$cross_root"; then
> ++        dnl substitute this candiate root for '^/' in the search lists,
> ++        dnl strip out any that don't start '^/'.
> ++        SEARCH_LIB=`for x in $SEARCH_LIB; do echo $x; done | sed -ne "s|^/|$cross_root/|p"`
> ++        SEARCH_INCLUDE=`for x in $SEARCH_INCLUDE; do echo $x; done | sed -ne "s|^/|$cross_root/|p"`
> +         SEARCH_INCLUDE="$SEARCH_INCLUDE $cross_root/include"
> +
> +         dnl also have pkg-config search for *.pc files under this 'root'
> diff --git a/recipes/wxwidgets/wxwidgets-ansi_2.9.0.bb b/recipes/wxwidgets/wxwidgets-ansi_2.9.0.bb
> new file mode 100644
> index 0000000..2f9fdfe
> --- /dev/null
> +++ b/recipes/wxwidgets/wxwidgets-ansi_2.9.0.bb
> @@ -0,0 +1,5 @@
> +require wxwidgets_${PV}.inc
> +
> +PR = "${INC_PR}.0"
> +
> +EXTRA_OECONF += "--disable-unicode"
> diff --git a/recipes/wxwidgets/wxwidgets-opengl_2.9.0.bb b/recipes/wxwidgets/wxwidgets-opengl_2.9.0.bb
> new file mode 100644
> index 0000000..165bc35
> --- /dev/null
> +++ b/recipes/wxwidgets/wxwidgets-opengl_2.9.0.bb
> @@ -0,0 +1,7 @@
> +require wxwidgets_${PV}.inc
> +
> +DEPENDS += "virtual/libgl"
> +
> +PR = "${INC_PR}.0"
> +
> +EXTRA_OECONF += "--with-opengl"
> diff --git a/recipes/wxwidgets/wxwidgets_2.9.0.bb b/recipes/wxwidgets/wxwidgets_2.9.0.bb
> new file mode 100644
> index 0000000..c70fd76
> --- /dev/null
> +++ b/recipes/wxwidgets/wxwidgets_2.9.0.bb
> @@ -0,0 +1,3 @@
> +require wxwidgets_${PV}.inc
> +
> +PR = "${INC_PR}.0"
> diff --git a/recipes/wxwidgets/wxwidgets_2.9.0.inc b/recipes/wxwidgets/wxwidgets_2.9.0.inc
> new file mode 100644
> index 0000000..cb6a971
> --- /dev/null
> +++ b/recipes/wxwidgets/wxwidgets_2.9.0.inc
> @@ -0,0 +1,44 @@
> +require wxwidgets.inc
> +
> +INC_PR = "r0"
> +
> +PROVIDES += "wxwidgets"
> +
> +TOOLKIT ?= "gtk2"
> +UNICODE ?= "${@base_contains('EXTRA_OECONF', '--disable-unicode', 'ansi', 'unicode', d)}"
> +DEBUG ?= "${@base_contains('EXTRA_OECONF', '--enable-debug', 'debug', 'release', d)}"
> +RELEASE ?= "${@bb.data.getVar('PV',d,1).rsplit('.', 1)[0]}"
> +
> +WXCONFIG ?= "${TOOLKIT}-${UNICODE}-${DEBUG}-${RELEASE}"
> +
> +LEAD_SONAME = "libwx_.*_core-.*\.so"
> +
> +# Patch and regenerate configure script so that it finds staging root.
> +FILESDIR = "${FILE_DIRNAME}/wxwidgets-${PV}"
> +SRC_URI += "file://configure-cross_root.patch;patch=1"
> +
> +do_configure_prepend() {
> +	./autogen.sh
> +}
> +
> +do_stage() {
> +	install -d ${STAGING_INCDIR}/wx-${RELEASE}/wx
> +	cp -pR include/wx ${STAGING_INCDIR}/wx-${RELEASE}
> +	cp -pR lib/libwx* ${STAGING_LIBDIR}
> +	cp -pR lib/wx     ${STAGING_LIBDIR}
> +	cp -pR build/bakefiles/wxpresets/presets ${STAGING_DATADIR}/bakefile
> +	cp -p wxwin.m4                          ${STAGING_DATADIR}/aclocal
> +	ln -sf ${STAGING_LIBDIR}/wx/config/${TARGET_PREFIX}${WXCONFIG} \
> +		${STAGING_BINDIR_CROSS}/wx-config
> +	sed -e s,'wxconfdir=".*"','wxconfigdir="${STAGING_LIBDIR}/wx/config"', \
> +		-e s,'bindir=".*"','bindir="${STAGING_BINDIR}"', \
> +		-e s,'libdir=".*"','libdir="${STAGING_LIBDIR}"', \
> +		-e s,'includedir=".*"','includedir="${STAGING_INCDIR}"', \
> +		-i ${STAGING_LIBDIR}/wx/config/${TARGET_PREFIX}${WXCONFIG}
> +}
> +
> +do_install() {
> +	oe_runmake 'DESTDIR=${D}' install
> +	ln -sf  ${libdir}/wx/config/${TARGET_PREFIX}${WXCONFIG} \
> +		${D}${bindir}/wx-config
> +}




More information about the Openembedded-devel mailing list