summaryrefslogtreecommitdiff
path: root/scripts/basic/Makefile
diff options
context:
space:
mode:
authorAndrew Morton <akpm@osdl.org>2004-03-15 15:15:05 -0800
committerLinus Torvalds <torvalds@ppc970.osdl.org>2004-03-15 15:15:05 -0800
commit952a0ae394f450c878aa2e408c23236896a2efac (patch)
tree80f2bc92563ea25c4ce0d6614e164972cf170e59 /scripts/basic/Makefile
parent6f2dbcb9d373d13170c1ec0a5f72ac3fe8b77c7a (diff)
[PATCH] Fix early parallel make failures
From: Sam Ravnborg <sam@ravnborg.org> Ingo said: Starting at around 2.6.4-rc2-mm1, I keep seeing 'scripts/fixdep: Text file busy' messages when doing a -j10 bzImage build - which seems to suggest that by the time fixdep is used by the build system it's not built yet. Sam said: I was pretty sure it was something I had caused, so I gave it a spin. What actually happened was that we tried to build the target 'silentoldconfig' in parrallel with 'scripts'. Since 'silentoldconfig' started a new make and then the config target needed 'scripts' we saw two parallel runs. The way I decided to fix it was to split scripts/ in two parts. The first part is now the very basic stuff - moved to scripts/basic/. The second part is dependent on kernel config etc. and kept in scripts/ In the 2.7 timeframe i will redo this initial stuff - it's becoming too messy for anyone to understand today. Description: Fix dependencies in early phases of kernel build. This solves a few problems nively: modpost is no longer rebuild twicewhen reaching the 'target' state 'make -j10' now works nicely again The patch is rather large due to the following file moves: mkdir scripts/basic mv scripts/fixdep.c scripts/basic mv scripts/split-include.c scripts/basic mv scripts/docproc.c scripts/basic
Diffstat (limited to 'scripts/basic/Makefile')
-rw-r--r--scripts/basic/Makefile18
1 files changed, 18 insertions, 0 deletions
diff --git a/scripts/basic/Makefile b/scripts/basic/Makefile
new file mode 100644
index 000000000000..3afb3bf4d12c
--- /dev/null
+++ b/scripts/basic/Makefile
@@ -0,0 +1,18 @@
+###
+# Makefile.basic list the most basic programs used during the build process.
+# The programs listed herein is what is needed to do the basic stuff,
+# such as splitting .config and fix dependency file.
+# This initial step is needed to avoid files to be recompiled
+# when kernel configuration changes (which is what happens when
+# .config is included by main Makefile.
+# ---------------------------------------------------------------------------
+# fixdep: Used to generate dependency information during build process
+# split-include: Divide all config symbols up in a number of files in
+# include/config/...
+# docproc: Used in Documentation/docbook
+
+host-progs := fixdep split-include docproc
+always := $(host-progs)
+
+# fixdep is needed to compile other host programs
+$(addprefix $(obj)/,$(filter-out fixdep,$(always))): $(obj)/fixdep