On Sun, May 11, 2008 at 10:00:43PM +0200, Jiri Slaby wrote:diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile
index 8a5cbbe..c5bca8f 100644
--- a/drivers/hid/Makefile
+++ b/drivers/hid/Makefile
@@ -15,3 +15,25 @@ obj-$(CONFIG_USB_HID) += usbhid/
obj-$(CONFIG_USB_MOUSE) += usbhid/
obj-$(CONFIG_USB_KBD) += usbhid/
+targets := hid-dummy.h
+
+ifdef CONFIG_HID_COMPAT
+
+obj-m += hid-dummy.o
+
+$(srctree)/$(src)/hid-dummy.c: $(obj)/hid-dummy.h
+
+$(obj)/hid-dummy.h: $(filter-out $(srctree)/drivers/hid/hid-dummy.c,$(wildcard $(srctree)/drivers/hid/*.c))
+ @echo -e 'static void __always_inline hid_dummy_load(void)\n{' > $@
+ @FUNS=`grep -h 'HID_COMPAT_LOAD_DRIVER(' $(srctree)/drivers/hid/*.c | \
+ sed -e 's/HID_COMPAT_LOAD_DRIVER( *\([^ ]*\) *) *;/\1/'`; \
+ for FUN in $$FUNS; do \
+ echo -e "\textern void hid_compat_$$FUN(void);"; \
+ done >> $@; \
+ echo >> $@; \
+ for FUN in $$FUNS; do \
+ echo -e "\thid_compat_$$FUN();"; \
+ done >> $@
+ @echo "}" >> $@
I would prefer to see this done explicit in favour of some magic
makefile fragment as the above.
It is much simpler to understand if done explicit.
And it is not like we are talking 10 or 50 files here.