是否有makefile目标和变量的命名约定

时间:2015-08-21 00:44:07

标签: makefile naming-conventions gnu-make

2 个答案:

答案 0 :(得分:7)

这是GNU Makefile文档所遵循的隐式命名约定:

目标

目标名称应使用小写字母。单词之间用连字符-隔开。例如:

test-debug:
    $(build_dir)/debug/bin

变量

不是特殊的或从环境继承的变量应小写。单词之间应使用下划线符号_分隔。例如:

src_dir = $(CURDIR)/src
build_dir = $(CURDIR)/build

参考:

Makefile style guide(基于GNU Makefile 文档)

GNU Makefile Standard Targets

  • 目标:您可以找到诸如installinstall-strip

    之类的目标
  • 变量::您可以阅读“ prefix”目标中的“这包括指定为变量exec_prefixinstall的目录”文档

答案 1 :(得分:0)

最常用的(我认为)是全部,清理,编译,运行,安装,测试以及您可能需要构建的任何常见任务。

您可以在Linux,Vim等大项目中学习makefile,但如果您想在项目中获得标准,您也会想要使用Autotools。

对于小型项目,我通常根据上下文使用有意义的名称,所以我可以这样做:

$make compile   (to compile)
$make lib       (to create the libraries)
$make link      (to link the objects into the executable)
$make run       (to run the program)
$make all       (to make all of them at once)

并且,为了实现预期,我必须插入依赖项,如:

all: run

run: link
    # Instructions for run

link: lib
    # Instructions for link

lib: compile
    # Instructions for make the lib

compile:
    #Instructions for compilation