summaryrefslogtreecommitdiff
path: root/v4l/Makefile.kernel
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@infradead.org>2006-06-04 05:17:58 -0300
committerMauro Carvalho Chehab <mchehab@infradead.org>2006-06-04 05:17:58 -0300
commit60f499c58b5e9b8f97444123f1860f727a72cee4 (patch)
tree213e8d44352f8e461d713a32e539e829940f039b /v4l/Makefile.kernel
parent093aa9a5ddcc2707db1816f8efe523a782d85e7e (diff)
downloadmediapointer-dvb-s2-60f499c58b5e9b8f97444123f1860f727a72cee4.tar.gz
mediapointer-dvb-s2-60f499c58b5e9b8f97444123f1860f727a72cee4.tar.bz2
New system for building kernel's config programs
From: Trent Piepho <xyzzy@speakeasy.org> Since v4l-dvb now uses the kernel's config system, it needs certain kernel binaries like qconf, mconf, and lxdialog to run the config targets. The kernel's Makefile is not kind enough to give us a target to just build these programs. What this patch does is introduce a new makefile, Makefile.kernel, which includes the kernel's top-level Makefile. Then adds some new "v4l-*" targets which just build the kernel config programs. The main v4l Makefile is patched to add the necessary kernel conf programs as dependencies to their respective config targets. Rules to build the kernel conf programs are added which invoke a sub-make with the new Makefile.kernel. These rules are only invoked when the kernel conf programs needed don't yet exist. If they already exist, no write access to the kernel source tree is needed. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'v4l/Makefile.kernel')
-rw-r--r--v4l/Makefile.kernel46
1 files changed, 46 insertions, 0 deletions
diff --git a/v4l/Makefile.kernel b/v4l/Makefile.kernel
new file mode 100644
index 000000000..b01c17f55
--- /dev/null
+++ b/v4l/Makefile.kernel
@@ -0,0 +1,46 @@
+# This Makefile is used to build sources that are part of the kernel tree.
+# What we want are the various programs used by the kconfig system. We can't
+# just directly call the top-level kernel Makefile, as it doesn't provide
+# targets to only build the kconfig system. It provides targets to build
+# the kconfig system *and then configure the kernel*.
+
+# What we do is include the top-level kernel Makefile here, to get all the
+# variables and rules it defines, and then add our own targets to just build
+# the kconfig system. You can think of this file as a modified version of the
+# top-level kernel Makefile that has "kconfig build only" targets added to it.
+# Each of these new targets has the prefix v4l- so it doesn't conflict with
+# any targets in the kernel Makefile.
+
+# Like the kernel Makefile, this Makefile should have the cwd be the root
+# of the kernel source.
+
+# These should be defined on the command line, to override the kernel Makefile
+# config-targets := 1
+# mixed-targets := 0
+# dot-config := 0
+
+include Makefile
+
+# Used by the config target
+v4l-conf: scripts_basic
+ $(MAKE) $(build)=scripts/kconfig scripts/kconfig/conf
+
+# Used by the xconfig target
+v4l-qconf: scripts_basic
+ $(MAKE) $(build)=scripts/kconfig qconf-target=1 scripts/kconfig/qconf
+
+# Used by the qconfig target
+v4l-gconf: scripts_basic
+ $(MAKE) $(build)=scripts/kconfig gconf-target=1 scripts/kconfig/gconf
+
+# Used by the menuconfig target, also needs lxdialog
+v4l-mconf: scripts_basic
+ $(MAKE) $(build)=scripts/kconfig scripts/kconfig/mconf
+
+# Rule used for kernel where lxdialog is in directory scripts/lxdialog
+v4l-%/scripts/lxdialog/lxdialog: scripts_basic
+ $(MAKE) $(build)=scripts/lxdialog
+
+# Rule used for kernel where lxdialog is in directory scripts/kconfig/lxdialog
+v4l-%/scripts/kconfig/lxdialog/lxdialog: scripts_basic
+ $(MAKE) $(build)=scripts/kconfig/lxdialog