-----Original Message----- From: kernelnewbies-bounces@kernelnewbies.org [mailto:kernelnewbies- bounces@kernelnewbies.org] On Behalf Of Robert P. J. Day Sent: Friday, February 24, 2012 11:41 AM To: Kernel Newbies Subject: want to verify equivalence of Kconfig variants
i'm fairly sure i know the answer to this, but i figured i'd run it by others just to make sure i'm not missing anything subtle.
in drivers/video/omap2/Makefile, we see:
... snip ... obj-$(CONFIG_OMAP2_DSS) += dss/ obj-$(CONFIG_FB_OMAP2) += omapfb/ obj-y += displays/ ... snip ...
and when i see "obj-y", i like to assume that's a component that will be compiled unconditionally. but if you look at the Kconfig file in the displays/ directory, you see:
menu "OMAP2/3 Display Device Drivers" depends on OMAP2_DSS ... entire file contents ... endmenu
but that suggests that that entire subdirectory depends on OMAP2_DSS, so one could remove the dependency from that Kconfig file and just move it up to the Makefile above:
obj-$(CONFIG_OMAP2_DSS) += displays/
correct? i prefer that approach since the dependency is obvious from the Makefile, without having to descend into the directory itself to learn of it.
thoughts? is there anything i'm not noticing about this?
rday
I'm no expert on kbuild, but I don't think your modification would be equivalent to what's there now. In Documentation/kbuild/makefiles.txt, they describe what obj-y means in section 3.2. If I follow the description, it defines objects that will be linked with the kernel image, so this: obj-y += displays/ presumably means that all source files in the displays subdirectory will be compiled and linked with the kernel image. With this: obj-$(CONFIG_OMAP2_DSS) += displays/ CONFIG_OMAP2_DSS could evaluate to 'm' depending on your configuration, which would mean the same objects would be linked into a loadable module. Jeff Haran