Skip to contentSkip to conversation

cmd1.bbclass: Ensure ncurses is built and used for menuconfig tasks

PATCH In review Richard Purdie 3 participants 3 messages May 31, 2012

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 cmd1.bbclass: Ensure ncurses is built and used for menuconfig tasks

Currently, the task just exits if something goes wrong. This adds the ncurses-native dependency. It also adds a small delay before closing the window so any messages displayed there can be seen.

Trying to get the kernel build system to correctly find and link with our copy of ncurses is some kind of nightmare. I ended up having to add it to HOST_LOADLIBES globally for this task which is rather nasty but I couldn't find any other way.

[YOCTO #2513]

---

meta/classes/cml1.bbclass +7 -1
index d429188..bd25311 100644
@@ -9,9 +9,15 @@ addtask configure after do_unpack do_patch before do_compile
 
 inherit terminal
 
+OE_TERMINAL_EXPORTS += "HOST_EXTRACFLAGS HOSTLDFLAGS HOST_LOADLIBES"
+HOST_EXTRACFLAGS = "${BUILD_CFLAGS} ${BUILD_LDFLAGS}"
+HOSTLDFLAGS = "${BUILD_LDFLAGS}"
+HOST_LOADLIBES = "-lncurses"
+
 python do_menuconfig() {
-        oe_terminal("make menuconfig", '${PN} Configuration', d)
+        oe_terminal("${SHELL} -c \"make menuconfig; echo 'Pausing for 5 seconds'; sleep 5\"", '${PN} Configuration', d)
 }
+do_menuconfig[depends] += "ncurses-native:do_populate_sysroot"
 do_menuconfig[nostamp] = "1"
 addtask menuconfig after do_configure
 
#1 lore raw
Quoted 19 lines · Richard Purdie

Currently, the task just exits if something goes wrong. This adds the ncurses-native dependency. It also adds a small delay before closing the window so any messages displayed there can be seen.

Trying to get the kernel build system to correctly find and link with our copy of ncurses is some kind of nightmare. I ended up having to add it to HOST_LOADLIBES globally for this task which is rather nasty but I couldn't find any other way.

[YOCTO #2513]

---

meta/classes/cml1.bbclass +0 -0
index d429188..bd25311 100644
@@ -9,9 +9,15 @@ addtask configure after do_unpack do_patch before do_compile
 

meta/classes/cml1.bbclass addtask configure after do_unpack do_patch before do_compile · line 18

Quoted 10 lines
meta/classes/cml1.bbclass +6 -1
 inherit terminal
 
+OE_TERMINAL_EXPORTS += "HOST_EXTRACFLAGS HOSTLDFLAGS HOST_LOADLIBES"
+HOST_EXTRACFLAGS = "${BUILD_CFLAGS} ${BUILD_LDFLAGS}"
+HOSTLDFLAGS = "${BUILD_LDFLAGS}"
+HOST_LOADLIBES = "-lncurses"
+
 python do_menuconfig() {
-        oe_terminal("make menuconfig", '${PN} Configuration', d)
+        oe_terminal("${SHELL} -c \"make menuconfig; echo 'Pausing for 5 seconds'; sleep 5\"", '${PN} Configuration', d)

Perhaps only sleeping if menuconfig returns non-zero? This would avoid the unnecessary lag after a successful menuconfig session.

Signature · 3 lines
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel
#2 lore raw
In reply to Richard Purdie
Quoted 8 lines · Richard Purdie

Currently, the task just exits if something goes wrong. This adds the ncurses-native dependency. It also adds a small delay before closing the window so any messages displayed there can be seen.

Trying to get the kernel build system to correctly find and link with our copy of ncurses is some kind of nightmare. I ended up having to add it to HOST_LOADLIBES globally for this task which is rather nasty but I couldn't find any other way.

Agreed, and my much more limited knowledge of the options can't come up with something different either.

Is there an option to move those flags to the kernel class, so they'd only be set when it is in play ? That would at least isolate the data a bit more. Alternatively there's the less palatable kernel specific do_menuconfig option (ech).

Otherwise, no concerns or big comments from me.

Bruce

Quoted 30 lines

[YOCTO #2513]

---

meta/classes/cml1.bbclass +7 -1
index d429188..bd25311 100644
@@ -9,9 +9,15 @@ addtask configure after do_unpack do_patch before do_compile
 
  inherit terminal
 
+OE_TERMINAL_EXPORTS += "HOST_EXTRACFLAGS HOSTLDFLAGS HOST_LOADLIBES"
+HOST_EXTRACFLAGS = "${BUILD_CFLAGS} ${BUILD_LDFLAGS}"
+HOSTLDFLAGS = "${BUILD_LDFLAGS}"
+HOST_LOADLIBES = "-lncurses"
+
  python do_menuconfig() {
-        oe_terminal("make menuconfig", '${PN} Configuration', d)
+        oe_terminal("${SHELL} -c \"make menuconfig; echo 'Pausing for 5 seconds'; sleep 5\"", '${PN} Configuration', d)
  }
+do_menuconfig[depends] += "ncurses-native:do_populate_sysroot"
  do_menuconfig[nostamp] = "1"
  addtask menuconfig after do_configure