makefile if 使用
来源:互联网 发布:杭州软件外包公司 编辑:程序博客网 时间:2024/05/29 13:47
1、在目标外使用if
#这个ifeq else endif,在target 外部,关键字前边一定要有tab ifeq ("aaa","bbb")#内容前可以有空格,如果是tab时,解析为命令#变量前可以多个空格 LIBS= -laaa else#+echo "test" LIBS= -lbbb endif
2、在目标内使用if
a、情形一:shell 方式
#make预处理时,所有以$开头的,它都不会放过。要想引用Shell自己的变量,应该以$$开头。另外要注意,Shell自己的变量是不需要括号#make把每一行Shell脚本当作一个独立的单元,它们在单独的进程中运行。里边定义的变量,只能在局部使用 @if [ "debug" = "debug" ]; \ then \TV3=test3_yes;\echo $$TV3; \echo $(TV3); \ else \TV3=test3_no;\ fi
b、情形二:makefile方式
#这个ifeq else endif,在target 内部,关键字前边一定没有tab,否则当命令处理。可以有多个空格#在内部时,endif后边不能执行任务语句ifeq ("aaa","bbb") @echo cccccLIBS2= -laaa# @echo $(LIBS2) else @echo bbbbaLIBS2= -lbbb# @echo $(LIBS2) endif
3、测试 makefile
#是否相等#ifeq (ARG1, ARG2)#ifeq 'ARG1' 'ARG2'#ifeq "ARG1" "ARG2"#ifeq "ARG1" 'ARG2'#ifeq 'ARG1' "ARG2"#是否不相等#ifneqTV1=aaaTV2=aaaTV3=tv3LIBS=LIBS2=#这个ifeq else endif,在target 外部,关键字前边一定要有tab#这个ifeq else endif,在target 内部,关键字前边一定没有tab,否则当命令处理 ifeq ("aaa","bbb")#内容前可以有空格,如果是tab时,解析为命令# +echo "test" LIBS= -laaa else#+echo "test" LIBS= -lbbb endifKVAL=start#makefile变量只能在target外部定义和修改all:#如果不添加@,结果也出出,但是语句本身也会打印出来 echo $(KVAL) @echo $(LIBS)#Shell脚本在target里才有效,其它地方都被忽略掉了。target 外可以用$(shell 语句)方式#make把每一行Shell脚本当作一个独立的单元,它们在单独的进程中运行。里边定义的变量,只能在局部使用 @if [ "debug" = "debug" ]; then echo "build debug"; else echo "build release"; fi#make预处理时,所有以$开头的,它都不会放过。要想引用Shell自己的变量,应该以$$开头。另外要注意,Shell自己的变量是不需要括号#在Makefile中执行shell命令,一行创建一个进程来执行。这也是为什么很多Makefile中有很多行的末尾都是“; \”,以此来保证代码是一行而不是多行,这样Makefile可以在一个进程中执行 @for i in 1 2 3; \ do \ echo "building " $$i; \ done @echo "finall"#make把每一行Shell脚本当作一个独立的单元,它们在单独的进程中运行。里边定义的变量,只能在局部使用 @if [ "debug" = "debug" ]; \ then \TV3=test3_yes;\echo $$TV3; \echo $(TV3); \ else \TV3=test3_no;\ fi @echo $(TV3)#这个ifeq else endif,在target 外部,关键字前边一定要有tab #这个ifeq else endif,在target 内部,关键字前边一定没有tab,否则当命令处理#在内部时,endif后边不能执行任务语句ifeq ("aaa","bbb") @echo cccccLIBS2= -laaa# @echo $(LIBS2) else @echo bbbbaLIBS2= -lbbb# @echo $(LIBS2) endif ifeq ("aaa","bbb")# @echo cccccLIBS2= -laaa else# @echo bbbbLIBS2= -lbbbc endif# @echo "finall"
0 0
- makefile if 使用
- Makefile------宏、if条件、shell命令的使用
- makefile中的if判断
- Makefile if特殊用法
- makefile的if语法
- Makefile if else 判断平台
- makefile中的脚本if编写
- 【Makefile】学习if wildcard foreach
- Linux之Makefile(if)
- if使用
- Makefile九之foreach,if,call函数
- Makefile使用
- 使用 Makefile
- makefile使用
- Makefile使用
- Makefile使用
- makefile使用
- Makefile 使用
- adaf
- Android 利用presentation实现双屏异显
- MVC中@RenderBody、@RenderSection、@RenderPage、@Html.RenderPartial、Html.RenderAction的作用和区别
- Apk认领加本地签名
- Android Data Binding 使用
- makefile if 使用
- shell 版守护进程
- IOS系列-UIProgressView控件用法
- linux 僵尸进程和孤儿进程的简要介绍
- LeetCode - 119. Pascal's Triangle II
- Mybatis关联查询
- thinkPHP 报错
- iptables :根据库libiptc,自写库librtc,并且使用automake修改makefile文件
- 移动办公系统的定义