代码之家  ›  专栏  ›  技术社区  ›  johndashen

makefile模式规则:单个通配符,前提条件中的多个实例

  •  4
  • johndashen  · 技术社区  · 16 年前

    data/%P1.m: $(PROJHOME)/data/%/ISCAN/%P1.RAW
            @echo "  Writing temporary matlab file for $*"
            # do something
    
    data/%P2.m: $(PROJHOME)/data/%/ISCAN/AGP2.RAW
                @echo "  Writing temporary matlab file for $*"
                # do something
    

    [jshen@iLab10 gender-diffs]$ make data/AGP1.m
    make: *** No rule to make target `data/AGP1.m'.  Stop.
    
    [jshen@iLab10 gender-diffs]$ make data/AGP2.m
    Writing temporary matlab file for AG, part 2...
    
    [jshen@iLab10 gender-diffs]$ ls data/AG/ISCAN/AG*
    data/AG/ISCAN/AGP1.RAW  data/AG/ISCAN/AGP2.RAW
    

    如何在第一个make规则中实现同一通配符的多个实例?

    1 回复  |  直到 16 年前
        1
  •  4
  •   johndashen    16 年前

    这似乎奏效了:

    .SECONDEXPANSION:    
    data/%P1.m: $(PROJHOME)/data/$$*/ISCAN/$$*P1.RAW
                @echo "Writing temporary matlab file for $*, part 1..."