3.4 设置环境变量MAKEFILES

一、MAKEFILES简介

MAKEFILES是一个环境变量,可以用来指定额外的makefile文件列表。当设置了MAKEFILES环境变量后,make命令会在其他makefile文件之前读取这些指定的makefile文件。

使用MAKEFILES类似于使用include指令,可以在多个目录中搜索这些makefile文件。如果在指定的目录中找不到这些文件,make命令不会报错。

通常情况下,MAKEFILES用于在递归调用的make命令之间进行通信。通常不建议在顶层调用make命令之前设置环境变量,因为最好不要从外部干涉makefile。然而,如果您在没有特定makefile的情况下运行make命令,则在MAKEFILES中列出的makefile可以做一些有用的工作,例如定义搜索路径。

然而,不推荐在登录时自动设置MAKEFILES环境变量,并编写预期此操作的makefile。这样做是很不好的做法,因为如果其他人运行这些makefile,它们将无法正常工作。最好的做法是在makefile中显式地使用include指令。

二、MAKEFILES的用法

在一个空目录下创建三个文件:main.mk和sub.mk 以及Makefile。每个文件中都定义一个目标规则。
main.mk

# main.mk
.PHONY: main

main:
    @echo "Hello from main.mk"

sub.mk


# sub.mk
.PHONY: sub

sub:
    @echo "Hello from sub.mk"
  1. 设置环境变量MAKEFILES为sub.mk的路径(假设它位于当前目录中)。
export MAKEFILES=./sub.mk
  1. 在Makefile中使用include指令读取MAKEFILES环境变量所指定的makefile文件。

Makefile

include $(MAKEFILES)

all: main

main:
    @echo "Hello from main.mk"
  1. 运行make命令,查看输出结果。
$ make
Hello from sub.mk
Hello from main.mk

在这个示例中,我们使用MAKEFILES环境变量来读取sub.mk中定义的目标规则,然后我们在Makefile中定义了一个all目标规则。当我们运行make命令时,sub.mk中的目标规则被首先执行,然后再执行main.mk中的目标规则。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MrWang.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值