[SeaBIOS] [PATCHv2 2/4] Build changes for Linux kconfig code to work in seabios dir structure.
Kevin O'Connor
kevin at koconnor.net
Fri Jan 28 04:21:08 CET 2011
---
Makefile | 15 +++++++++++++++
tools/kconfig/Makefile | 29 ++++++++++++++++++-----------
tools/kconfig/POTFILES.in | 24 ++++++++++++------------
tools/kconfig/gconf.c | 2 +-
tools/kconfig/kconfig_load.c | 2 +-
5 files changed, 47 insertions(+), 25 deletions(-)
diff --git a/Makefile b/Makefile
index 384bf79..b67c8fc 100644
--- a/Makefile
+++ b/Makefile
@@ -193,10 +193,25 @@ src/%.hex: src/%.dsl
$(OUT)ccode32flat.o: src/acpi-dsdt.hex
+####### Kconfig rules
+export HOSTCC := $(CC)
+export CONFIG_SHELL := sh
+export KCONFIG_AUTOHEADER := autoconf.h
+export KCONFIG_CONFIG := $(CURDIR)/.config
+MAKEFLAGS += --no-print-directory
+
+%onfig:
+ $(Q)mkdir -p $(OUT)/tools/kconfig/lxdialog
+ $(Q)mkdir -p $(OUT)/include/config
+ $(Q)$(MAKE) -C $(OUT) -f $(CURDIR)/tools/kconfig/Makefile srctree=$(CURDIR) src=tools/kconfig obj=tools/kconfig Q=$(Q) Kconfig=$(CURDIR)/src/Kconfig $@
+
####### Generic rules
clean:
$(Q)rm -rf $(OUT)
+distclean: clean
+ $(Q)rm -f .config .config.old
+
$(OUT):
$(Q)mkdir $@
diff --git a/tools/kconfig/Makefile b/tools/kconfig/Makefile
index 368ae30..890243b 100644
--- a/tools/kconfig/Makefile
+++ b/tools/kconfig/Makefile
@@ -30,8 +30,9 @@ oldconfig: $(obj)/conf
$< --$@ $(Kconfig)
silentoldconfig: $(obj)/conf
+ @echo " Build Kconfig config file"
$(Q)mkdir -p include/generated
- $< --$@ $(Kconfig)
+ $(Q)$< --$@ $(Kconfig)
# if no path is given, then use src directory to find file
ifdef LSMOD
@@ -80,7 +81,7 @@ update-po-config: $(obj)/kxgettext $(obj)/gconf.glade.h
$(Q)xgettext --default-domain=linux \
--add-comments --keyword=_ --keyword=N_ \
--from-code=UTF-8 \
- --files-from=scripts/kconfig/POTFILES.in \
+ --files-from=tools/kconfig/POTFILES.in \
--output $(obj)/config.pot
$(Q)sed -i s/CHARSET/UTF-8/ $(obj)/config.pot
$(Q)ln -fs Kconfig.i386 arch/um/Kconfig.arch
@@ -109,15 +110,8 @@ savedefconfig: $(obj)/conf
$< --$@=defconfig $(Kconfig)
defconfig: $(obj)/conf
-ifeq ($(KBUILD_DEFCONFIG),)
- $< --defconfig $(Kconfig)
-else
- @echo "*** Default configuration is based on '$(KBUILD_DEFCONFIG)'"
- $(Q)$< --defconfig=arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG) $(Kconfig)
-endif
-
-%_defconfig: $(obj)/conf
- $(Q)$< --defconfig=arch/$(SRCARCH)/configs/$@ $(Kconfig)
+ @echo " Build default config"
+ $(Q)$< --defconfig=/dev/null $(Kconfig)
# Help text used by make help
help:
@@ -352,3 +346,16 @@ lex.%.c: %.l
cp $@ $@_shipped
endif
+
+VPATH := $(srctree)
+
+$(obj)/%:: $(src)/%_shipped
+ $(Q)cat $< > $@
+
+host-cobjs := $(sort $(foreach m,$(hostprogs-y),$($(m)-objs)))
+host-cobjs := $(addprefix $(obj)/,$(host-cobjs))
+hostprogs-y := $(addprefix $(obj)/,$(hostprogs-y))
+$(host-cobjs) : $(obj)/%.o : $(src)/%.c
+ $(Q)$(HOSTCC) -I$(obj) -I$(srctree)/$(src) $(HOSTCFLAGS) $(HOSTCFLAGS_$(@F)) $(HOST_EXTRACFLAGS) -c -o $@ $<
+$(hostprogs-y) : $(obj)/% : $(host-cobjs)
+ $(Q)$(HOSTCC) $(HOSTLDFLAGS) -o $@ $(addprefix $(obj)/,$($(@F)-objs)) $(HOST_LOADLIBES) $(HOSTLOADLIBES_$(@F))
diff --git a/tools/kconfig/POTFILES.in b/tools/kconfig/POTFILES.in
index 9674573..f0baccd 100644
--- a/tools/kconfig/POTFILES.in
+++ b/tools/kconfig/POTFILES.in
@@ -1,12 +1,12 @@
-scripts/kconfig/lxdialog/checklist.c
-scripts/kconfig/lxdialog/inputbox.c
-scripts/kconfig/lxdialog/menubox.c
-scripts/kconfig/lxdialog/textbox.c
-scripts/kconfig/lxdialog/util.c
-scripts/kconfig/lxdialog/yesno.c
-scripts/kconfig/mconf.c
-scripts/kconfig/conf.c
-scripts/kconfig/confdata.c
-scripts/kconfig/gconf.c
-scripts/kconfig/gconf.glade.h
-scripts/kconfig/qconf.cc
+tools/kconfig/lxdialog/checklist.c
+tools/kconfig/lxdialog/inputbox.c
+tools/kconfig/lxdialog/menubox.c
+tools/kconfig/lxdialog/textbox.c
+tools/kconfig/lxdialog/util.c
+tools/kconfig/lxdialog/yesno.c
+tools/kconfig/mconf.c
+tools/kconfig/conf.c
+tools/kconfig/confdata.c
+tools/kconfig/gconf.c
+tools/kconfig/gconf.glade.h
+tools/kconfig/qconf.cc
diff --git a/tools/kconfig/gconf.c b/tools/kconfig/gconf.c
index 4558961..b7f31f2 100644
--- a/tools/kconfig/gconf.c
+++ b/tools/kconfig/gconf.c
@@ -1521,7 +1521,7 @@ int main(int ac, char *av[])
/* Determine GUI path */
env = getenv(SRCTREE);
if (env)
- glade_file = g_strconcat(env, "/scripts/kconfig/gconf.glade", NULL);
+ glade_file = g_strconcat(env, "/tools/kconfig/gconf.glade", NULL);
else if (av[0][0] == '/')
glade_file = g_strconcat(av[0], ".glade", NULL);
else
diff --git a/tools/kconfig/kconfig_load.c b/tools/kconfig/kconfig_load.c
index dbdcaad..2d0cff8 100644
--- a/tools/kconfig/kconfig_load.c
+++ b/tools/kconfig/kconfig_load.c
@@ -15,7 +15,7 @@ void kconfig_load(void)
handle = dlopen("./libkconfig.so", RTLD_LAZY);
if (!handle) {
- handle = dlopen("./scripts/kconfig/libkconfig.so", RTLD_LAZY);
+ handle = dlopen("./tools/kconfig/libkconfig.so", RTLD_LAZY);
if (!handle) {
fprintf(stderr, "%s\n", dlerror());
exit(1);
--
1.7.3.5
More information about the SeaBIOS
mailing list