summaryrefslogtreecommitdiffstats
path: root/Makefile
AgeCommit message (Collapse)AuthorFilesLines
2006-03-06kbuild: change kbuild to not rely on incorrect GNU make behaviorPaul Smith1-29/+35
The kbuild system takes advantage of an incorrect behavior in GNU make. Once this behavior is fixed, all files in the kernel rebuild every time, even if nothing has changed. This patch ensures kbuild works with both the incorrect and correct behaviors of GNU make. For more details on the incorrect behavior, see: http://lists.gnu.org/archive/html/bug-make/2006-03/msg00003.html Changes in this patch: - Keep all targets that are to be marked .PHONY in a variable, PHONY. - Add .PHONY: $(PHONY) to mark them properly. - Remove any $(PHONY) files from the $? list when determining whether targets are up-to-date or not. Signed-off-by: Paul Smith <psmith@gnu.org> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2006-03-05kbuild: fix make dir/file.xx when asm symlink is missingSam Ravnborg1-6/+6
Added a dependency so we do full preparation before trying to build single file targets. This fixes a case where Andrew Morton did: make kernel/sched.o rm include/asm make kernel/sched.o -> splat Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2006-02-22kbuild: version.h should depend on .kernelreleaseJan Beulich1-1/+1
Rebuilding a previously built tree while using make's -j options from time to time results in the version.h check running at the same time as the updating of .kernelrelease, resulting in UTS_RELEASE remaining an empty string (and as a side effect causing the entire kernel to be rebuilt). Signed-Off-By: Jan Beulich <jbeulich@novell.com> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2006-02-19kbuild: fix a cscope bug (make cscope segfaults)Mattia Dongili1-1/+1
Workaround a cscope bug where a trailing ':' in VPATH makes it segfault and let it build the cross-reference succesfully. VPATH=/home/mattia/devel/kernel/git/linux-2.6: cscope -b [1] 17555 segmentation fault VPATH=/home/mattia/devel/kernel/git/linux-2.6: cscope -b Signed-off-by: Mattia Dongili <malattia@linux.it> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2006-02-19kbuild: remove a tab from an empty lineAdrian Bunk1-1/+1
Emacs warns if an otherwise empty line starts with a tab. Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2006-02-19kbuild: make cc-version available in kbuild filesSam Ravnborg1-32/+0
Move $(CC) support functions to Kbuild.include so they are available in the kbuild files. In addition the following was done: o as-option documented in Documentation/kbuild/makefiles.txt o Moved documentation to new section to match new scope of functions o added cc-ifversion used to conditionally select a text string dependent on actual $(CC) version o documented cc-ifversion o change so Kbuild.include is read before the kbuild file Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2006-02-19kbuild: run depmod when installing external modulesSam Ravnborg1-1/+20
Following patch enables depmod support when installing external modules. Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2006-02-19kbuild: avoid stale modules in $(MODVERDIR) for external modulesSam Ravnborg1-0/+1
To avoid stale modules located in $(MODVERDIR) aka .tmp_versions/ always delete the directory when building an external module. Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2006-02-19kbuild: Accept various mips sub-types in SUBARCHMartin Michlmayr1-1/+1
uname -m on MIPS can give a number of results, such as mips64. We need to add another substitution to the sed call for SUBARCH in the main Makefile. Signed-off-by: Martin Michlmayr <tbm@cyrius.com> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2006-02-19kbuild: support building individual files for external modulesSam Ravnborg1-22/+44
Support building individual files when dealing with separate modules. So say you have a module named "foo" which consist of two .o files bar.o and fun.o. You can then do: make -C $KERNELSRC M=`pwd` bar.o make -C $KERNELSRC M=`pwd` bar.lst make -C $KERNELSRC M=`pwd` bar.i make -C $KERNELSRC M=`pwd` / <= will build all .o files and link foo.o make -C $KERNELSRC M=`pwd` foo.ko <= will build the module and do the modpost step to create foo.ko The above will also work if the external module is placed in a subdirectory using a hirachy of kbuild files. Thanks to Andreas Gruenbacher <agruen@suse.de> for initial feature request / bug report. Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2006-02-17Linux v2.6.16-rc4v2.6.16-rc4Linus Torvalds1-1/+1
2006-02-15[PATCH] kbuild: revert "fix make -jN with multiple targets with O=..."Benjamin LaHaise1-4/+3
Commit 296e0855b0f9a4ec9be17106ac541745a55b2ce1: "kbuild: fix make -jN with multiple targets with O=..." causes a ~95% increase in build time for the kernel. Before: 4m21s after: 8m1.403s. Can we revert this until another approach is found? Cc: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-02-12Linux v2.6.16-rc3v2.6.16-rc3Linus Torvalds1-1/+1
2006-02-07Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-bugfixLinus Torvalds1-1/+1
2006-02-02Linux v2.6.16-rc2v2.6.16-rc2Linus Torvalds1-1/+1
2006-01-21kbuild: fix build with O=..Sam Ravnborg1-1/+1
.kernelrelease was saved in same directory as kernel source also with make O=... Make sure we kick in the normal logic to shift to the output directory when we build .kernelrelease after executing *config. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> ---
2006-01-16Linux v2.6.16-rc1v2.6.16-rc1Linus Torvalds1-2/+2
2006-01-16[PATCH] sh: Move CPU subtype configuration to its own KconfigPaul Mundt1-0/+7
Currently the CPU subtype options are cluttering up arch/sh/Kconfig somewhat. Given that, this moves all of that in to its own arch/sh/mm/Kconfig. Things like cache configuration are also moved to this new location. This also adds support for strict CPU tuning on newer cores, which requires the addition of as-option. Signed-off-by: Paul Mundt <lethal@linux-sh.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-16Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuildLinus Torvalds1-13/+15
2006-01-16kbuild: fix 'make all install_modules install'Sam Ravnborg1-1/+1
The command 'make all modules_install install' would fail in a virgin tree - pointing at a non-existing directory under /lib/modules/xxx KERNELRELEASE is part of MODLIB and we need to create .kernelrelease before we can properly evaluate KERNELRELEASE, Changing MODLIB to the recursively expanded flavor let it pick up the correct KERNELRELEASE value. Reported by: "Hemmann, Volker Armin" <volker.armin.hemmann@tu-clausthal.de> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2006-01-16kbuild: create .kernelrelease at *config stepSam Ravnborg1-9/+10
To enable 'make kernelrelease' earlier now create .kernelrelease when one of the *config targets are used. Also introduce KERNELVERSION - only user is kconfig. KERNELVERSION was needed to display kernel version in menuconfig - KERNELRELEASE is not valid until configuration has completed. kconfig files modified to use KERNELVERSION. Bug reported by: Rene Rebe <rene@exactcode.de> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2006-01-15kbuild: fix make -jN with multiple targets with O=...Sam Ravnborg1-3/+4
The way multiple targets was handled with make O=... broke because for each high-level target make spawned a parallel make resulting in a broken build. Reported by Keith Owens <kaos@ocs.com.au> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2006-01-15powerpc: Make ARCH=powerpc the default for 32-bit ppcPaul Mackerras1-1/+1
This makes ARCH=powerpc the default on 32-bit powerpc machines, where uname -m returns ppc, as well as on 64-bit powerpc machines. Most people who would be likely to build their own kernels on 32-bit powerpc machines would be using powermacs or CHRP machines, both of which are supported with ARCH=powerpc now. Embedded ppc developers whose ports haven't been moved over to arch/powerpc yet will have to explicitly set ARCH=ppc now. Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-01-10Merge ssh://master.kernel.org/pub/scm/linux/kernel/git/sam/kbuildLinus Torvalds1-43/+54
Fix up some trivial conflicts in {i386|ia64}/Makefile
2006-01-10spelling: s/usefull/useful/Adrian Bunk1-1/+1
Signed-off-by: Adrian Bunk <bunk@stusta.de>
2006-01-09kbuild: re-export VERSION, PATCHLEVEL, SUBLEVELSam Ravnborg1-1/+1
Eric Sandeen <sandeen@sgi.com> pointed out that it is usefull to have access to VERSION, PATCHLEVEL, SUBLEVEL in external modules, and gooling a litte confirmed this. So re-export them. Usage within the kernel is still discouraged but possible. Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2006-01-09kbuild: KERNELRELEASE is only re-defined when buiding the kernelSam Ravnborg1-42/+53
To avoid running setlocalversion as root no longer (re-)define KERNELRELEASE for each run. With this patch KERNELRELEASE is only re-read when we do an actual kernel build. Rationale behind this is "do as little as possible" when executing make install - as root! A new file named .kernelrelease is strored in the root of the kernel tree containing the actual version string. So when we use do a kernel build the .kernelrelease file will be updated. But in all other situations it is left as-is. To make it more visible the kernel now prints out the version being build. Sample: Building kernel 2.6.15-g63b794bf-dirty ... ... The patch also un-exports VERSION PATCHLEVEL SUBLEVEL EXTRAVERSION LOCALVERSION since all users of these are anyway broken - and none is left in the tree. Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2006-01-08kbuild: ensure mrproper removes .old_versionTore Anderson1-1/+1
If the final linking of vmlinux fails, the file .old_version are left behind. This patch ensures the mrproper target will remove it if present. Signed-off-by: Tore Anderson <tore@fud.no> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2006-01-04Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuildLinus Torvalds1-13/+17
2006-01-02Linux v2.6.15v2.6.15Linus Torvalds1-1/+1
Hey, it's fifteen years today since I bought the machine that got Linux started. January 2nd is a good date.
2005-12-26kbuild: always run 'make silentoldconfig' when tree is cleanedSam Ravnborg1-4/+6
If the file .kconfig.d is missing then make sure to run 'make silentoldconfig', since we have no way to detect if a Kconfig file has been updated. -kconfig.d is created by kconfig and is removed as part of 'make clean' so the situation is likely to occur in reality. Jan Beulich <JBeulich@novell.com> reported this bug. Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2005-12-26kbuild: tags file generation fixupSamuel Thibault1-6/+8
Here is a fixup for tags file generation, for proper tags of __releases/__acquires functions. Signed-off-by: samuel.thibault@ens-lyon.org Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2005-12-25kbuild: Add ctags support for function prototypes and external variable ↵John Kacur1-4/+8
declarations This patch adds function prototypes and external variable declarations to the set of tag kinds when running ctags. I find this useful when perusing the kernel. Please apply. Signed-off-by: John Kacur <jkacur@rogers.com> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2005-12-24Linux v2.6.15-rc7v2.6.15-rc7Linus Torvalds1-1/+1
Ho ho ho.
2005-12-18Linux v2.6.15-rc6v2.6.15-rc6Linus Torvalds1-2/+2
Also renamed in honor of Portland being snowed in and everybody sliding around on the highways like greased pumpkins. Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-12-16kbuild: document INSTALL_MOD_PATH in 'make help'Bodo Eggert1-1/+1
Signed-Off-By: Bodo Eggert <7eggert@gmx.de> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2005-12-16[PATCH] kbuild: remove the deprecated check_gccAdrian Bunk1-4/+0
check_gcc has been deprecated for quite some time. Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2005-12-12[PATCH] KERNELRELEASE depends on CONFIG_LOCALVERSIONAndreas Schwab1-1/+1
Sam Ravnborg <sam@ravnborg.org> writes: > Author: Uwe Zeisberger <zeisberg@informatik.uni-freiburg.de> > > [PATCH] kbuild: make kernelrelease in unconfigured kernel prints an error > > Do not include .config for target kernelrelease This is wrong. KERNELRELEASE depends on CONFIG_LOCALVERSION, thus you need .config. Signed-off-by: Andreas Schwab <schwab@suse.de> Cc: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-12-03Linux v2.6.15-rc5v2.6.15-rc5Linus Torvalds1-1/+1
Hey, for no other reason than the fact that I'll be off-line for a week. Of course, I could force everybody to just use git (and when I'm emperor of the world, don't think I won't!), but it seems some people want to just test official releases. Even if they are just -rc's. By the time I'm back, Andrew will have fixed all my bugs, and I'll release it as 2.6.15 and take all the credit. Mwahahahaaa Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-11-30Linux v2.6.15-rc4v2.6.15-rc4Linus Torvalds1-1/+1
2005-11-28Linux v2.6.15-rc3v2.6.15-rc3Linus Torvalds1-1/+1
2005-11-19Linux v2.6.15-rc2v2.6.15-rc2Linus Torvalds1-1/+1
2005-11-13[PATCH] Kbuild: index asm-$(SUBARCH) headers for UMLPaolo 'Blaisorblade' Giarrusso1-1/+12
In Uml, many definitions are borrowed from underlying subarch headers (with #include <asm/arch/stuff.h>). And it has become annoying to keep switching tag files all time, so by default index the underlying subarch headers too. Btw, it adds negligible space to the tags file (less than 1M surely, IIRC it was around 500k over 40M). Finally, preserve the ALLSOURCE_ARCHS command line option (I hope) - if it is set, it is used for headers too as before. But check my construct please, I didn't test this. Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> Acked-by: Jeff Dike <jdike@addtoit.com> Cc: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-11-11Linux v2.6.15-rc1v2.6.15-rc1Linus Torvalds1-2/+2
As per the new release rules: two weeks of merging, and then an -rc1 and calming down for the next release.
2005-11-11ppc64: default build as the merged 'powerpc' architectureLinus Torvalds1-1/+2
After the last merge of the new unified 'powerpc' architecture, ppc64 no longer compiles cleanly as a standalone architecture. Some bits and pieces still exist as files under the old ppc64 hierarchy, but the old "ARCH=ppc64" is dead. So if "uname" says ppc64, that now implies that the default architecture should be "powerpc". Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-11-10Merge master.kernel.org:/pub/scm/linux/kernel/git/sam/kbuildLinus Torvalds1-2/+2
2005-11-10[PATCH] kbuild: build breaks after -imacros was introducedZachary Amsden1-1/+1
I have to revert the recent addition of -imacros to the Makefile to get my tool chain to build. Without the change, below, I get: Note that this looks entirely like a toolchain bug. Here is the offending command: [pid 12163] execve("/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/tradcpp0", ["/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/tradcpp0", "-lang-asm", "-nostdinc", "-Iinclude", "-Iinclude/asm-i386/mach-default", "-D__GNUC__=3", "-D__GNUC_MINOR__=2", "-D__GNUC_PATCHLEVEL__=2", "-D__GXX_ABI_VERSION=102", "-D__ELF__", "-Dunix", "-D__gnu_linux__", "-Dlinux", "-D__ELF__", "-D__unix__", "-D__gnu_linux__", "-D__linux__", "-D__unix", "-D__linux", "-Asystem=posix", "-D__NO_INLINE__", "-D__STDC_HOSTED__=1", "-Acpu=i386", "-Amachine=i386", "-Di386", "-D__i386", "-D__i386__", "-D__tune_i386__", "-D__KERNEL__", "-D__ASSEMBLY__", "-isystem", "/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/include", "-imacros", "include/linux/autoconf.h", "-MD", "arch/i386/kernel/.entry.o.d", "arch/i386/kernel/entry.S", "-o", "/tmp/ccOlsFJR.s"] Which should execute properly, I think. But it does not: zach-dev:linux-2.6.14-zach-work $ make CHK include/linux/version.h CHK include/linux/compile.h CHK usr/initramfs_list AS arch/i386/kernel/entry.o /usr/lib/gcc-lib/i386-redhat-linux/3.2.2/tradcpp0: output filename specified twice make[1]: *** [arch/i386/kernel/entry.o] Error 1 make: *** [arch/i386/kernel] Error 2 gcc (GCC) 3.2.2 20030222 (Red Hat Linux 3.2.2-5) Deprecating the -imacros fixes the build for me. It does not appear to be a simple argument overflow problem in trapcpp0, since deprecating all the defines reproduces the problem as well. Also, switching -imacros to -include fixes the problem. Signed-off-by: Zachary Amsden <zach@vmware.com> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2005-11-09[PATCH] kbuild: make kernelrelease in unconfigured kernel prints an errorUwe Zeisberger1-1/+1
Do not include .config for target kernelrelease Signed-off-by: Uwe Zeisberger <zeisberg@informatik.uni-freiburg.de> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2005-11-07Merge branch 'block-dir' of git://brick.kernel.dk/data/git/linux-2.6-blockLinus Torvalds1-1/+1
2005-11-06[PATCH] kbuild: permanently fix kernel configuration include messRussell King1-6/+2
Include autoconf.h into every kernel compilation via the gcc command line using -imacros. This ensures that we have the kernel configuration included from the start, rather than relying on each file having #include <linux/config.h> as appropriate. History has shown that this is something which is difficult to get right. Since we now include the kernel configuration automatically, make configcheck becomes meaningless, so remove it. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>