blob: b5dc028a2bb50bf2acf0742c71714f81edc779fb [file] [log] [blame]
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001cml1_do_configure() {
2 set -e
3 unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
4 oe_runmake oldconfig
5}
6
7EXPORT_FUNCTIONS do_configure
8addtask configure after do_unpack do_patch before do_compile
9
10inherit terminal
11
12OE_TERMINAL_EXPORTS += "HOST_EXTRACFLAGS HOSTLDFLAGS TERMINFO CROSS_CURSES_LIB CROSS_CURSES_INC"
13HOST_EXTRACFLAGS = "${BUILD_CFLAGS} ${BUILD_LDFLAGS}"
14HOSTLDFLAGS = "${BUILD_LDFLAGS}"
15CROSS_CURSES_LIB = "-lncurses -ltinfo"
16CROSS_CURSES_INC = '-DCURSES_LOC="<curses.h>"'
17TERMINFO = "${STAGING_DATADIR_NATIVE}/terminfo"
18
19KCONFIG_CONFIG_COMMAND ??= "menuconfig"
20python do_menuconfig() {
21 import shutil
22
23 try:
24 mtime = os.path.getmtime(".config")
25 shutil.copy(".config", ".config.orig")
26 except OSError:
27 mtime = 0
28
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050029 oe_terminal("${SHELL} -c \"make %s; if [ \$? -ne 0 ]; then echo 'Command failed.'; printf 'Press any key to continue... '; read r; fi\"" % d.getVar('KCONFIG_CONFIG_COMMAND', True),
30 d.getVar('PN', True ) + ' Configuration', d)
Patrick Williamsc124f4f2015-09-15 14:41:29 -050031
32 # FIXME this check can be removed when the minimum bitbake version has been bumped
33 if hasattr(bb.build, 'write_taint'):
34 try:
35 newmtime = os.path.getmtime(".config")
36 except OSError:
37 newmtime = 0
38
39 if newmtime > mtime:
40 bb.note("Configuration changed, recompile will be forced")
41 bb.build.write_taint('do_compile', d)
42}
43do_menuconfig[depends] += "ncurses-native:do_populate_sysroot"
44do_menuconfig[nostamp] = "1"
45addtask menuconfig after do_configure
46
47python do_diffconfig() {
48 import shutil
49 import subprocess
50
51 workdir = d.getVar('WORKDIR', True)
52 fragment = workdir + '/fragment.cfg'
53 configorig = '.config.orig'
54 config = '.config'
55
56 try:
57 md5newconfig = bb.utils.md5_file(configorig)
58 md5config = bb.utils.md5_file(config)
59 isdiff = md5newconfig != md5config
60 except IOError as e:
61 bb.fatal("No config files found. Did you do menuconfig ?\n%s" % e)
62
63 if isdiff:
64 statement = 'diff --unchanged-line-format= --old-line-format= --new-line-format="%L" ' + configorig + ' ' + config + '>' + fragment
65 subprocess.call(statement, shell=True)
66
67 shutil.copy(configorig, config)
68
69 bb.plain("Config fragment has been dumped into:\n %s" % fragment)
70 else:
71 if os.path.exists(fragment):
72 os.unlink(fragment)
73}
74
75do_diffconfig[nostamp] = "1"
76addtask diffconfig