`
scm002
  • 浏览: 309399 次
社区版块
存档分类
最新评论

makefile中如何判断一个文件是否存在

 
阅读更多

makefile判断文件存在如下的两种方法:

1. 调用shell的函数进行判断

exist = $(shell if [ -f $(FILE) ]; then echo "exist"; else echo "notexist"; fi;)
ifeq (exist, "exist")
#do something here
endif
当然,这个方法很土,但是能够工作!!
 
2. 使用makefile的函数进行判断
ifeq ($(FILE), $(wildcard $(FILE)))
#do something here
endif

 

$(wildcard $(FILE))的意思是当前路径下的文件名匹配FILE的文件展开。
假设当前路径下存在a.c 和 b.c,那么执行src=$(wildcard *.c)
src的值就为a.c b.c;
如果不使用通配符,比如src=$(wildcard c.c);那么就是要展开当前路径下,文件名为c.c的文件,因为当前路径下文件不存在,因此src为空字符串。

 

 

在编写MAKEFILE的时候,如何判断一个文件是否存在

 

You need to escape the $.

 

EXISTED := $(shell test -e foo.c && echo $$?)

 

You can also use the wildcard function directly in make.

 

EXISTED := $(wildcard foo.c)

 

If foo.c doesn't exist, then $(wildcard ...) returns an empty string.

 

 

分享到:
评论

相关推荐

    Makefile不编译已经编译过的文件

    Makefile不编译已经编译过的文件

    如何写makefile

    4、如果edit所依赖的.o文件也存在,那么make会在当前文件中找目标为.o文件的依赖性,如果找到则再根据那一个规则生成.o文件。(这有点像一个堆栈的过程) 5、当然,你的C文件和H文件是存在的啦,于是make会生成 .o...

    GNU make中文手册

    3.2 makefile文件的命名 3.3 包含其它makefile文件 3.4 变量 MAKEFILES 3.5 变量 MAKEFILE_LIST 3.6 其他特殊变量 3.7 makefile文件的重建 3.8 重载另外一个makefile 3.9 make如何解析makefile文件 3.9.1 变量取值 ...

    万能makefile写法详解,一步一步写一个实用的makefile

    这里指示了main.o目标依赖于哪几个源文件,我们只要把这一行的内容,通过make的include指令包含到makefile文件里,即可在其任意一个依赖文件被修改后,重新编译目标main.o。 下面详解如何生成这个.d文件。 (二) ...

    GNU-Makefile中文手册-Ver3.8.pdf

    对“info make”的翻译整理,不是一个纯粹的语言翻译版本,其中对GNU make的一些语法和用法进行了一些详细分析和说明,也加入了一些个人的观点和实践总结。 本书的所有的例子都可以在支持V3.8版本的GNU make的系统中...

    makefile 程序编译组织文件

    作为编译基础而存在,现代代码编译,基本上都是用makefile组织起来的。

    修正的SEPLib软件Makefile文件

    从斯坦福大学SEP组下载的SEPlib软件由于编译过程中存在一定的问题,因而导致安装失败。基于此,本人将导致编译出错的Makefile进行了重新改写,修改后SEPlib能成功编译和运行。详见README部分。

    编译多个可执行程序,需链接动态库静态库,且需先编译库,并且库与库之间存在依赖关系的makefile

    本示例演示了编译多个可执行程序,需链接动态库,静态库,且需先编译库,并且库与库之间存在依赖关系的makefile的编写方式,makefile文件内部有详细的注释,目录下也有介绍文档,请务必按照里面的步骤操作,保证可以...

    makefile参考手册

    3.2 makefile文件的命名.......................................................................................................21 3.3 包含其它makefile文件...................................................

    makefile工程管理学习笔记

    linux下,输入make,会自动执行当前目录下makefile文件/Makefile文件,如果两者均存在,优先执行makefile文件;makefile的书写方式,类似于shell脚本; makefile简单例子:     以linux系统为例,现在有5个文件...

    test_makefile.rar

    Makefile编译学习

    CppBuilder:一个制作 Makefile 的简单插件,以及如何为 sublime Text 制作插件的初步测试

    注意:作为一名大学生,这个项目的工作会很慢,抱歉。欢迎这是我的第一个插件,所以可能存在错误 :) 到目前...该命令将在 C++ 文件的同一目录中创建一个 Makefile。 注意:目前我只能在项目中编译和运行,我将添加单

    makemake:为模块化Fortran程序生成Makefile

    makemake.py是一个Python脚本,可为模块化Fortran程序生成Makefile。 它以递归方式在工作目录中搜索.f90文件并确定其依赖性。 将创建文件makefile 。 如果该文件已经存在,那么直到makemake首次生成的所有内容都将...

    makefile_patterns:可移植makefile的技巧和想法(Linux和BSD)

    Makefile模式当几个BSD用户尝试我的一个项目时告诉我他们无法构建我的项目时,我只是在想一些更高级的Gnu制作技巧。这个缺点激发了我重新思考自己的方法。那么,这个项目就是我记录成功想法的地方,以便以后找到它们...

    免费:makefile编程

    3.8 重载另外一个makefile.................................................................................................... 28 3.9 make如何解析makefile文件............................................

    Gun make中文手冊

    同时重点讨论如何为一个工程编写Makefile。作为一个Linux程序员,make工具的使用以及编写Makefile是必需的 目 录 第一章:概述 1.1 概述 1.2 准备知识 第二章:GNU make 介绍 2.1 Makefile简介 2.2 Makefile...

    GNU MAKE 中文手册

    3.3 包含其它makefile文件 3.4 变量 MAKEFILES 3.5 变量 MAKEFILE_LIST 3.6 其他特殊变量 3.7 makefile文件的重建 3.8 重载另外一个makefile 3.9 make如何解析makefile文件 3.9.1 变量取值 3.9.2 条件语句 ...

    GNU make 中文手册 网页版

    3.3 包含其它makefile文件 3.4 变量 MAKEFILES 3.5 变量 MAKEFILE_LIST 3.6 其他特殊变量 3.7 makefile文件的重建 3.8 重载另外一个makefile 3.9 make如何解析makefile文件 3.9.1 变量取值 3.9.2 条件语句 ...

    socket文件传输源码

    附带的Makefile文件表明,代码可以在Linux下正常编译。所以,可以运行在Linux下,实现Linux与Windows文件的互传。 可能的命令行会变成: olfile -dst /home/foodst.dat -src c:foo.dat -ip 10.190.1.1 -y [5....

    dotfiles:我的基于Makefile的dotfiles

    让我们立即制作一个 。 有了Makefile,这是一件好事 使用此命令易于构建开发环境。 make install 我再也不用担心重新设置笔记本电脑了。 部署dotfile可以很快完成 完成安装后,您可以使用此命令部署点文件。 make...

Global site tag (gtag.js) - Google Analytics