免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2264 | 回复: 10
打印 上一主题 下一主题

为什么这句话 一直调好呢? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-12-29 15:36 |只看该作者 |倒序浏览
ifneq (,$(AUTO_ADD_GLOBAL_DEFINE_BY_NAME))
$(foreach by_name,$(AUTO_ADD_GLOBAL_DEFINE_BY_NAME),$(ifeq ($(strip $($(by_name))),no) $(info $(by_name)=$(strip $($(by_name)))) ))
endif

我只想打印
MTK_FAN5405_SUPPORT=no
变量值等于no

论坛徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16赛季CBA联赛之北京
日期:2016-07-06 15:42:0715-16赛季CBA联赛之同曦
日期:2016-06-12 10:38:0915-16赛季CBA联赛之佛山
日期:2016-05-27 11:54:56黄金圣斗士
日期:2015-12-02 11:44:35白银圣斗士
日期:2015-11-25 14:32:43白银圣斗士
日期:2015-11-23 12:53:352015亚冠之布里斯班狮吼
日期:2015-10-21 16:55:482015亚冠之首尔
日期:2015-09-01 16:46:052015亚冠之德黑兰石油
日期:2015-08-31 11:39:192015亚冠之萨济拖拉机
日期:2015-08-28 21:06:5315-16赛季CBA联赛之广东
日期:2016-07-12 14:58:53
2 [报告]
发表于 2012-12-29 16:56 |只看该作者
这是神马shell?

论坛徽章:
0
3 [报告]
发表于 2012-12-29 17:15 |只看该作者
本帖最后由 rongpmcu 于 2012-12-29 17:21 编辑

回复 1# yfjelley


    发错板块了吧,呵呵 makefile我觉得应该到环境编程里去啊
    而且你这个写的太。。。 最后一个参数可以用函数,那样会好看很多,也方便以后维护  呵呵   
   
    $(ifeq ($(strip $($(by_name))),no) $(info $(by_name)=$(strip $($(by_name)))))少了一个逗号
    $(ifeq ($(strip $($(by_name))),no), $(info $(by_name)=$(strip $($(by_name)))))
    其他的不看了   变量再取变量  搞不懂!! 你也没贴全   

论坛徽章:
0
4 [报告]
发表于 2012-12-29 17:22 |只看该作者
回复 3# rongpmcu


    不要分的这么清好吗,我也没有找到什么编译环境板块呀,这边关注度高点,有问题能马上找到答案.

论坛徽章:
0
5 [报告]
发表于 2012-12-29 17:28 |只看该作者
回复 4# yfjelley

makefile大吗?  不大的话  贴出来吧   这样更多人会帮到你
刚才说的加逗号  后来一看,加了逗号后肯定不是你要的意思  呵呵  
   

论坛徽章:
0
6 [报告]
发表于 2012-12-29 17:49 |只看该作者
回复 5# rongpmcu

AUTO_ADD_GLOBAL_DEFINE_BY_NAME=HAVE_XLOG_FEATURE MTK_BT_PROFILE_MAPS MTK_FAN5405_SUPPORT

HAVE_XLOG_FEATURE=yes
MTK_BT_PROFILE_MAPS=
MTK_FAN5405_SUPPORT=no


define add_flags
$(ifeq ($(strip $($(1))),no), $(info $(1)=$(strip $($(1)))))
endef

ifneq (,$(AUTO_ADD_GLOBAL_DEFINE_BY_NAME))
$(foreach by_name,$(AUTO_ADD_GLOBAL_DEFINE_BY_NAME),$(call add_flags,$(by_name)))
endif


yangfeng@yangfeng-desktop:~/msm8x25_1034$ make

HAVE_XLOG_FEATURE=yes
MTK_BT_PROFILE_MAPS=
MTK_FAN5405_SUPPORT=no

论坛徽章:
0
7 [报告]
发表于 2012-12-29 18:03 |只看该作者
回复 6# yfjelley

这输出是对的吧  你想要什么输出
   

论坛徽章:
0
8 [报告]
发表于 2012-12-29 18:12 |只看该作者
回复 7# rongpmcu


    不对 我只想输出HAVE_XLOG_FEATURE=yes

论坛徽章:
0
9 [报告]
发表于 2012-12-29 18:44 |只看该作者
回复 6# yfjelley
endef  写错了
应该是endif

   

论坛徽章:
0
10 [报告]
发表于 2012-12-29 19:48 |只看该作者
本帖最后由 rongpmcu 于 2012-12-29 19:59 编辑

回复 8# yfjelley


    ifeq ifneq等语句是预编译的,我的理解不能用在执行的时候  我试了一些办法  还是不行

特别注意的是,make 是在读取 Makefile 时就计算条件表达式的值,并根据条件表达式
的值来选择语句,所以,你最好不要把自动化变量(如“$@”等)放入条件表达式中,因为
自动化变量是在运行时才有的。  --摘自 《跟我一起学makefile》  

   foreach属于函数 只能放在运行的时候   但ifeq 等是在makefile读入时计算,所以这样思路是错的


我以前写过一个类似的,是这样写的:
depend = $(shell cat depend.list)

make = make -C $(1) $(EX_MAKEFLAG)
make_clean = make clean -C $(1) $(EX_MAKEFLAG)
         
#对同名的裤(包含不同平台的)拷贝会出问题
ifeq ($(lib),"so")
lib=so
else
lib=a
endif

# make += && cp `find $(1) -name *.$(lib)` ./
make += || echo -e '\e[31m'!!!!!!!ERROR!!!!!!! when excute `pwd`/$1/Makefile '\e[m';
make_clean +=;

excute_make_cmd = $(foreach name, $(depend), $(call make,$(name)))
excute_make_clean_cmd = $(foreach name, $(depend), $(call make_clean,$(name)))

all:
        $(excute_make_cmd)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP