ncurses: refactor configure to avoid configuring widec when disabled
The ENABLE_WIDEC variable can be used to disable ncurses wide character support when your C library doesn't support it. Currently, the do_configure step configures for both narrow and wide characters regardless and only checks ENABLE_WIDEC during compilation. This leads to QA failures with host contamination during configure if the C library doesn't support wide characters. Refactor do_configure with a new ncurses_configure helper function and only configure for wide character support if ENABLE_WIDEC is true. Ensure that configure errors are propogated back through to do_configure. Tested with ENABLE_WIDEC as true and false via an ncurses bbappend on i586, including basic error injection. V2: INC_PR bump (From OE-Core rev: 8b995deb046469c1c713fa053510d2fe94454133) (From OE-Core rev: 802cd855f1860ef0fbbbbf87b0af7c5dcdc35975) Signed-off-by: Darren Hart <dvhart@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
cc19812fb4
commit
9faa58ecdc
|
@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://ncurses/base/version.c;beginline=1;endline=27;md5=cbc
|
|||
SECTION = "libs"
|
||||
DEPENDS = "ncurses-native"
|
||||
DEPENDS_virtclass-native = ""
|
||||
INC_PR = "r1"
|
||||
INC_PR = "r2"
|
||||
|
||||
inherit autotools binconfig multilib_header
|
||||
|
||||
|
@ -26,6 +26,36 @@ ENABLE_WIDEC = "true"
|
|||
# builds.
|
||||
BUILD_CPPFLAGS += "-D_GNU_SOURCE"
|
||||
|
||||
# Helper function for do_configure to allow multiple configurations
|
||||
# $1 the directory to run configure in
|
||||
# $@ the arguments to pass to configure
|
||||
ncurses_configure() {
|
||||
mkdir -p $1
|
||||
cd $1
|
||||
shift
|
||||
oe_runconf \
|
||||
--disable-static \
|
||||
--without-debug \
|
||||
--without-ada \
|
||||
--without-gpm \
|
||||
--enable-hard-tabs \
|
||||
--enable-xmc-glitch \
|
||||
--enable-colorfgbg \
|
||||
--with-termpath='${sysconfdir}/termcap:${datadir}/misc/termcap' \
|
||||
--with-terminfo-dirs='${sysconfdir}/terminfo:${datadir}/terminfo' \
|
||||
--with-shared \
|
||||
--disable-big-core \
|
||||
--program-prefix= \
|
||||
--with-ticlib \
|
||||
--with-termlib=tinfo \
|
||||
--enable-sigwinch \
|
||||
--enable-pc-files \
|
||||
--disable-rpath-hack \
|
||||
--with-manpage-format=normal \
|
||||
"$@" || return 1
|
||||
cd ..
|
||||
}
|
||||
|
||||
# Override the function from the autotools class; ncurses requires a
|
||||
# patched autoconf213 to generate the configure script. This autoconf
|
||||
# is not available so that the shipped script will be used.
|
||||
|
@ -35,36 +65,10 @@ do_configure() {
|
|||
# not the case for /dev/null redirections)
|
||||
export cf_cv_working_poll=yes
|
||||
|
||||
for i in \
|
||||
'narrowc' \
|
||||
'widec --enable-widec --without-progs'; do
|
||||
set -- $i
|
||||
mkdir -p $1
|
||||
cd $1
|
||||
shift
|
||||
|
||||
oe_runconf \
|
||||
--disable-static \
|
||||
--without-debug \
|
||||
--without-ada \
|
||||
--without-gpm \
|
||||
--enable-hard-tabs \
|
||||
--enable-xmc-glitch \
|
||||
--enable-colorfgbg \
|
||||
--with-termpath='${sysconfdir}/termcap:${datadir}/misc/termcap' \
|
||||
--with-terminfo-dirs='${sysconfdir}/terminfo:${datadir}/terminfo' \
|
||||
--with-shared \
|
||||
--disable-big-core \
|
||||
--program-prefix= \
|
||||
--with-ticlib \
|
||||
--with-termlib=tinfo \
|
||||
--enable-sigwinch \
|
||||
--enable-pc-files \
|
||||
--disable-rpath-hack \
|
||||
--with-manpage-format=normal \
|
||||
"$@"
|
||||
cd ..
|
||||
done
|
||||
ncurses_configure "narrowc" || \
|
||||
return 1
|
||||
! ${ENABLE_WIDEC} || \
|
||||
ncurses_configure "widec" "--enable-widec" "--without-progs"
|
||||
}
|
||||
|
||||
do_compile() {
|
||||
|
|
Loading…
Reference in New Issue