|
发表于 2005-12-6 12:23:04
|
显示全部楼层
可以吧 但是需要从cvs自己安装
你可以试这个自动安装脚本
自动从cvs上下载并编译成deb包 然后安装
http://e17cn.blogspot.com/2005/11/e17.html
- 这里不只是编译 E17 还包括了其它的 EFL程序 如engage等 ,下面是perl源码
- 保存成inse17源文件, 然后运行就可以
- 最新的更新
- 增加了CVS中check out功能
- 使一切全部自动化
- 只需要保存成inse17.pl
- 然后在这个目录下执行perl inse17.pl就会自动执行
- 对于debian 需要安装一些相关的程序
- 如fakeroot
- 还有下面是编译时必须的
- m4
- autoconf
- automake (1.7 or greater)
- libtool
- pkg-config
- texinfo
- gettext
- 另外ecore需要libxcursoss-devel 编译ecore如果不成功的话可以把它装上
- #!/usr/bin/perl
- #
- use strict;
- use FileHandle;
- my $logfilehandle = new FileHandle ">e17install.log";
- my $autobuilddir = 1;#if true,then auto build all directory
- my $autobuild = 1;# if true,auto build all packages in a directory
- my @compileobjs =(
- ['e17/libs','../..',
- 'edb',
- 'eet',
- 'imlib2',
- 'imlib2_loaders',
- 'evas',
- 'ecore',
- 'edje',
- 'epeg',
- 'epsilon',
- 'embryo',
- 'esmart',
- 'emotion',
- 'ewl',
- 'engrave'],
- ['e17/apps','../..',
- 'e',
- 'e_utils',
- 'entice',
- #'entrance',
- 'eclair',
- 'elicit',
- #'erss',
- 'examine'
- #'iconbar',
- #'e_modules'
- ],
- ['misc','..',
- 'engage']
- );
- print "get CVS source code\n";
- print "login CVS:,when need you input password,press return directly\n";
- print 'cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/enlightenment login'."\n";
- system('cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/enlightenment login');
- print 'chech out E17:'."\n";
- print 'cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/enlightenment co e17'."\n";
- system('cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/enlightenment co e17');
- print 'chech out Misc:'."\n";
- print 'cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/enlightenment co misc'."\n";
- system('cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/enlightenment co misc');
- print "start build debian packages\n\n";
- my $objs;
- foreach $objs (@compileobjs){
- my @objarray = @$objs;
- my $dir = shift(@objarray);
- my $back_dir = shift(@objarray);
- if( ! -d $dir ){
- print "dir:$dir not exist,will skip compile it\n";
- next;
- }
- next if( (!$autobuilddir)
- && (!choseact("are you want to build dir:$dir\n")) );
- print "start parse:<<<<< $dir >>>>>: back:$back_dir\n";
- chdir $dir;
- system('rm -f *.deb *.dsc *.tar.gz *.changes');
- my $subdir;
- foreach $subdir (@objarray){
- if( !(-d $subdir) ){
- print "dir:$subdir not exist,skip compile it\n";
- next;
- }
- print "\n\nenter directory:".$subdir."\n";
- chdir($subdir);
- parsedir($subdir);
- $logfilehandle->autoflush(1);
- print "\n";
- $logfilehandle->autoflush(0);
- chdir("../");
- system('rm -f *.dsc *.tar.gz *.changes');
- }
- chdir $back_dir;
- }
- close($logfilehandle);
- sub parsedir()
- {
- my $pkg = $_[0];
- return if((!$autobuild) && (!choseact("are you want to build:$pkg\n")) );
- my $curpwd = qx(pwd);
- chomp($curpwd);
- print "\tcur dir is:\n\t$curpwd\n";
- print "\trun: dpkg-buildpackage -us -uc -rfakeroot 2>&1\n";
- print $logfilehandle "\n\t\tcur dir is:\n\t$curpwd\n";
- chmod 755,'debian/rules' if(! -x 'debian/rules');
- chmod 755,'autogen.sh' if(! -x 'autogen.sh');
- #if you don't use deb,then you can call these two line
- #system('./autogen.sh --prefix=/usr;make;make uninstall;make install');
- #return ;
- system("make distclean >/dev/null 2>&1");
- system('cp debian/changelog.in debian/changelog >/dev/null 2>&1') if(! -f 'debian/changelog');
- open(MAKEFI,"dpkg-buildpackage -us -uc -rfakeroot 2>&1|") || die "exec fail\n";
- print $logfilehandle 'dpkg-buildpackage -us -uc -rfakeroot 2>&1'."\n";
- my @pkgs;
- my $line;
- print "\n";
- while($line=){
- print $logfilehandle $line;
- if($line=~m/dpkg\-deb:\s+building\s+package\s+\`([^']+)\'\s+in\s+\`([^']+)\'/){
- print "\tpkg:[$1:\t$2]\n";
- push(@pkgs,$2);
- }
- else{
- if($line=~m/\berror\b/i){
- print $line;
- }
- else {
- if($line=~m/undefined reference to/i){
- print $line;
- }
- else {
- if($line=~m/Unmet build dependencies/i){
- print $line;
- }
- }
- }
- }
- }
- close(MAKEFI);
- if($#pkgs < 0){
- print "error no package found,build message is write to e17install.log file\n";
- print $logfilehandle "error no package found,please check build message\n";
- }
- else{
- my $pkgfile = join(" ",@pkgs);
- print "\n>>>>>>>>>\n\tdpkg -i $pkgfile\n\n";
- system("dpkg -i $pkgfile");
- }
- print "\n";
- }
- sub choseact()
- {
- print $_[0]."\nplease input yes or no [Y]\n";
- my $in=;
- if($in=~m/n/i){
- print "cancel\n";
- return 0;
- }
- print "\n";
- return 1;
- }
复制代码 |
|