Makefile.build (f594d0b9b34aeb8e3ffa524eaa8a4085afb56d22) | Makefile.build (a5967db9af51a84f5e181600954714a9e4c69f1f) |
---|---|
1# ========================================================================== 2# Building 3# ========================================================================== 4 5src := $(obj) 6 7PHONY := __build 8__build: --- 67 unchanged lines hidden (view full) --- 76ifndef obj 77$(warning kbuild: Makefile.build is included improperly) 78endif 79 80# =========================================================================== 81 82ifneq ($(strip $(lib-y) $(lib-m) $(lib-)),) 83lib-target := $(obj)/lib.a | 1# ========================================================================== 2# Building 3# ========================================================================== 4 5src := $(obj) 6 7PHONY := __build 8__build: --- 67 unchanged lines hidden (view full) --- 76ifndef obj 77$(warning kbuild: Makefile.build is included improperly) 78endif 79 80# =========================================================================== 81 82ifneq ($(strip $(lib-y) $(lib-m) $(lib-)),) 83lib-target := $(obj)/lib.a |
84obj-y += $(obj)/lib-ksyms.o |
|
84endif 85 86ifneq ($(strip $(obj-y) $(obj-m) $(obj-) $(subdir-m) $(lib-target)),) 87builtin-target := $(obj)/built-in.o 88endif 89 90modorder-target := $(obj)/modules.order 91 --- 261 unchanged lines hidden (view full) --- 353 354# To build objects in subdirs, we need to descend into the directories 355$(sort $(subdir-obj-y)): $(subdir-ym) ; 356 357# 358# Rule to compile a set of .o files into one .o file 359# 360ifdef builtin-target | 85endif 86 87ifneq ($(strip $(obj-y) $(obj-m) $(obj-) $(subdir-m) $(lib-target)),) 88builtin-target := $(obj)/built-in.o 89endif 90 91modorder-target := $(obj)/modules.order 92 --- 261 unchanged lines hidden (view full) --- 354 355# To build objects in subdirs, we need to descend into the directories 356$(sort $(subdir-obj-y)): $(subdir-ym) ; 357 358# 359# Rule to compile a set of .o files into one .o file 360# 361ifdef builtin-target |
361quiet_cmd_link_o_target = LD $@ | 362 363ifdef CONFIG_THIN_ARCHIVES 364 cmd_make_builtin = rm -f $@; $(AR) rcST$(KBUILD_ARFLAGS) 365 cmd_make_empty_builtin = rm -f $@; $(AR) rcST$(KBUILD_ARFLAGS) 366 quiet_cmd_link_o_target = AR $@ 367else 368 cmd_make_builtin = $(LD) $(ld_flags) -r -o 369 cmd_make_empty_builtin = rm -f $@; $(AR) rcs$(KBUILD_ARFLAGS) 370 quiet_cmd_link_o_target = LD $@ 371endif 372 |
362# If the list of objects to link is empty, just create an empty built-in.o 363cmd_link_o_target = $(if $(strip $(obj-y)),\ | 373# If the list of objects to link is empty, just create an empty built-in.o 374cmd_link_o_target = $(if $(strip $(obj-y)),\ |
364 $(LD) $(ld_flags) -r -o $@ $(filter $(obj-y), $^) \ | 375 $(cmd_make_builtin) $@ $(filter $(obj-y), $^) \ |
365 $(cmd_secanalysis),\ | 376 $(cmd_secanalysis),\ |
366 rm -f $@; $(AR) rcs$(KBUILD_ARFLAGS) $@) | 377 $(cmd_make_empty_builtin) $@) |
367 368$(builtin-target): $(obj-y) FORCE 369 $(call if_changed,link_o_target) 370 371targets += $(builtin-target) 372endif # builtin-target 373 374# --- 9 unchanged lines hidden (view full) --- 384$(modorder-target): $(subdir-ym) FORCE 385 $(Q)(cat /dev/null; $(modorder-cmds)) > $@ 386 387# 388# Rule to compile a set of .o files into one .a file 389# 390ifdef lib-target 391quiet_cmd_link_l_target = AR $@ | 378 379$(builtin-target): $(obj-y) FORCE 380 $(call if_changed,link_o_target) 381 382targets += $(builtin-target) 383endif # builtin-target 384 385# --- 9 unchanged lines hidden (view full) --- 395$(modorder-target): $(subdir-ym) FORCE 396 $(Q)(cat /dev/null; $(modorder-cmds)) > $@ 397 398# 399# Rule to compile a set of .o files into one .a file 400# 401ifdef lib-target 402quiet_cmd_link_l_target = AR $@ |
392cmd_link_l_target = rm -f $@; $(AR) rcs$(KBUILD_ARFLAGS) $@ $(lib-y) | |
393 | 403 |
404ifdef CONFIG_THIN_ARCHIVES 405 cmd_link_l_target = rm -f $@; $(AR) rcsT$(KBUILD_ARFLAGS) $@ $(lib-y) 406else 407 cmd_link_l_target = rm -f $@; $(AR) rcs$(KBUILD_ARFLAGS) $@ $(lib-y) 408endif 409 |
|
394$(lib-target): $(lib-y) FORCE 395 $(call if_changed,link_l_target) 396 397targets += $(lib-target) | 410$(lib-target): $(lib-y) FORCE 411 $(call if_changed,link_l_target) 412 413targets += $(lib-target) |
414 415dummy-object = $(obj)/.lib_exports.o 416ksyms-lds = $(dot-target).lds 417ifdef CONFIG_HAVE_UNDERSCORE_SYMBOL_PREFIX 418ref_prefix = EXTERN(_ 419else 420ref_prefix = EXTERN( |
|
398endif 399 | 421endif 422 |
423quiet_cmd_export_list = EXPORTS $@ 424cmd_export_list = $(OBJDUMP) -h $< | \ 425 sed -ne '/___ksymtab/{s/.*+/$(ref_prefix)/;s/ .*/)/;p}' >$(ksyms-lds);\ 426 rm -f $(dummy-object);\ 427 $(AR) rcs$(KBUILD_ARFLAGS) $(dummy-object);\ 428 $(LD) $(ld_flags) -r -o $@ -T $(ksyms-lds) $(dummy-object);\ 429 rm $(dummy-object) $(ksyms-lds) 430 431$(obj)/lib-ksyms.o: $(lib-target) FORCE 432 $(call if_changed,export_list) 433endif 434 |
|
400# 401# Rule to link composite objects 402# 403# Composite objects are specified in kbuild makefile as follows: 404# <composite-object>-objs := <list of .o files> 405# or 406# <composite-object>-y := <list of .o files> 407# or --- 57 unchanged lines hidden --- | 435# 436# Rule to link composite objects 437# 438# Composite objects are specified in kbuild makefile as follows: 439# <composite-object>-objs := <list of .o files> 440# or 441# <composite-object>-y := <list of .o files> 442# or --- 57 unchanged lines hidden --- |