|
给makepkg改了个补丁,可以方便点使用icc...
gentoo wiki:http://en.gentoo-wiki.com/wiki/ICC
原文在我的blog:http://huntxu.blogs.mu/2009/10/03/let-makepkg-work-with-icc/
- A patch making makepkg work with icc by huntxu (mhuntxu[AT]gmail[dot]com)
- --- makepkg.orig 2009-10-02 22:40:42.711085370 +0800
- +++ makepkg 2009-10-02 22:41:29.349081726 +0800
- @@ -703,8 +703,37 @@
- MAKEFLAGS=""
- fi
-
- + # I don't think ccache can be used with icc
- + local useicc=0
- + if [ "$(check_buildenv icc)" = "y" -a "$(check_option icc)" != "n" ]; then
- + if [ -r /etc/package.icc ]; then
- + while read -a target; do
- + if [ "${target}" = "${pkgname}" ]; then
- + useicc=1
- + CC="icc"
- + CXX="icpc"
- + AR="xiar"
- + LD="xild"
- + CFLAGS=${ICCCFLAGS}
- + CXXFLAGS=${ICCCXXFLAGS}
- + export CC CXX AR LD
- + if [ -r /etc/package.icc-cflags ]; then
- + while read target flags; do
- + if [ "${target}" = "${pkgname}" ]; then
- + CFLAGS="$CFLAGS $flags"
- + CXXFLAGS="$CXXFLAGS $flags"
- + break;
- + fi
- + done < /etc/package.icc-cflags
- + fi
- + break
- + fi
- + done < /etc/package.icc
- + fi
- + fi
- +
- # use ccache if it is requested (check buildenv and PKGBUILD opts)
- - if [ "$(check_buildenv ccache)" = "y" -a "$(check_option ccache)" != "n" ]; then
- + if [ "${useicc}" = "0" -a "$(check_buildenv ccache)" = "y" -a "$(check_option ccache)" != "n" ]; then
- [ -d /usr/lib/ccache/bin ] && export PATH="/usr/lib/ccache/bin:$PATH"
- fi
复制代码
当然要先装icc,再在/etc/makepkg.conf里的BUILDENV加上icc,/etc/makepkg里还要加上ICCCFLAGS和ICCCXXFLAGS两个变量,将要使用icc编译的包名写在/etc/package.icc,对应单独的包用icc编译的CFLAGS写到/etc/package.icc-cflags。
如果暂时不想用icc编译已经将名字写入/etc/package.icc的包的话就在PKGBUILD里的option项加!icc...
我只是懒得每次都在configure前加那么多指定环境变量的东西而已...而且既然打包傻瓜化,那就傻瓜化到底吧...
本来还有另一个补丁是把custom的license自动安装到/usr/share/licenses/$pkgname的目录下的,因为我同样懒得每次都在build()里写install -Dm644 LICENSE .... .不过在pacman-dev的ml已经大概被否决了,说这样不符合kiss...
P.S.: 使用icc的话会禁用掉ccache,据我搜索过的东西显示这两个玩意没办法一起用,所以就多了个$useicc的变量~ |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|