最近学习,Erlang设计到application打包发布时,附带Makefile的编译部署文件。
这玩意,是linux软件包的必备文件。
查找资料学习一下,并简记不懂之处。
变量:
1
先看第一种方式,也就是简单的使用“=”号,在“=”左侧是变量,右侧是变量的值,右侧变量的值可以定义在文件的任何一处,也就是说,右侧中的变量不一定非要是已定义好的值,其也可以使用后面定义的值。如:
foo = $(bar)
bar = $(ugh)
ugh = Huh?
all:
echo $(foo)
2
我们可以使用make中的另一种用变量来定义变量的方法。这种方法使用的是“:=”操作符,如:
x := foo
y := $(x) bar
x := later
其等价于:
y := foo bar
x := later
值得一提的是,这种方法,前面的变量不能使用后面的变量,只能使用前面已定义好了的变量。如果是这样:
y := $(x) bar
x := foo
那么,y的值是“bar”,而不是“foo bar”。
3
追加变量值,我们可以使用“+=”操作符给变量追加值,如:
objects = main.o foo.o bar.o utils.o
objects += another.o
于是,我们的$(objects)值变成:“main.o foo.o bar.o utils.o another.o”(another.o被追加进去了)
使用“+=”操作符,可以模拟为下面的这种例子:
objects = main.o foo.o bar.o utils.o
objects := $(objects) another.o
所不同的是,用“+=”更为简洁。
4
前面我们所讲的在Makefile中定义的变量都是“全局变量”,在整个文件,我们都可以访问这些变量。当然,“自动化变量”除外,如“$<”等这种类量的自动化变量就属于“规则型变量”,这种变量的值依赖于规则的目标和依赖目标的定义。
当然,我样同样可以为某个目标设置局部变量,这种变量被称为“Target-specific Variable”,它可以和“全局变量”同名,因为它的作用范围只在这条规则以及连带规则中,所以其值也只在作用范围内有效。而不会影响规则链以外的全局变量的值。
其语法是:
<target ...> : <variable-assignment>
<target ...> : overide <variable-assignment>
分享到:
相关推荐
这个压缩包“Makefile学习参考资料.zip”包含了两份PDF文档,分别是“跟我一起学Makefile.pdf”和“gun_make.pdf”,很可能是关于Makefile的基础教程和GNU Make的官方文档。 在Makefile中,最重要的概念是目标...
《Makefile学习手册》是一本专门针对Makefile开发的详细指南,旨在帮助读者从基础到深入地理解并掌握这一强大的构建工具。Makefile是软件工程中用于自动化编译和链接过程的重要文件,尤其在Unix/Linux环境中广泛使用...
《跟我一起写makefile》和《gnumakefile》是两本关于makefile的重要学习资料,它们涵盖了构建自动化工具make的使用、配置以及优化等多个方面。makefile是软件开发中的核心部分,它允许开发者通过简洁的规则定义来...
Makefile学习教程: 跟我一起写 Makefile 0 Makefile概述 0.1 关于程序的编译和链接 1 Makefile 介绍 1.1 Makefile的规则 1.2 一个示例 1.3 make是如何工作的 1.4 makefile中使用变量 1.5 让make自动推导 ...
《makefile学习三件套 电子书》是一个针对makefile技术的综合学习资源,它包含了三个核心部分:《gnu make》、《GNU make中文手册》和《跟我一起写Makefile》。这些文档旨在帮助读者深入理解和掌握makefile的编写与...
以下详细阐述了make以及makefile的学习要点: 1. Makefile概述 Makefile是一个脚本文件,其中包含了编译和链接项目所需的各种规则。它描述了项目中哪些文件需要先编译,哪些文件需要后编译,哪些文件依赖于其他文件...
Makefile学习笔记 Makefile是一个编译系统自动构建工具,它可以根据源文件的变化自动编译和链接对象文件,并生成执行文件。Makefile文件包含了一系列的规则和命令,这些规则和命令描述了如何从源文件生成目标文件。...
### Makefile 学习教程知识点总结 #### 一、Makefile 概述 **Makefile** 是一种自动化构建工具,在软件开发过程中极为常见,尤其是在 C 和 C++ 的项目中。它能够通过定义一系列规则来自动编译源代码,并管理整个...
Makefile学习资料.rarMakefile学习资料.rarMakefile学习资料.rarMakefile学习资料.rarMakefile学习资料.rarMakefile学习资料.rarMakefile学习资料.rarMakefile学习资料.rarMakefile学习资料.rarMakefile学习资料....
Makefile学习参考资料 Makefile是Linux系统中的一个构建 Automation 工具,它可以自动地编译、链接和构建项目。Makefile文件中定义了一系列的规则来指定哪些文件需要先编译,那些文件需译,那些文件需要重新编译,...
这个`makefile学习用测试文件.rar`很显然是为了帮助初学者理解和掌握`Makefile`的基本概念和用法。在本文中,我们将深入探讨`Makefile`的主要组成部分,以及如何编写和使用它来编译和管理项目。 `Makefile`的核心...
【Makefile学习】Makefile是构建程序的关键工具,它定义了项目中所有文件的编译规则,确保在适当的时候更新目标文件。在大型项目中,源文件可能分散在多个目录中,通过Makefile,我们可以清晰地指定哪些文件需要先...
【Linux的Makefile学习手册】 Makefile是Unix和类Unix操作系统中用于自动化构建、编译和链接程序的重要工具。在Windows环境下,IDE如Visual Studio通常会自动处理这些任务,但在Linux下,程序员需要手动编写...
make中文手册等 小测试: # Readme: # use: make config # use: make dir # use: make # use: make clean # use: make rebuild # use: make cleanall # use: make test # use: make
Makefile是Unix/Linux环境下自动化构建、编译和测试软件项目的工具,它定义了一系列规则来指示编译器如何构建应用...现在,你可以下载"makefile学习教程.pdf",开始你的Makefile学习之旅,进一步提升你的软件构建技能。
【Makefile学习笔记1】 Makefile是Unix环境下用于自动化编译和链接的脚本文件,它可以帮助开发者管理和构建复杂的C/C++项目。本篇笔记主要探讨Makefile在满足可重用性、易用性和全面覆盖性等需求时的实现方法。 ##...