免费注册 查看新帖 |

Chinaunix

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

[其他] Makfile中调用shell脚本 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-07-17 10:08 |只看该作者 |倒序浏览
我想在makefile中调用一个shell脚本,并根据脚本的结果来决定Makefile是否继续执行,请问应该怎么写啊。

论坛徽章:
4
双子座
日期:2014-08-28 10:08:002015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:58:112015年亚洲杯之阿联酋
日期:2015-03-13 03:25:15
2 [报告]
发表于 2014-07-17 10:18 |只看该作者
给你一个例子吧,看粗体部分。

CC = cc
CXX = g++

C_ARGS_ST = -Wall -g -fPIC
C_ARGS_MT = -Wall -g -D_PT_MULTI_THREAD_

#根据当前的机器型号编译不同的版本
ifeq ($(shell getconf LONG_BIT), 32)
        TAG = 32
else
        TAG = 64
endif

CGI_LIB_ST = libptlogin_api_st_$(TAG).a
CGI_LIB_MT = libptlogin_api_mt_$(TAG).a

CPP_FILE = $(wildcard ./*.cpp)
O_CXX_FILE_ST = $(patsubst ./%.cpp, %_st.o, $(CPP_FILE))
O_CXX_FILE_MT = $(patsubst ./%.cpp, %_mt.o, $(CPP_FILE))

all : $(CGI_LIB_ST) $(CGI_LIB_MT)

%.d:%.cpp
        set -e; rm -f $@; \
        $(CXX) -MM $(C_ARGS) $< > $@.$$$$; \
        sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@.tmp; \
        sed "1,1s/^[a-zA-Z]*./&$(TAG)./g" $@.tmp > $@; \
        rm -f $@.*


include $(CPP_FILE:.cpp=.d)

%_st.o : %.cpp %.d
        $(CXX) -o $@ $(C_ARGS_ST) -c $(patsubst %_st.o, %.cpp, $@)
       
%_mt.o : %.cpp %.d
        $(CXX) -o $@ $(C_ARGS_MT) -c $(patsubst %_mt.o, %.cpp, $@)
       
$(CGI_LIB_ST):  $(O_CXX_FILE_ST)
        ar -rs $@ $^

$(CGI_LIB_MT):  $(O_CXX_FILE_MT)
        ar -rs $@ $^

clean:
        rm -rf $(CGI_LIB_ST) $(CGI_LIB_MT)  *.o *.d

论坛徽章:
0
3 [报告]
发表于 2014-07-17 10:28 |只看该作者
好的,谢谢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP