add kconfig from linux 2.6 to scripts/config
[openwrt-10.03/.git] / scripts / config / Makefile
diff --git a/scripts/config/Makefile b/scripts/config/Makefile
new file mode 100644 (file)
index 0000000..04e8330
--- /dev/null
@@ -0,0 +1,49 @@
+# ===========================================================================
+# Kernel configuration targets
+# These targets are used from top-level makefile
+
+# ===========================================================================
+# Shared Makefile for the various kconfig executables:
+# conf:          Used for defconfig, oldconfig and related targets
+# mconf:  Used for the mconfig target.
+#         Utilizes the lxdialog package
+# object files used by all kconfig flavours
+
+conf-objs      := conf.o zconf.tab.o
+mconf-objs     := mconf.o zconf.tab.o
+
+clean-files    := lkc_defs.h qconf.moc .tmp_qtcheck \
+                  .tmp_gtkcheck zconf.tab.c lex.zconf.c zconf.hash.c
+
+all: conf mconf lxdialog
+
+.PHONY: lxdialog
+lxdialog:
+       $(MAKE) -C lxdialog
+
+conf: $(conf-objs)
+mconf: $(mconf-objs)
+
+clean:
+       rm -f *.o $(clean-files) conf mconf
+       $(MAKE) -C lxdialog clean
+
+zconf.tab.o: lex.zconf.c zconf.hash.c
+
+kconfig_load.o: lkc_defs.h
+
+lkc_defs.h: $(src)/lkc_proto.h
+       sed < $< > $@ 's/P(\([^,]*\),.*/#define \1 (\*\1_p)/'
+
+zconf.tab.c: zconf.y
+lex.zconf.c: zconf.l
+zconf.hash.c: zconf.gperf
+
+%.tab.c: %.y
+       bison -l -b $* -p $(notdir $*) $< && cp $@ $@_shipped || cp $@_shipped $@
+
+lex.%.c: %.l
+       flex -L -P$(notdir $*) -o$@ $< && cp $@ $@_shipped || cp $@_shipped $@
+
+%.hash.c: %.gperf
+       gperf < $< > $@ && cp $@ $@_shipped || cp $@_shipped $@