首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

有没有办法获得makefile的名称,其中定义了make变量?

在Makefile中,可以通过使用内置的make变量MAKEFILE_LIST来获取当前正在执行的Makefile的名称。MAKEFILE_LIST是一个包含了当前Makefile及其所有包含的Makefile的列表。通过获取列表的第一个元素,即可获得当前正在执行的Makefile的名称。

以下是一个示例的Makefile:

代码语言:txt
复制
# 获取当前Makefile的名称
MAKEFILE := $(firstword $(MAKEFILE_LIST))

# 定义一个make变量
VAR := value

# 打印当前Makefile的名称和make变量的值
print:
    @echo "Makefile: $(MAKEFILE)"
    @echo "Variable: $(VAR)"

在上述示例中,通过$(firstword $(MAKEFILE_LIST))获取了当前Makefile的名称,并将其赋值给变量MAKEFILE。然后,在print目标中,使用$(MAKEFILE)打印了当前Makefile的名称。

注意:以上示例中的print目标需要在Makefile中添加一个Tab缩进,以确保其为一个有效的目标。

关于makefile的更多信息,你可以参考腾讯云的产品文档:makefile

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

makefile文件编写「建议收藏」

2、变量定义: 语法:变量名 := 变量值 在makefile中,经常先定义一个变量,然后往该变量中追加新值(通过+=符号),比如先定义一个C_SRCS变量(该值可以为空),然后将代码文件test1....c和test2.c添加到C_SRCS中,其代码如下所示: C_SRCS := C_SRCS += test1.c test2.c 在makefile中有一类特殊变量,其名称为 自动变量,自动变量值会依据规则中...$< 为规则中第一个prerequisite名称 3、内置命令: Makefile中内置一些常用命令,有字符串处理函数subst、patsubst、strip、findstring、filter、filter-out...隐式规则用于说明 何时及如何来重新生成一类目标文件根据其名称,其描述目标是如何依赖于名称相似的文件(一般来说除去后缀信息,其目标与依赖文件名称是一样),并调用命令来创建或更新目标,比如 %.o :.../header -D name 预先定义一个宏定义,比如 –DMPC564xB 表示定义一个宏 MPC564xB 8、makefile举例 本工程代码结构如下图所示: 其中Asm_Files

2.4K10

makefile从入门到放弃——博主吐血整理笔记

可以在makefile目标前加上.PHONY:'目标名' makefile变量makefile定义变量,就像是C/C++语言中宏一样,他代表一个文本字串,在Makefile中执行时候其会自动原模原样地展开在所使用地方...创建和使用变量: 变量类型 预定义变量变量变量含义 – AR 库文件维护程序名称,默认为ar.AS汇编程序名称,默认值为as。 – CC C编译器名称,默认为cc。...所以,当make需要找文件依赖关系时,可以在文件前加上路径,最好办法就是把一个路径告诉make,让make在自动去找。...如果定义这个变量,那么,make就会在当前目录找不到情况下,到指定目录中去找寻文件。 VPATH = src:.....如果执行总控 Makefile 时,make 命令带有参数或者在上层 Makefile定义这个变量,那么 MAKEFLAGS 变量值将会是 make 命令传递参数,并且会传递到下层 Makefile

1.6K20

深入理解Android Build系统

definitions.mk 最重要 Make 文件之一,在其中定义大量函数。这些函数都是 Build 系统其他文件将用到。...不同类型模块编译步骤和方法是不一样,为了能够一致且方便执行各种类型模块编译,在 config.mk 中定义许多常量,这其中每个常量描述一种类型模块编译方式。...Build 系统已经预先定义好了一些组合,它们都位于 /build/target/product 下,每个文件定义一个组合,我们只要继承这些预置定义,然后再覆盖自己想要变量定义即可。...# 继承 full_base.mk 文件中定义 $(call inherit-product, $(SRC_TARGET_DIR)/product/full_base.mk) # 覆盖其中已经定义一些变量...)//清理编译环境中用到变量 为了方便模块编译,Build 系统设置很多编译环境变量

1.8K60

实战Makefile前,该知道那些知识?

makemake clean 生成目标文件规则(make命令): 执行make命令则会根据当前目录Makefile文件定义规则生成对应目标文件。....PHONY:clean clean: -rm $(obj) *.o 变量 变量定义 Makefile也支持变量定义变量定义也让我们Makefile更加简化,可复用。...系统自带变量: 系统自定义一些变量,通常都是大学,比如CC,PWD,CLFAG等等,有些有默认值,有些没有,比如以下几种,如下 CPPFLAGS:预处理器需要选项,如:-l CFLAGS:编译时候使用参数...这些变量可以让我们更加快速完成Makefile编写,其中自动变量只能在规则中命令使用,常用自动变量如下: $@:规则中目标 $<:规则中第一个依赖文件 $^:规则中所有依赖文件 CC...: main.o由main.c生成 add.o 由add.c生成 函数 Makefile提供大量函数,其中我们经常使用函数主要有两个(wildcard,patsubst)。

46220

Makefile学习1

3) 变量定义Makefile 中我们要定义一系列变量变量一般都是字符串,这个有点像C语言中宏,当 Makefile 被执行时,其中变量都会被扩展到相应引用位置上。...延迟变量则是使用 = 操作符进行赋值,在make解析Makefile阶段不会立即展开,而是等到实际使用这个变量时才展开,获得其真正值。...延迟展开变量一般用在规则命令行中,这些变量make编译过程中被引用到才会展开,获得其实际值。 自动变量Makefile中,大家经常会见到类似 @、 ^、$<这种类型变量。...除了用户自定义一些变量make在解析Makefile中还会引入一些系统环境变量,如编译参数CFLAGS、SHELL、MAKE等。...若Makefile中有用户自定义同名变量,系统环境变量将会被用户自定义变量覆盖。若用户在命令行中传递跟系统环境变量同名变量,系统环境变量也会被传递同名变量覆盖。

34310

Assimp Android 编译

makemakefile 我们在处理命令时,如果单条命令可以直接执行,但是命令比较多时候就没办法挨个手动调用,这时候可以写到makefile文件里,通过make命令批量处理。...但是makefile本身也比较难挨个手写,这时候就出现自动生成makefile工具cmake。也就是通过cmake我们可以很方便生成makefile文件。...更加详细介绍可以参考下面的文章: cmake交叉编译 make makefile cmake 生成交叉编译用到toolchain NDK提供standalone_toolchain,通过指定一些参数...必须设置 cmake生成makefile 设置环境变量之后,我们就可以通过cmake生成makefile。...获得libassimp.so文件 上面make如果没出错的话,直接去assimp/buildAndroid/code目录下寻找libassimp.so文件吧,这个就是我们目标啦。

2.4K40

第009课 gcc和arm-linux-gcc和Makefile

每一个小格子都有一个编号,小格子编号从0开始,我们可以通过读取格子编号,得到格子里面的内容。同理,我们根据内存变量地址,来获得其中数据。...ia,定义一个指向整型指针变量pi,定义一个指向字符型指针变量pc。...现在我们目录里面有名为“clean”文件,目标文件是有的,并且没有依赖文件,没有办法判断依赖文件时间。这种写法会导致:有同名”clean”文件时,就没有办法执行make clean操作。...变量makefile中有两种变量: 1)简单变量(即时变量): A := xxx # A值即刻确定,在定义时即确定 对于即时变量使用“:=”表示,它值在定义时候已经被确定 2)延时变量...当我们执行make命令时候,make这个指令本身,会把整个Makefile读进去,进行全部分析,然后解析里面的变量。常用变量定义如下: := # 即时变量 = # 延时变量 ?

4.8K30

换个角度说Makefile

这里注意,如果你makefile文件文件名不是makefile,那么就需要指定具体名字,例如假设前面的文件名为test.txt: $ make -f test.txt 以上例子介绍makefile...然而实际上这里面的门道还有很多,例如伪目标,自动推导,隐晦规则,变量定义。本文作为认识性文章暂时不具体介绍。 总结来说就是,给规则,按照规则生成目标。 makefile做了什么?...编译器(套件),因此可以像下面这样写: CC=gcc 为了扩展性考虑,常常将编译器定义为某个变量,后面使用时候就会方便很多。...安装程序 其中最关键事情就是编译链接,即想办法把.c变成.o(可重定位目标文件);.o+.so(动态库)+.a(静态库)变成可执行文件。...对于一个复杂项目而言,makefile还有很多东西可介绍,例如如何设置变量,如何交叉编译,如何多个目录编译,如何自动推导,如何分支选择等等。这些都是后话

74520

Makefile教程

1.Makefile简介 Makefile定义软件开发过程中,项目工程编译链、链接方法和规则。 由IDE自动生成或者开发者手动书写。...在Makefile中我们要定义一系列变量变量一般都是字符串,这个有点你C语言中宏,当Makefile被执行时,其中变量都会被扩展到相应引用位置上。 4.文件指示。...其中=和:=区别见如下代码: (1)“=”。 make会将整个Makefile展开后,再决定变量值。也就是说,变量值将会是整个Makefile中最后被指定值。...其中,$(MAKE) 值make定义变量,一般指就是make,无需修改,可通过make -p查看make所有的预定义变量。当然,也可直接指明为make,即make -C $(SUBDIR)。...尤其是在Makefile中,当变量定义或者函数调用时,通配符%展开功能就失效。此时需要借助wildcard函数。通配符*常用于wildcard函数中,二者应用范围不同。

3.9K53

什么是makefile(3)

由于我们make有自动推导功能,所以隐晦规则可以让我们比较粗糙地简略地书写Makefile,这是由make所支持。 3、变量定义。...在Makefile中我们要定义一系列变量变量一般都是字符串,这个有点你C语言中宏,当Makefile被执行时,其中变量都会被扩展到相应引用位置上。 4、文件指示。...四、环境变量 MAKEFILES 如果你的当前环境中定义环境变量MAKEFILES,那么,make会把这个变量值做一个类似于include动作。...但是在这里我还是建议不要使用这个环境变量,因为只要这个变量一被定义,那么当你使用make时,所有的Makefile都会受到它影响,这绝不是你想看到。...在这里提这个事,只是为了告诉大家,也许有时候你Makefile出现怪事,那么你可以看看当前环境中有没有定义这个变量

55920

Makefile基础语法

Makefile 是描述文件依赖关系说明,由若干个规则组成,每个 规则 格式如下: 目标:依赖关系 命令 其中: 目标 是指 make 最终要创造产物,也是 make 执行动作名称...make 执行动作也是一个目标,为避免该目标和文件目标冲突,可以使用以下格式将动作指定伪目标: .PHONY: clean clean: rm *.o temp 在使用时,在具有 Makefile...文件项目目录下通过如下命令运行: $ make [target] 其中参数 target 是指要处理目标名,不指定则默认为 make all 。...预定义变量 为使命令编写更快捷,免去无意义重复操作,有一些预定义变量可以用于简化 Makefile 。...$@ # 规则目标对应文件名 $* # 不包含扩展名目标文件名称 $+ # 所有的依赖文件,用空格分开,可能包含重复 $% # 如果目标是归档成员,则该变量标识目标的归档成员名称

80420

程序员C语言快速上手——工程篇(十三)

C语言工程构建 shell脚本(bat脚本) Makefile 脚本 基本语法规则 补充说明 CMake工具 安装 简单示例 基础规则 外部构建 定义变量 内置变量 命令 指定构建环境 生成 Makefile...: print print: echo "hello,world" 然后在命令行执行make print,就会输入出被执行完整命令,以及命令执行结果 我们可以根据自己需要在Makefile定义自己伪目标...在Linux平台下,通常是将C语言源代码和Makefile脚本一同发布出去,用户只需要在源码目录下分别执行命令makemake install即完成了程序编译和安装,可以看到,有make工具后,...定义变量 源文件较多时,可以定义一个变量来保存,后续只需要引用该变量即可,如下,定义src_list来保存源文件列表,引用变量则使用${}包裹....(calc PROPERTIES OUTPUT_NAME "calculate") 定义宏与条件编译可使用add_definitions命令,传入-D加上宏名称定义宏,以下定义宏USER_PRO #

3K30

Linux MakeMakefile)由浅入深学习与示例剖析

makefile 文件需要按照某种语法进行编写,文件中需要说明如何编译各个源文件并连接生成可执行文件,并要求定义源文件之间依赖关系。...如果一个工程项目中,有成百上千个代码源文件,若其中一个或多个文件进过修改,make就需要能够自动识别更新代码,不需要像方法1一样逐个输入编译冗长命令行,就可以完成最后编译工作。...通常是程序中间体或最后所需要生成文件名,如 *.o或obj可执行文件名称。此外,target目标也可以是make执行动作名称,如clean等 dependency-file:规则依赖。...,将被全部删除不执行 gcc -c 编译C语言源文件,编译生成目标文件 *.o gcc -o 定义生成文件名称,可以为 *.o(目标文件)和 main(可执行文件) rm -f *.o main 强制删去该目录下所有...2、make: main 是最新。 错误提示,如下图 ? 这是因为该文件目录中,已经存在目标可执行文件 main ,请见下图 ?

1.8K20

Linux makefile 教程 非常详细,且易懂

Makefile中我们要定义一系列变量变量一般都是字符串,这个有点你C语言中宏,当Makefile被执行时,其中变量都会被扩展到相应引用位置上。 4、文件指示。...在这里提这个事,只是为了告诉大家,也许有时候你Makefile出现怪事,那么你可以看看当前环境中有没有定义这个变量。...: cd subdir && $(MAKE) MAKEFLAGS= 如果你定义环境变量MAKEFLAGS,那么你得确信其中选项是大家都会用到,如果其中有“-t”,“-n”,和“-q”参数,那么将会有让你意想不到结果...Makefile文件中,但是如果Makefile中已定义这个变量,或是这个变量make命令行带入,那么系统环境变量值将被覆盖。...(如果make指定“-e”参数,那么,系统环境变量将覆盖Makefile定义变量) 因此,如果我们在环境变量中设置“CFLAGS”环境变量,那么我们就可以在所有的Makefile中使用这个变量

4.3K20

Makefile经典教程(掌握这些足够)

Makefile中我们要定义一系列变量变量一般都是字符串,这个有点你C语言中宏,当Makefile被执行时,其中变量都会被扩展到相应引用位置上。 文件指示。...在这里提这个事,只是为了告诉大家,也许有时候你Makefile出现怪事,那么你可以看看当前环境中有没有定义这个变量。...:            cd subdir && $(MAKE) MAKEFLAGS= 如果你定义环境变量MAKEFLAGS,那么你得确信其中选项是大家都会用到,如果其中有“-t”,“-n”...make开始运行时被载入到Makefile文件中,但是如果Makefile中已定义这个变量,或是这个变量make命令行带入,那么系统环境变量值将被覆盖。...(如果make指定“-e”参数,那么,系统环境变量将覆盖Makefile定义变量) 因此,如果我们在环境变量中设置“CFLAGS”环境变量,那么我们就可以在所有的Makefile中使用这个变量

2.7K20

Makefile入门

# 一、Makefile简介 # 1、Makefile是什么 Makefile是一种用于自动化构建程序工具,它提供一系列规则来指定源代码文件之间依赖关系,以及如何生成目标文件。...此外,Makefile还支持变量定义和隐晦规则等特性,这些特性可以帮助程序员更加灵活地编写Makefile,并使构建过程更加易于维护和扩展。...Makefile是一个文件,其中定义一系列规则来指定哪些文件需要先编译、哪些文件需要后编译、哪些文件需要重新编译等。...目标定义生成目标体,并指明生成目标体需要哪些依赖文件。 依赖(Dependency):依赖是指生成目标体所需文件或另一个目标。它可以是一个或多个文件,也可以没有。...' > /usr/share/nginx/html/index.html # 2、创建Makefile文件 # 定义 Docker 镜像名称和标签 REGISTRY := your-private-registry

10510
领券