首页 > 其他 > 详细

《GNU_makefile》第七章——makefile的条件执行

时间:2020-05-15 09:22:16      阅读:45      评论:0      收藏:0      [点我收藏+]

  条件执行即,通过变量的值,来控制make的执行和忽略。

  条件执行只能控制makefile的make语法部分,不能控制shell部分

1.一个例子

…
libs_for_gcc = -lgnu
normal_libs =
……
foo: $(objects)
ifeq ($(CC),gcc)
  $(CC) -o foo $(objects) $(libs_for_gcc)
else
  $(CC) -o foo $(objects) $(normal_libs)
endif
……

2.ifeq,ifneq,

`ifeq (ARG1, ARG2)`ifeq ARG1 ARG2‘‘
`ifeq "ARG1" "ARG2"‘
`ifeq "ARG1" ARG2‘‘
`ifeq ARG1 "ARG2"‘

ifdef,ifndef

`ifdef VARIABLE-NAME

  判断变量是否为空

3.标记条件语句

archive.a: ...
ifneq (,$(findstring t,$(MAKEFLAGS)))
  +touch archive.a
  +ranlib -t archive.a
else
  ranlib archive.a
endif
这个条件语句判断 make 的命令行参数中是否包含“ -t”(用来更新目标文件的时间戳)。
根据命令行参数情况完成对“ archive.a”执行不同的操作。命令行前的“ +”的意思是
告诉 make,即使 make 使用了“ -t”参数,“ +”之后的命令都需要被执行。 

 

《GNU_makefile》第七章——makefile的条件执行

原文:https://www.cnblogs.com/yangxinrui/p/12892423.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!