Files
poky/meta/classes/cml1.bbclass
Stefan Müller-Klieser 6a7b989933 cml1: correct diffconfig output format
If used with some packages using kconfig mechanism, the diffconfig
command generates wrong output format. Diff provides all options to
format the output correctly. This method formats as intended, is more
robust and works with the merge_config.h script from yocto-kernel-tools.

(From OE-Core rev: 1d9d035f07be1cef2764949d84cecbff7dd428dd)

Signed-off-by: Stefan Müller-Klieser <s.mueller-klieser@phytec.de>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-07-29 09:58:27 +01:00

74 lines
2.2 KiB
Plaintext

cml1_do_configure() {
set -e
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
oe_runmake oldconfig
}
EXPORT_FUNCTIONS do_configure
addtask configure after do_unpack do_patch before do_compile
inherit terminal
OE_TERMINAL_EXPORTS += "HOST_EXTRACFLAGS HOSTLDFLAGS HOST_LOADLIBES TERMINFO"
HOST_EXTRACFLAGS = "${BUILD_CFLAGS} ${BUILD_LDFLAGS}"
HOSTLDFLAGS = "${BUILD_LDFLAGS}"
HOST_LOADLIBES = "-lncurses"
TERMINFO = "${STAGING_DATADIR_NATIVE}/terminfo"
python do_menuconfig() {
import shutil
try:
mtime = os.path.getmtime(".config")
shutil.copy(".config", ".config.orig")
except OSError:
mtime = 0
oe_terminal("${SHELL} -c \"make menuconfig; if [ \$? -ne 0 ]; then echo 'Command failed.'; printf 'Press any key to continue... '; read r; fi\"", '${PN} Configuration', d)
# FIXME this check can be removed when the minimum bitbake version has been bumped
if hasattr(bb.build, 'write_taint'):
try:
newmtime = os.path.getmtime(".config")
except OSError:
newmtime = 0
if newmtime > mtime:
bb.note("Configuration changed, recompile will be forced")
bb.build.write_taint('do_compile', d)
}
do_menuconfig[depends] += "ncurses-native:do_populate_sysroot"
do_menuconfig[nostamp] = "1"
addtask menuconfig after do_configure
python do_diffconfig() {
import shutil
import subprocess
workdir = d.getVar('WORKDIR', True)
fragment = workdir + '/fragment.cfg'
configorig = '.config.orig'
config = '.config'
try:
md5newconfig = bb.utils.md5_file(configorig)
md5config = bb.utils.md5_file(config)
isdiff = md5newconfig != md5config
except IOError as e:
bb.fatal("No config files found. Did you do menuconfig ?\n%s" % e)
if isdiff:
statement = 'diff --unchanged-line-format= --old-line-format= --new-line-format="%L"' + configorig + ' ' + config + '>' + fragment
subprocess.call(statement, shell=True)
shutil.copy(configorig, config)
bb.plain("Config fragment has been dumped into:\n %s" % fragment)
else:
if os.path.exists(fragment):
os.unlink(fragment)
}
do_diffconfig[nostamp] = "1"
addtask diffconfig