Messages in this thread | | | Subject | Re: Makefile issues in 2.2.1 | From | Andi Kleen <> | Date | 19 Feb 1999 14:21:11 +0100 |
| |
In article <B5AA85F4BCB@rkdvmks1.ngate.uni-regensburg.de>, ulrich.windl@rz.uni-regensburg.de (Ulrich Windl) writes: > Hello! > Someone once said the kernel doesn't need proper symbolic links to be > set up for include files. Unfortunately this is not alwys true:
> cd /usr/src/linux22-PPS/ > make bzImage > make: *** No rule to make target > `/usr/src/linux/include/asm/param.h', needed by > `/usr/src/linux/include/linux/sched.h'. Stop.
> Compilation exited abnormally with code 2 at Thu Feb 18 19:46:47
> Can't "./include" be used instead of "/usr/src/linux/include"? If you > have several trees in parallel this is nasty. Despite of that "make > kernel/time.o" worked even without the link.
Try running "make depend" again. It looks like you ran depend when the tree was somewhere else, and then moved/copied it. .depend files contain complete path names.
> I can "make kernel/time.o", but I can't "make kernel/kernel.o" (all > objects in the library), nor can I "make kernel". When hunting for > syntax and other stupid errors, you don't want all the rest to be > compiled until you have fixed the most stupid bugs.
This is a unfortunate result of using recursive makefiles. Only fix would be to rewrite the complete makefile system to use a single makefile which knows about all subdirs. http://www.tip.net.au/~millerp/rmch/recu-make-cons-harm.html summarizes all the reasons why this is a good idea. Unfortunately it is not too likely in the near future for linux kernel, if at all.
> Finally I had forgotten to export one new symbol in kernel/ksyms.c. > After ading it, make decided to do a full rebuild. Knowing better, I > just mad a "make -t bzImage", and then removed the objects affected. > When I re-started "make bzImage" all the directories were processed, > and files were compiled, but no kernel was made! Only after removing > vmlinux it was rebuilt. I guess there is some bad dependency inside.
make always visits all subdirectories, that is caused by the recursive makes (see above), but it should only rebuild real dependencies. I assume some of your problems are caused by your bogus .depend files.
-Andi
-- This is like TV. I don't like TV.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |