• Makefile Sample


    # 摘录自Eclipse help

    # A sample Makefile
    # This Makefile demonstrates and explains
    # Make Macros, Macro Expansions,
    # Rules, Targets, Dependencies, Commands, Goals
    # Artificial Targets, Pattern Rule, Dependency Rule.

    # Comments start with a # and go to the end of the line.

    # Here is a simple Make Macro.
    LINK_TARGET = test_me.exe

    # Here is a Make Macro that uses the backslash to extend to multiple lines.
    # This allows quick modification of more object files.
    OBJS =  \
    Test1.o \
    Test2.o \
    Main.o

    # Here is a Make Macro defined by two Macro Expansions.
    # A Macro Expansion may be treated as a textual replacement of the Make Macro.
    # Macro Expansions are introduced with $ and enclosed in (parentheses).
    REBUILDABLES = $(OBJS) $(LINK_TARGET)

    # Make Macros do not need to be defined before their Macro Expansions,
    # but they normally should be defined before they appear in any Rules.
    # Consequently Make Macros often appear first in a Makefile.

    # Here is a simple Rule (used for "cleaning" your build environment).
    # It has a Target named "clean" (left of the colon ":" on the first line),
    # no Dependencies (right of the colon),
    # and two Commands (indented by tabs on the lines that follow).
    # The space before the colon is not required but added here for clarity.
    clean :
    rm -f $(REBUILDABLES)
    echo Clean done

    # There are two standard Targets your Makefile should probably have:
    # "all" and "clean", because they are often command-line Goals.
    # Also, these are both typically Artificial Targets, because they don't typically
    # correspond to real files named "all" or "clean". 

    # The rule for "all" is used to incrementally build your system.
    # It does this by expressing a dependency on the results of that system,
    # which in turn have their own rules and dependencies.
    all : $(LINK_TARGET)
    echo All done

    # There is no required order to the list of rules as they appear in the Makefile.
    # Make will build its own dependency tree and only execute each rule only once
    # its dependencies' rules have been executed successfully.

    # Here is a Rule that uses some built-in Make Macros in its command:
    # $@ expands to the rule's target, in this case "test_me.exe".
    # $^ expands to the rule's dependencies, in this case the three files
    # main.o, test1.o, and  test2.o.
    $(LINK_TARGET) : $(OBJS)
    g++ -g -o $@ $^

    # Here is a Pattern Rule, often used for compile-line.
    # It says how to create a file with a .o suffix, given a file with a .cpp suffix.
    # The rule's command uses some built-in Make Macros:
    # $@ for the pattern-matched target
    # $lt; for the pattern-matched dependency
    %.o : %.cpp
    g++ -g -o $@ -c $<

    # These are Dependency Rules, which are rules without any command.
    # Dependency Rules indicate that if any file to the right of the colon changes,
    # the target to the left of the colon should be considered out-of-date.
    # The commands for making an out-of-date target up-to-date may be found elsewhere
    # (in this case, by the Pattern Rule above).
    # Dependency Rules are often used to capture header file dependencies.
    Main.o : Main.h Test1.h Test2.h
    Test1.o : Test1.h Test2.h
    Test2.o : Test2.h

    # Alternatively to manually capturing dependencies, several automated
    # dependency generators exist.  Here is one possibility (commented out)...
    # %.dep : %.cpp
    #        g++ -M $(FLAGS) $< > $@
    # include $(OBJS:.o=.dep)

  • 相关阅读:
    关于动画的各种实现方法【转】
    关于弹出框的理念【转】
    jquery点击目标DIV以外关闭效果
    唯美诗句
    mouseover和this的巧用
    基于html5 canvas 的强大图表插件【Chart.js】
    关于百度地图API (持续跟新)
    JS的异步回调函数
    MMU内存管理单元(看书笔记)
    系统移植详细步骤
  • 原文地址:https://www.cnblogs.com/gleam/p/2304570.html
Copyright © 2020-2023  润新知