【问题标题】:where is the rule to build a $(obj)/subdir target in linux kernel makefile?在 linux 内核 makefile 中构建 $(obj)/subdir 目标的规则在哪里?
【发布时间】:2023-02-07 22:51:51
【问题描述】:

在 linux 内核 Makefile.build 中:

`
# To build objects in subdirs, we need to descend into the directories
$(subdir-builtin): $(obj)/%/built-in.a: $(obj)/% ;
$(subdir-modorder): $(obj)/%/modules.order: $(obj)/% ;`

$(obj)/subdir/built-in.a 依赖于 $(obj)/subdir prereq,但是构建 $(obj)/subdir 的规则在哪里?

我假设以下规则仅适用于 $(obj)/ 目录,并且不能适用于上述子目录。

`
# Build
# ---------------------------------------------------------------------------

$(obj)/: $(if $(KBUILD_BUILTIN), $(targets-for-builtin)) \
     $(if $(KBUILD_MODULES), $(targets-for-modules)) \
     $(subdir-ym) $(always-y)
    @:`

谢谢!

我查看了 makefile,但没有找到任何线索。

【问题讨论】:

    标签: makefile kbuild


    【解决方案1】:

    我已经从 Linux 内核维护者那里得到了答案,如下所示:

    参见第 500 行左右。

    $(subdir-ym):
    $(Q)$(MAKE) $(build)=$@ 
    need-builtin=$(if $(filter $@/built-in.a, $(subdir-builtin)),1) 
    need-modorder=$(if $(filter $@/modules.order, $(subdir-modorder)),1) 
    $(filter $@/%, $(single-subdir-goals))
    

    【讨论】:

      猜你喜欢
      • 2015-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-09
      • 2015-05-05
      • 2012-09-24
      • 2016-11-29
      相关资源
      最近更新 更多