2012-09-21 41 views
2

說我有以下GNU使目標:GNU使preprequisite執行順序

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以任何順序執行它們都是有問題的。

有沒有辦法迫使化妝解決build_cbuild_asm沒有分手目標之前解決假目標create_dir

回答

3

創建對象目錄是「訂單僅-先決條件」的典型使用情況(參照Types of Prerequisites的GNU使手冊中):

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