aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Ravnborg <sam@neptun.(none)>2007-10-15 16:25:06 -0400
committerSam Ravnborg <sam@neptun.(none)>2007-10-15 16:25:06 -0400
commitf77bf01425b11947eeb3b5b54685212c302741b8 (patch)
tree1d2b8dc9eec4538b5e44139d77c018d9c3ee1f30
parent06c5040cdb13d27adad118f2fbfae905a1911b37 (diff)
kbuild: introduce ccflags-y, asflags-y and ldflags-y
Introduce ccflags-y, asflags-y and ldflags-y so we soon can deprecate use of EXTRA_CFLAGS, EXTRA_AFLAGS and EXTRA_LDFLAGS. This patch does not touch any in-tree users - thats next round. Lets get this committed first and then fix the users of the soon to be deprecated variants next. The rationale behind this change is to introduce support for makefile fragments like: ccflags-$(CONFIG_WHATEVER_DEBUG) := -DDEBUG As a replacement for the uglier: ifeq ($(CONFIG_WHATEVER_DEBUG),y) EXTRA_CFLAGS := -DDEBUG endif Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
-rw-r--r--Documentation/kbuild/makefiles.txt37
-rw-r--r--scripts/Makefile.build4
-rw-r--r--scripts/Makefile.lib16
-rwxr-xr-xscripts/makelst4
4 files changed, 35 insertions, 26 deletions
diff --git a/Documentation/kbuild/makefiles.txt b/Documentation/kbuild/makefiles.txt
index 08fbe6cd309d..f099b814d383 100644
--- a/Documentation/kbuild/makefiles.txt
+++ b/Documentation/kbuild/makefiles.txt
@@ -276,40 +276,39 @@ more details, with real examples.
276 276
277--- 3.7 Compilation flags 277--- 3.7 Compilation flags
278 278
279 EXTRA_CFLAGS, EXTRA_AFLAGS, EXTRA_LDFLAGS 279 ccflags-y, asflags-y and ldflags-y
280 The three flags listed above applies only to the kbuild makefile
281 where they are assigned. They are used for all the normal
282 cc, as and ld invocation happenign during a recursive build.
283 Note: Flags with the same behaviour were previously named:
284 EXTRA_CFLAGS, EXTRA_AFLAGS and EXTRA_LDFLAGS.
285 They are yet supported but their use are deprecated.
280 286
281 All the EXTRA_ variables apply only to the kbuild makefile 287 ccflags-y specifies options for compiling C files with $(CC).
282 where they are assigned. The EXTRA_ variables apply to all
283 commands executed in the kbuild makefile.
284
285 $(EXTRA_CFLAGS) specifies options for compiling C files with
286 $(CC).
287 288
288 Example: 289 Example:
289 # drivers/sound/emu10k1/Makefile 290 # drivers/sound/emu10k1/Makefile
290 EXTRA_CFLAGS += -I$(obj) 291 ccflags-y += -I$(obj)
291 ifdef DEBUG 292 ccflags-$(DEBUG) += -DEMU10K1_DEBUG
292 EXTRA_CFLAGS += -DEMU10K1_DEBUG
293 endif
294 293
295 294
296 This variable is necessary because the top Makefile owns the 295 This variable is necessary because the top Makefile owns the
297 variable $(KBUILD_CFLAGS) and uses it for compilation flags for the 296 variable $(KBUILD_CFLAGS) and uses it for compilation flags for the
298 entire tree. 297 entire tree.
299 298
300 $(EXTRA_AFLAGS) is a similar string for per-directory options 299 asflags-y is a similar string for per-directory options
301 when compiling assembly language source. 300 when compiling assembly language source.
302 301
303 Example: 302 Example:
304 #arch/x86_64/kernel/Makefile 303 #arch/x86_64/kernel/Makefile
305 EXTRA_AFLAGS := -traditional 304 asflags-y := -traditional
306 305
307 306
308 $(EXTRA_LDFLAGS) is a string for per-directory options to $(LD). 307 ldflags-y is a string for per-directory options to $(LD).
309 308
310 Example: 309 Example:
311 #arch/m68k/fpsp040/Makefile 310 #arch/m68k/fpsp040/Makefile
312 EXTRA_LDFLAGS := -x 311 ldflags-y := -x
313 312
314 CFLAGS_$@, AFLAGS_$@ 313 CFLAGS_$@, AFLAGS_$@
315 314
@@ -495,9 +494,9 @@ more details, with real examples.
495 494
496 Example: 495 Example:
497 #fs/reiserfs/Makefile 496 #fs/reiserfs/Makefile
498 EXTRA_CFLAGS := $(call cc-ifversion, -lt, 0402, -O1) 497 ccflags-y := $(call cc-ifversion, -lt, 0402, -O1)
499 498
500 In this example, EXTRA_CFLAGS will be assigned the value -O1 if the 499 In this example, ccflags-y will be assigned the value -O1 if the
501 $(CC) version is less than 4.2. 500 $(CC) version is less than 4.2.
502 cc-ifversion takes all the shell operators: 501 cc-ifversion takes all the shell operators:
503 -eq, -ne, -lt, -le, -gt, and -ge 502 -eq, -ne, -lt, -le, -gt, and -ge
@@ -783,7 +782,7 @@ When kbuild executes, the following steps are followed (roughly):
783 Example: 782 Example:
784 #arch/s390/Makefile 783 #arch/s390/Makefile
785 LDFLAGS := -m elf_s390 784 LDFLAGS := -m elf_s390
786 Note: EXTRA_LDFLAGS can be used to further customise 785 Note: ldflags-y can be used to further customise
787 the flags used. See chapter 3.7. 786 the flags used. See chapter 3.7.
788 787
789 LDFLAGS_MODULE Options for $(LD) when linking modules 788 LDFLAGS_MODULE Options for $(LD) when linking modules
@@ -1100,7 +1099,7 @@ When kbuild executes, the following steps are followed (roughly):
1100 1099
1101 When building the *.lds target, kbuild uses the variables: 1100 When building the *.lds target, kbuild uses the variables:
1102 KBUILD_CPPFLAGS : Set in top-level Makefile 1101 KBUILD_CPPFLAGS : Set in top-level Makefile
1103 EXTRA_CPPFLAGS : May be set in the kbuild makefile 1102 cppflags-y : May be set in the kbuild makefile
1104 CPPFLAGS_$(@F) : Target specific flags. 1103 CPPFLAGS_$(@F) : Target specific flags.
1105 Note that the full filename is used in this 1104 Note that the full filename is used in this
1106 assignment. 1105 assignment.
diff --git a/scripts/Makefile.build b/scripts/Makefile.build
index d32b40048f1f..de9836eee8bb 100644
--- a/scripts/Makefile.build
+++ b/scripts/Makefile.build
@@ -22,6 +22,10 @@ EXTRA_AFLAGS :=
22EXTRA_CFLAGS := 22EXTRA_CFLAGS :=
23EXTRA_CPPFLAGS := 23EXTRA_CPPFLAGS :=
24EXTRA_LDFLAGS := 24EXTRA_LDFLAGS :=
25asflags-y :=
26ccflags-y :=
27cppflags-y :=
28ldflags-y :=
25 29
26# Read .config if it exist, otherwise ignore 30# Read .config if it exist, otherwise ignore
27-include include/config/auto.conf 31-include include/config/auto.conf
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index 95e6e0fbdbd0..3c5e88bfecf1 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -1,3 +1,9 @@
1# Backward compatibility
2asflags-y += $(EXTRA_AFLAGS)
3ccflags-y += $(EXTRA_CFLAGS)
4cppflags-y += $(EXTRA_CPPFLAGS)
5ldflags-y += $(EXTRA_LDFLAGS)
6
1# Figure out what we need to build from the various variables 7# Figure out what we need to build from the various variables
2# =========================================================================== 8# ===========================================================================
3 9
@@ -84,9 +90,9 @@ basename_flags = -D"KBUILD_BASENAME=KBUILD_STR($(call name-fix,$(basetarget)))"
84modname_flags = $(if $(filter 1,$(words $(modname))),\ 90modname_flags = $(if $(filter 1,$(words $(modname))),\
85 -D"KBUILD_MODNAME=KBUILD_STR($(call name-fix,$(modname)))") 91 -D"KBUILD_MODNAME=KBUILD_STR($(call name-fix,$(modname)))")
86 92
87_c_flags = $(KBUILD_CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_$(basetarget).o) 93_c_flags = $(KBUILD_CFLAGS) $(ccflags-y) $(CFLAGS_$(basetarget).o)
88_a_flags = $(KBUILD_AFLAGS) $(EXTRA_AFLAGS) $(AFLAGS_$(basetarget).o) 94_a_flags = $(KBUILD_AFLAGS) $(asflags-y) $(AFLAGS_$(basetarget).o)
89_cpp_flags = $(KBUILD_CPPFLAGS) $(EXTRA_CPPFLAGS) $(CPPFLAGS_$(@F)) 95_cpp_flags = $(KBUILD_CPPFLAGS) $(cppflags-y) $(CPPFLAGS_$(@F))
90 96
91# If building the kernel in a separate objtree expand all occurrences 97# If building the kernel in a separate objtree expand all occurrences
92# of -Idir to -I$(srctree)/dir except for absolute paths (starting with '/'). 98# of -Idir to -I$(srctree)/dir except for absolute paths (starting with '/').
@@ -115,7 +121,7 @@ a_flags = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(KBUILD_CPPFLAGS) \
115 121
116cpp_flags = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(__cpp_flags) 122cpp_flags = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(__cpp_flags)
117 123
118ld_flags = $(LDFLAGS) $(EXTRA_LDFLAGS) 124ld_flags = $(LDFLAGS) $(ldflags-y)
119 125
120# Finds the multi-part object the current object will be linked into 126# Finds the multi-part object the current object will be linked into
121modname-multi = $(sort $(foreach m,$(multi-used),\ 127modname-multi = $(sort $(foreach m,$(multi-used),\
@@ -145,7 +151,7 @@ $(obj)/%:: $(src)/%_shipped
145# --------------------------------------------------------------------------- 151# ---------------------------------------------------------------------------
146 152
147quiet_cmd_ld = LD $@ 153quiet_cmd_ld = LD $@
148cmd_ld = $(LD) $(LDFLAGS) $(EXTRA_LDFLAGS) $(LDFLAGS_$(@F)) \ 154cmd_ld = $(LD) $(LDFLAGS) $(ldflags-y) $(LDFLAGS_$(@F)) \
149 $(filter-out FORCE,$^) -o $@ 155 $(filter-out FORCE,$^) -o $@
150 156
151# Objcopy 157# Objcopy
diff --git a/scripts/makelst b/scripts/makelst
index 4fc80f2b7e19..e6581496d820 100755
--- a/scripts/makelst
+++ b/scripts/makelst
@@ -3,8 +3,8 @@
3# with correct relocations from System.map 3# with correct relocations from System.map
4# Requires the following lines in makefile: 4# Requires the following lines in makefile:
5#%.lst: %.c 5#%.lst: %.c
6# $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_$@) -g -c -o $*.o $< 6# $(CC) $(c_flags) -g -c -o $*.o $< &&
7# $(srctree)/scripts/makelst $*.o $(objtree)/System.map $(OBJDUMP) 7# $(srctree)/scripts/makelst $*.o System.map $(OBJDUMP) > $@
8# 8#
9# Copyright (C) 2000 IBM Corporation 9# Copyright (C) 2000 IBM Corporation
10# Author(s): DJ Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com) 10# Author(s): DJ Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com)