LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 788|回复: 3

关于用garnome 从源码编译gnome。

[复制链接]
发表于 2003-7-12 17:01:07 | 显示全部楼层 |阅读模式
garnome为想从源码编译gnome的朋友提供了极大的方便,现在的版是2.50, 是针对gnome2.3.3的,也就是说你用garnome2.5编译出来的就是gnome2.3.3。http://www.gnome.org/~jdub/garnome/download/

虽然garnome本身可以用make garchive来预先下载所有的包,但是是“所有”而不是”所需“。:)
为在了编译的同时,能不断的下载源码包,我写了一个脚本,用来在编译的同时下载所需的包 。把这个脚本放到gargnome-xxx/meta/下的任一目录下,比如你要编译gnome-desktop, 则把脚本放这目录下,你运行make install 后,就可以另起一个shell运行这个脚本了,
脚本的过程就是从gnome-desktop/Makefile中取出编译时所依赖的包的信息(LIBDEPS),其实就是garnome-**/gnome/某个目录, 然后在逐一进入目录, 运行make garchive. 就这么简单。

  1. #!/bin/bash
  2. echo "Start...."
  3. str=`grep LIBDEPS Makefile`
  4. #echo $str
  5. for d in $str; do
  6.         if [ -d ../../$d ]; then
  7.                 echo  ...$d
  8.                 cd ../../$d
  9.                 make garchive
  10.                 cd -
  11.         else
  12.                 echo "Not dir, Canceled!"
  13.         fi
  14. done
复制代码


还有个问题我还没解决,就是很多源码包解开后都有一个doc/reference/(..)html目录,html目录的上级目录中的Makefile 定义了这样一步:
  1.          echo '-- Installing $(srcdir)/html/index.sgml' ; \
  2.          $(INSTALL_DATA) $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR); \
复制代码

而几乎每一个这样的操作都会产生错误,因为都没有index.sgml这样一个文件。 实在不知道应该怎样解决。 :) 我在garnome-**/gnome/Makefile文件里添加了
  1. if [ -d $(srcdir)/doc/reference/html/ ]; then
  2.         touch $(srcdir)/doc/reference/html/index.sgml
  3. fi
复制代码

没有产生效果。:) 只好手动的touch一个index.sgml. 正想自动解决的办法ing............
 楼主| 发表于 2003-7-12 17:06:15 | 显示全部楼层
garnome-**/gnome/Makefile
把添加的改成如下也不行。不知道Makefile是如何包含上层的Makefile的。
[code]
if [ -d $(srcdir)/html/ ]; then
        touch $(srcdir)/html/index.sgml
fi
[code]
发表于 2003-7-12 20:31:23 | 显示全部楼层
echo '-- Installing $(srcdir)/html/index.sgml'
从脚本来看,好像有问题吧~~(我对编译不在行),换成""双引号!因为单引号无法对变量解释!
 楼主| 发表于 2003-7-13 16:52:06 | 显示全部楼层

...

写法应该是没有问题, 原因在于那个目录下根本没有index.sgml这个文件.
我touch一个index.sgml下就没问题了.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表