Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  Makefile.modfinal   Sprache: unbekannt

 
# SPDX-License-Identifier: GPL-2.0-only
# ===========================================================================
# Module final link
# ===========================================================================

PHONY := __modfinal
__modfinal:

include $(objtree)/include/config/auto.conf
include $(srctree)/scripts/Kbuild.include
include $(srctree)/scripts/Makefile.lib

# find all modules listed in modules.order
modules := $(call read-file, modules.order)

__modfinal: $(modules:%.o=%.ko)
 @:

# modname and part-of-module are set to make c_flags define proper module flags
modname = $(notdir $(@:.mod.o=))
part-of-module = y
GCOV_PROFILE := n
ccflags-remove-y := $(CC_FLAGS_CFI)

%.mod.o: %.mod.c FORCE
 $(call if_changed_rule,cc_o_c)

.module-common.o: $(srctree)/scripts/module-common.c FORCE
 $(call if_changed_rule,cc_o_c)

quiet_cmd_ld_ko_o = LD [M]  $@
      cmd_ld_ko_o =       \
 $(LD) -r $(KBUILD_LDFLAGS)     \
  $(KBUILD_LDFLAGS_MODULE) $(LDFLAGS_MODULE)  \
  -T $(objtree)/scripts/module.lds -o $@ $(filter %.o, $^)

quiet_cmd_btf_ko = BTF [M] $@
      cmd_btf_ko =        \
 if [ ! -f $(objtree)/vmlinux ]; then    \
  printf "Skipping BTF generation for %s due to unavailability of vmlinux\n" $@ 1>&2; \
 else        \
  LLVM_OBJCOPY="$(OBJCOPY)" $(PAHOLE) -J $(PAHOLE_FLAGS) $(MODULE_PAHOLE_FLAGS) --btf_base $(objtree)/vmlinux $@; \
  $(RESOLVE_BTFIDS) -b $(objtree)/vmlinux $@;  \
 fi;

# Same as newer-prereqs, but allows to exclude specified extra dependencies
newer_prereqs_except = $(filter-out $(PHONY) $(1),$?)

# Same as if_changed, but allows to exclude specified extra dependencies
if_changed_except = $(if $(call newer_prereqs_except,$(2))$(cmd-check),      \
 $(cmd);                                                              \
 printf '%s\n' 'savedcmd_$@ := $(make-cmd)' > $(dot-target).cmd, @:)

# Re-generate module BTFs if either module's .ko or vmlinux changed
%.ko: %.o %.mod.o .module-common.o $(objtree)/scripts/module.lds $(and $(CONFIG_DEBUG_INFO_BTF_MODULES),$(KBUILD_BUILTIN),$(objtree)/vmlinux) FORCE
 +$(call if_changed_except,ld_ko_o,$(objtree)/vmlinux)
ifdef CONFIG_DEBUG_INFO_BTF_MODULES
 +$(if $(newer-prereqs),$(call cmd,btf_ko))
endif

targets += $(modules:%.o=%.ko) $(modules:%.o=%.mod.o) .module-common.o

# Add FORCE to the prerequisites 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)

[ Dauer der Verarbeitung: 0.18 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge