zoukankan      html  css  js  c++  java
  • 一个通用的Makefile框架

    先做一个简单的记录,后续有时间再慢慢完善补充细节。

    先上一个整体图片:

    其中,最重要的文件就是:program_template.mk。

    下面是program_template.mk最重要的内容:

    $(1)_COBJS = $$(patsubst $$($(1)_SDIR)%.c,$$($(1)_BIN)/%.o,$$($(1)_CSRCS))
    $(1)_OBJS = $$($(1)_COBJS)
    
    $(1)_COBJDEPS = $$(patsubst $$($(1)_SDIR)%.c, $$($(1)_BIN)/%.d,$$($(1)_CSRCS))
    $(1)_OBJDEPS = $$($(1)_COBJDEPS
    
    $$($(1)_COBJS): $$($(1)_BIN)/%.o: $$($(1)_SDIR)%.c
        $$(CC) $$($(1)_CFLAGS) $$($(1)_CXXFLAGS) -c $$< -o $$@
    
    $$($(1)_COBJDEPS): $$($(1)_BIN)/%.d: $$($(1)_SDIR)%.c
        [ -d $$(@D) ] || mkdir -p $$(@D) &&  
        $$(CC) -M -MP $$($(1)_CFLAGS) $$($(1)_CXXFLAGS) $$< | 
        sed 's|($$(notdir $$*)).o[ :]*|$$(dir $$@)1.o $$@ : |g' > $$@
    
    
    $(1): $$($(1)_EXEC) ;
    
    $$($(1)_EXEC): $$($(1)_OBJS) $$($(1)_LIBDEPS)
        $$(CC) -o $$@ $$($(1)_OBJS) $$($(1)_LDFLAGS)
        echo $$@ : $$^ > $$@_EXEC.dep
    

      

    最重要的内容已列出,后续有时间再慢慢完善一些细节,有对Makefile有兴趣的朋友可以探讨交流。

  • 相关阅读:
    LDA的整体流程
    java中字符串的用法
    verification Code
    properties
    Hash
    substring的问题
    LDA和PLSA的区别
    Step By Step(Lua环境)
    Step By Step(Lua调用C函数)
    Step By Step(Lua弱引用table)
  • 原文地址:https://www.cnblogs.com/ok-wolf/p/6321836.html
Copyright © 2011-2022 走看看