Blame view

scripts/Makefile.modfinal 1.79 KB
9b9a3f20c   Masahiro Yamada   kbuild: split fin...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  # SPDX-License-Identifier: GPL-2.0-only
  # ===========================================================================
  # Module final link
  # ===========================================================================
  
  PHONY := __modfinal
  __modfinal:
  
  include $(srctree)/scripts/Kbuild.include
  
  # for c_flags
  include $(srctree)/scripts/Makefile.lib
  
  # find all modules listed in modules.order
  modules := $(sort $(shell cat $(MODORDER)))
  
  __modfinal: $(modules)
  	@:
eb27ea5ce   Masahiro Yamada   kbuild: move modk...
19
  # modname and part-of-module are set to make c_flags define proper module flags
9b9a3f20c   Masahiro Yamada   kbuild: split fin...
20
  modname = $(notdir $(@:.mod.o=))
eb27ea5ce   Masahiro Yamada   kbuild: move modk...
21
  part-of-module = y
9b9a3f20c   Masahiro Yamada   kbuild: split fin...
22
23
  
  quiet_cmd_cc_o_c = CC [M]  $@
eb27ea5ce   Masahiro Yamada   kbuild: move modk...
24
        cmd_cc_o_c = $(CC) $(c_flags) -c -o $@ $<
9b9a3f20c   Masahiro Yamada   kbuild: split fin...
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
  
  %.mod.o: %.mod.c FORCE
  	$(call if_changed_dep,cc_o_c)
  
  ARCH_POSTLINK := $(wildcard $(srctree)/arch/$(SRCARCH)/Makefile.postlink)
  
  quiet_cmd_ld_ko_o = LD [M]  $@
        cmd_ld_ko_o =                                                     \
  	$(LD) -r $(KBUILD_LDFLAGS)					\
  		$(KBUILD_LDFLAGS_MODULE) $(LDFLAGS_MODULE)		\
  		$(addprefix -T , $(KBUILD_LDS_MODULE))			\
  		-o $@ $(filter %.o, $^);				\
  	$(if $(ARCH_POSTLINK), $(MAKE) -f $(ARCH_POSTLINK) $@, true)
  
  $(modules): %.ko: %.o %.mod.o $(KBUILD_LDS_MODULE) FORCE
  	+$(call if_changed,ld_ko_o)
  
  targets += $(modules) $(modules:.ko=.mod.o)
  
  # Add FORCE to the prequisites of a target to force it to be always rebuilt.
  # ---------------------------------------------------------------------------
  
  PHONY += FORCE
  FORCE:
  
  # Read all saved command lines and dependencies for the $(targets) we
  # may be building above, using $(if_changed{,_dep}). As an
  # optimization, we don't need to read them if the target does not
  # exist, we will rebuild anyway in that case.
  
  existing-targets := $(wildcard $(sort $(targets)))
  
  -include $(foreach f,$(existing-targets),$(dir $(f)).$(notdir $(f)).cmd)
  
  .PHONY: $(PHONY)