Skip to contentSkip to conversation

missing dependencies for yenta_socket.ko?

2.5.53, KBUILD Jochen Hein 2 participants 2 messages Dec 28, 2002 Kbuild

lore
Share & tools
lore
#0 lore raw

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.
#1 lore raw
Quoted 6 lines · Jochen Hein

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'.

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