[uClinux-dev] [patch] restore gui config support

Mike Frysinger vapier at gentoo.org
Tue Feb 5 10:32:38 EST 2008


This patch incorporates feedback from Gavin and is self-contained (you don't
need any other patch).  This works for me for the menuconfig/xconfig targets
with no warnings about overridden targets.
---
While I personally don't use this, we have some users who like it, so I've
forward/back/something-ported support for {g,q,x}config targets to the new
Kconfig system.

Signed-off-by: Mike Frysinger <vapier at gentoo.org>
---
diff --git a/Makefile b/Makefile
index 0450b7b..311b90d 100644
--- a/Makefile
+++ b/Makefile
@@ -109,41 +109,34 @@ Kconfig:
 
 include config/Makefile.conf
 
-.PHONY: config
-config: Kconfig conf
-	$(SCRIPTSDIR)/conf Kconfig
-	@chmod u+x config/setconfig
-	@config/setconfig defaults
-	@if egrep "^CONFIG_DEFAULTS_KERNEL=y" .config > /dev/null; then \
-		$(MAKE) linux_config; \
-	 fi
-	@if egrep "^CONFIG_DEFAULTS_MODULES=y" .config > /dev/null; then \
-		$(MAKE) modules_config; \
-	 fi
-	@if egrep "^CONFIG_DEFAULTS_VENDOR=y" .config > /dev/null; then \
-		$(MAKE) config_config; \
-	 fi
-	@config/setconfig final
-
-.PHONY: menuconfig
-menuconfig: Kconfig conf mconf
-	$(SCRIPTSDIR)/mconf Kconfig
+SCRIPTS_BINARY_config     = conf
+SCRIPTS_BINARY_menuconfig = mconf
+SCRIPTS_BINARY_qconfig    = qconf
+SCRIPTS_BINARY_gconfig    = gconf
+SCRIPTS_BINARY_xconfig    = gconf
+.PHONY: config menuconfig qconfig gconfig xconfig
+menuconfig: mconf
+qconfig: qconf
+gconfig: gconf
+xconfig: $(SCRIPTS_BINARY_xconfig)
+config menuconfig qconfig gconfig xconfig: Kconfig conf
+	$(SCRIPTSDIR)/$(SCRIPTS_BINARY_$@) Kconfig
 	@if [ ! -f .config ]; then \
 		echo; \
-		echo "You have not saved your config, please re-run make config"; \
+		echo "You have not saved your config, please re-run 'make $@'"; \
 		echo; \
 		exit 1; \
 	 fi
 	@chmod u+x config/setconfig
 	@config/setconfig defaults
 	@if egrep "^CONFIG_DEFAULTS_KERNEL=y" .config > /dev/null; then \
-		$(MAKE) linux_menuconfig; \
+		$(MAKE) linux_$@; \
 	 fi
 	@if egrep "^CONFIG_DEFAULTS_MODULES=y" .config > /dev/null; then \
-		$(MAKE) modules_menuconfig; \
+		$(MAKE) modules_$@; \
 	 fi
 	@if egrep "^CONFIG_DEFAULTS_VENDOR=y" .config > /dev/null; then \
-		$(MAKE) config_menuconfig; \
+		$(MAKE) config_$@; \
 	 fi
 	@config/setconfig final
 
diff --git a/config/Makefile b/config/Makefile
index a0ac35d..1fbff89 100644
--- a/config/Makefile
+++ b/config/Makefile
@@ -12,6 +12,15 @@ config: conf
 menuconfig: mconf
 	$(SCRIPTSDIR)/mconf Kconfig
 
+gconfig: gconf
+	$(SCRIPTSDIR)/gconf Kconfig
+
+qconfig: qconf
+	$(SCRIPTSDIR)/qconf Kconfig
+
+xconfig: gconfig
+
 clean: confclean
 	rm -f autoconf.h auto.conf .config .config.old
 
+.PHONY: all oldconfig config menuconfig gconfig qconfig xconfig clean
diff --git a/config/Makefile.conf b/config/Makefile.conf
index 566f396..6995bc5 100644
--- a/config/Makefile.conf
+++ b/config/Makefile.conf
@@ -1,16 +1,31 @@
 HOSTCC   = cc
+HOSTCXX  = c++
+
+SMAKE = CC=$(HOSTCC) CXX=$(HOSTCXX) $(MAKE)
 
 .PHONY: conf
 conf: $(SCRIPTSDIR)/conf
 
 $(SCRIPTSDIR)/conf:
-	CC=$(HOSTCC) $(MAKE) -C $(SCRIPTSDIR) conf
+	$(SMAKE) -C $(SCRIPTSDIR) conf
 
 .PHONY: mconf
 mconf: $(SCRIPTSDIR)/mconf
 
 $(SCRIPTSDIR)/mconf:
-	CC=$(HOSTCC) $(MAKE) -C $(SCRIPTSDIR) mconf
+	$(SMAKE) -C $(SCRIPTSDIR) mconf
+
+.PHONY: gconf
+gconf: $(SCRIPTSDIR)/gconf
+
+$(SCRIPTSDIR)/gconf:
+	$(SMAKE) -C $(SCRIPTSDIR) gconf
+
+.PHONY: qconf
+qconf: $(SCRIPTSDIR)/qconf
+
+$(SCRIPTSDIR)/qconf:
+	$(SMAKE) -C $(SCRIPTSDIR) qconf
 
 .PHONY: confclean
 confclean:
diff --git a/config/kconfig/Makefile b/config/kconfig/Makefile
index b371661..e2d1c21 100644
--- a/config/kconfig/Makefile
+++ b/config/kconfig/Makefile
@@ -11,7 +11,8 @@ LDLIBS += $(shell $(CONFIG_SHELL) $(check-lxdialog) -ldflags $(CC))
 
 conf-objs := conf.o zconf.tab.o
 mconf-objs := mconf.o zconf.tab.o
-qconfig-objs := conf.o kconfig_load.o kxgettext.o zconf.tab.o qconf.o
+gconf-objs := gconf.o kconfig_load.o zconf.tab.o
+qconf-objs := qconf.o kconfig_load.o zconf.tab.o
 lxdialog-objs := lxdialog/checklist.o lxdialog/inputbox.o lxdialog/menubox.o \
 	lxdialog/textbox.o lxdialog/util.o lxdialog/yesno.o
 
@@ -21,11 +22,23 @@ conf: $(conf-objs)
 
 mconf: $(mconf-objs) $(lxdialog-objs)
 
+gconf: $(gconf-objs)
+gconf: CPPFLAGS += `pkg-config --cflags gtk+-2.0 gmodule-2.0 libglade-2.0` -D LKC_DIRECT_LINK
+gconf: LDLIBS += `pkg-config --libs gtk+-2.0 gmodule-2.0 libglade-2.0`
+
+%.moc: %.h
+	`pkg-config --variable=prefix qt 2>/dev/null || pkg-config --variable=prefix qt-mt`/bin/moc -i $< -o $@
+qconf.o: qconf.moc
+qconf: $(qconf-objs)
+qconf: CPPFLAGS += `pkg-config --cflags qt 2>/dev/null || pkg-config --cflags qt-mt` -D LKC_DIRECT_LINK
+qconf: LDLIBS += `pkg-config --libs qt 2>/dev/null || pkg-config --libs qt-mt` -ldl
+
+xconf: qconf
+
 zconf.tab.o: zconf.tab.c zconf.hash.c lex.zconf.c
 
 %.c: %.c_shipped
 	cp $< $@
 
 clean:
-	rm -f conf mconf *.o .*.o.cmd lxdialog/*.o
-
+	rm -f conf mconf gconf qconf *.moc *.o .*.o.cmd lxdialog/*.o


More information about the uClinux-dev mailing list