一个通用的Makefile框架
Posted Welcome You...
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个通用的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有兴趣的朋友可以探讨交流。
以上是关于一个通用的Makefile框架的主要内容,如果未能解决你的问题,请参考以下文章