missing dependencies for yenta_socket.ko?
I changed yenta.c and tried to recompile yenta_socket.ko, the resulting kernel module. I get:
root@gswi1164:/usr/src/linux-2.5.53# LANG=C make drivers/pcmcia/yenta_socket.ko make: Nothing to be done for `drivers/pcmcia/yenta_socket.ko'. root@gswi1164:/usr/src/linux-2.5.53# ls -l drivers/pcmcia/yenta_socket.ko drivers/pcmcia/yenta.c -rw-r--r-- 1 1046 101 26000 2002-12-28 10:09 drivers/pcmcia/yenta.c -rw-r--r-- 1 root root 18567 2002-12-28 09:55 drivers/pcmcia/yenta_socket.ko
Shouldn't that work?
Jochen
Signature · 1 line
Wenn Du nicht weißt was Du tust, tu's mit Eleganz.
Quoted 6 lines · Jochen Hein
I changed
yenta.cand tried to recompile yenta_socket.ko, the resulting kernel module. I get:root@gswi1164:/usr/src/linux-2.5.53# LANG=C make drivers/pcmcia/yenta_socket.ko make: Nothing to be done for `drivers/pcmcia/yenta_socket.ko'.
Above trick does not work for composite objects.
The best approach is to use the following trick:
make SUBDIRS=drivers/pcmcia
That will build all files - as required - starting with drivers/pcmcia. The rest of the build process then proceeds as opposed to the normal single targets.
The top-level Makefile needs an entry to let the above work with single target .ko files, patch attached (on top of my earlier kbuild changes).
Sam
===== Makefile 1.349 vs edited =====
Makefile +2 -0
@@ -419,6 +419,8 @@ $(Q)$(MAKE) $(build)=$(@D) $@ %.o: %.c scripts FORCE $(Q)$(MAKE) $(build)=$(@D) $@ +%.ko: %.c scripts FORCE + $(Q)$(MAKE) $(build)=$(@D) KBUILD_BUILTIN=1 KBUILD_MODULES=1 $@ %.lst: %.c scripts FORCE $(Q)$(MAKE) $(build)=$(@D) $@ %.s: %.S scripts FORCE