【问题标题】:GNU make preprequisite execution orderGNU make 先决条件执行顺序
【发布时间】:2012-09-21 13:55:08
【问题描述】:

假设我有以下 GNU make 目标:

    create_dir: 
        @mkdir objects

    build_asm: $(ASM_FILES)
        @echo building assembly files...

    build_c: $(C_FILES)
        @echo building c files...

我有一个从 .asm 或 .c 文件创建目标文件的通用规则。我想将这些组合成一个目标,如下所示...

all: create_dir build_asm build_c
    @echo build complete

...我想使用使用多个作业的作业来构建此目标以提高性能。 *.c 和 *.s 文件应该放在 build_c 创建的目录中,因此允许 make 以任何顺序执行它们是有问题的。

有没有办法强制 make 在解析 build_cbuild_asm 之前解析假目标 create_dir 而不会破坏目标? p>

【问题讨论】:

    标签: gnu-make


    【解决方案1】:

    创建对象目录是“order-only-prerequisites”的典型用例(参见 GNU make 手册中的 Types of Prerequisites):

    create_dir: 
        @mkdir objects
    
    build_asm: $(ASM_FILES) | create_dir
        @echo building assembly files...
    
    build_c: $(C_FILES) | create_dir
        @echo building c files...
    
    all: build_asm build_c
        @echo build complete
    

    【讨论】:

      猜你喜欢
      • 2016-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-21
      • 1970-01-01
      • 1970-01-01
      • 2014-08-04
      • 1970-01-01
      相关资源
      最近更新 更多