Index: ChangeLog
from Clement Vasseur <clement.vasseur(a)lrde.epita.fr>
* auto_build/auto_build.pl: Clean the script. Prepare for name change.
* auto_build/packages.list: Adjust.
Index: auto_build/auto_build.pl
--- auto_build/auto_build.pl (revision 76)
+++ auto_build/auto_build.pl (working copy)
@@ -1,6 +1,6 @@
#!/usr/bin/perl -w
#
-# Auto Build System - auto_build.pl
+# Auto Build System - auto-build
# Copyright (C) 2004 LRDE - EPITA Research and Development Laboratory
#
# This program is free software; you can redistribute it and/or modify
@@ -22,19 +22,23 @@
# Clement Vasseur <clement.vasseur(a)lrde.epita.fr>
# Nicolas Pouillard <nicolas.pouillard(a)lrde.epita.fr>
+# Any contribution should follow the Perl style guide: perldoc perlstyle
+# This script should remain self-contained and it should not depend on any
+# module besides the ones in the standard Perl 5.8 installation.
+
my $VERSION = 0.1;
=pod
=head1 NAME
-auto_build.pl
+auto-build
=head1 SYNOPSIS
-auto_build.pl [options] packages.list
+auto-build [options] packages.list
- -m, --man display the auto_build manual
+ -m, --man display the manual
-h, --help print this help and exit
-V, --version print version information and exit
-d, --delay=DELAY redo a build cycle after DELAY minutes
@@ -47,12 +51,13 @@
use Getopt::Long;
use Pod::Usage;
-my $work_dir;
my $report_dir;
+my $build_dir;
+my $inst_dir;
my @packages;
my %variables;
-my %colors;
+my @colors;
my %deps;
my $packages;
@@ -73,8 +78,9 @@
pod2usage(-verbose => 0) unless defined $packages;
&read_pkg_list($packages);
-&create_dir("$work_dir/src");
-&create_dir("$report_dir");
+&create_dir($report_dir);
+&create_dir($build_dir);
+&create_dir($inst_dir);
&prepare_pkgs;
while (1) {
@@ -89,25 +95,17 @@
foreach my $pkg (@packages) {
print "$pkg->{'name'}\n";
- my $rev = "$work_dir/usr/$pkg->{'name'}/.rev";
- if ($pkg->{'url'} =~ m/^svn:/) {
- &get_revision($pkg);
- unlink $rev if -f $rev and $pkg->{'rev'} > `cat $rev`;
- }
- if (-f $rev) {
- &set_status($pkg, "skipped");
- next;
- }
-
+ next if &check_revision($pkg);
&gen_pkg_report($pkg);
my $ok = 1;
foreach my $dep (@{$deps{$pkg->{'name'}}}) {
foreach (@packages) {
- $ok = 0 if $_->{'name'} eq $dep and $_->{'status'} eq
"failed";
+ $ok = 0 if $_->{'name'} eq $dep
+ and ($_->{'status'} eq 'failed' or $_->{'status'}
eq 'skipped');
}
unless ($ok) {
- &set_status($pkg, "skipped");
+ &set_status($pkg, 'skipped');
last;
}
}
@@ -116,36 +114,89 @@
}
}
-sub read_pkg_list {
+sub xopen {
my $filename = shift;
+ my $name = $filename;
+ my $FILE;
+
+ $name =~ s/^>//;
+ open $FILE, $filename
+ or die "$0: unable to open `$name': $!\n";
+ return $FILE;
+}
+
+sub xclose {
+ my $FILE = shift;
+ close $FILE or die "$0: unable to close `$FILE': $!\n";
+}
+
+sub header {
+ my ($filename, $title) = @_;
+ my $FILE = &xopen(">$filename");
+ select $FILE;
+
+ print <<HTML;
+<html>
+ <head>
+ <title>$title</title>
+ </head>
+ <body>
+HTML
+
+ return $FILE;
+}
- open LIST, $filename
- or die "$0: unable to open `$filename': $!\n";
+sub footer {
+ print <<HTML;
+ <hr/>
+ <h4>Generated by <i>auto-build</i> version $VERSION</h4>
+ </body>
+</html>
+HTML
- while (<LIST>) {
+ select STDOUT;
+ my $FILE = shift;
+ &xclose($FILE);
+}
+
+sub read_pkg_list {
+ my $filename = shift;
+ my $LIST = &xopen($filename);
+ my $section;
+
+ while (<$LIST>) {
s/\s*\#.*$//;
next if m/^\s*$/;
chomp;
while (s/\s*\\\s*$/ /) {
- my $l = <LIST>;
+ my $l = <$LIST>;
$l =~ s/^\s*//;
$l =~ s/\s*\#.*$//;
$_ .= $l;
chomp;
}
- unless (defined $work_dir) {
- $work_dir = $_;
- next;
- }
unless (defined $report_dir) {
$report_dir = $_;
next;
}
- if (m/^color\s+([\dA-Fa-f]+)\s+\"(.*?)\"\s*$/) {
- $colors{$2} = $1;
+ unless (defined $build_dir) {
+ $build_dir = $_;
+ next;
+ }
+
+ unless (defined $inst_dir) {
+ $inst_dir = $_;
+ next;
+ }
+
+ if (m/^\s*color\s+(\w+)\s+\"(.*?)\"\s*$/) {
+ push @colors, [ $2, $1 ];
+
+ } elsif (m/^\s*section\s+\"(.*)\"\s*$/) {
+ $section = $1;
} elsif (m/^([\w\-]+)\s*=\s*(.*?)\s*$/) {
$variables{$1} = $2;
@@ -153,12 +204,10 @@
} elsif (m/^([\w\-]+)\s*$/) {
push @packages, {
'name' => $1,
- 'status' => '',
+ 'section' => $section,
'opt' => '',
'cfg' => '',
- 'rev' => '0',
- 'time_started' => '',
- 'time_finished' => ''
+ 'rev' => '0'
};
} elsif (m/^\s*(\w\w\w)\s*:\s*(.*?)\s*$/) {
@@ -178,7 +227,7 @@
if (defined $variables{$1}) {
$value =~ s/\$\{([\w\-]+)\}/$variables{$1}/;
} else {
- $value =~ s/\$\{([\w\-]+)\}/$work_dir\/usr\/$1/;
+ $value =~ s/\$\{([\w\-]+)\}/$inst_dir\/$1/;
push @{$deps{$packages[-1]->{'name'}}}, $1;
}
}
@@ -189,8 +238,9 @@
}
}
- (defined $work_dir and defined $report_dir)
- or die "$0: `work' and `report' directories must be defined\n";
+ &xclose($LIST);
+ (defined $report_dir and defined $build_dir and $inst_dir)
+ or die "$0: `report', `build' and `inst' directories must be
defined\n";
}
sub create_dir {
@@ -212,91 +262,127 @@
chdir $dir or die "$0: unable to chdir `$dir': $!\n";
}
+sub time_to_str {
+ $_ = shift;
+ my $t = '';
+
+ if (defined $_ and $_ ne '') {
+ $t = ($_ % 60) . "s";
+ $t = (($_/60) % 60) . "m$t" if $_ >= 60;
+ $t = (($_/(60 * 60)) % 60) . "h$t" if $_ >= 60 * 60;
+ }
+
+ return $t;
+}
+
sub gen_summary {
- open SUMMARY, ">$report_dir/index.html"
- or die "$0: unable to open `$report_dir/index.html': $!\n";
+ my $SUMMARY = &header("$report_dir/index.html", "Auto Build
System");
+ my $section = '';
- print SUMMARY <<HTML;
-<html>
- <head>
- <title>Auto Build System</title>
- </head>
- <body>
+ print <<HTML;
<h1>Auto Build System</h1>
<hr/>
<table>
HTML
- foreach (@packages) {
+ foreach my $pkg (@packages) {
+ if ($pkg->{'section'} ne $section) {
+ if ($section ne '') {
+ print <<HTML;
+ <tr>
+ <td>
+
+ </td>
+ </tr>
+HTML
+ }
+ $section = $pkg->{'section'};
+ print <<HTML;
+ <tr>
+ <td>
+ <h3>$section</h3>
+ </td>
+ </tr>
+HTML
+ }
+
+ $pkg->{'status'} = '' unless defined $pkg->{'status'};
+
my $color = "black";
- $color = "red" if $_->{'status'} eq "failed";
- $color = "green" if $_->{'status'} eq "succeeded";
- $color = "gray" if $_->{'status'} eq "skipped";
+ my $time = &time_to_str($pkg->{'time'});
+
+ $color = "red" if $pkg->{'status'} eq "failed";
+ $color = "green" if $pkg->{'status'} eq "succeeded";
+ $color = "gray" if $pkg->{'status'} eq "skipped";
- print SUMMARY <<HTML;
+ print <<HTML;
<tr>
- <td><a
href=\"$_->{'name'}/$_->{'name'}.html\">$_->{'name'}</a></td>
- <td><font
color=\"$color\">$_->{'status'}</font></td>
+ <td><a
href=\"$pkg->{'name'}/$pkg->{'name'}.html\">$pkg->{'name'}</a></td>
+ <td> </td>
+ <td><font
color=\"$color\">$pkg->{'status'}</font></td>
+ <td> </td>
+ <td><font color=\"gray\">$time</font></td>
</tr>
HTML
}
- print SUMMARY <<HTML;
- </table>
- </body>
-</html>
-HTML
- close SUMMARY;
+ print " </table>\n";
+ &footer($SUMMARY);
}
sub gen_pkg_report {
my $pkg = shift;
- my $dir =
"$report_dir/$pkg->{'name'}/$pkg->{'name'}.html";
+ my $filename =
"$report_dir/$pkg->{'name'}/$pkg->{'name'}.html";
+ my $REPORT = &header("$filename", "$pkg->{'name'}
report");
- open REPORT, ">$dir"
- or die "$0: unable to open `$dir': $!\n";
+ my ($ts, $tf) = ('', '');
+ $ts = localtime $pkg->{'time_started'} if defined
$pkg->{'time_started'};
+ $tf = localtime $pkg->{'time_finished'} if defined
$pkg->{'time_finished'};
- print REPORT <<HTML;
-<html>
- <head>
- <title>$pkg->{'name'} report</title>
- </head>
- <body>
+ print <<HTML;
<h1>$pkg->{'name'}</h1>
<hr/>
- <h3>Build started: $pkg->{'time_started'}</h3>
- <table>
+ <h3>Build started: $ts</h3>
+ <table cellpadding=\"8\">
HTML
- foreach (@{$pkg->{'steps'}}) {
- next unless defined $_->{'name'};
- if (defined $_->{'status'}) {
+ foreach my $step (@{$pkg->{'steps'}}) {
+ next unless defined $step->{'name'};
+ if (defined $step->{'status'}) {
my $color = "black";
- $color = "green" if $_->{'status'} eq "succeeded";
- $color = "red" if $_->{'status'} eq "failed";
+ $color = "green" if $step->{'status'} eq
"succeeded";
+ $color = "red" if $step->{'status'} eq "failed";
+
+ my $time = &time_to_str($step->{'time'});
- print REPORT <<HTML;
+ print <<HTML;
<tr>
- <td><a
href=\"$_->{'name'}.html\">$_->{'name'}</a></td>
- <td><font
color=\"$color\">$_->{'status'}</font></td>
+ <td><a
href=\"$step->{'name'}.html\">$step->{'name'}</a></td>
+ <td><font
color=\"$color\">$step->{'status'}</font></td>
+ <td><font color=\"gray\">$time</font></td>
</tr>
HTML
} else {
- print REPORT <<HTML;
+ print <<HTML;
<tr>
- <td>$_->{'name'}</td>
+ <td>$step->{'name'}</td>
</tr>
HTML
}
}
- print REPORT <<HTML;
+ print <<HTML;
</table>
- <h3>Build finished: $pkg->{'time_finished'}</h3>
- </body>
-</html>
+ <h3>Build finished: $tf</h3>
HTML
- close REPORT;
+
+ if (defined $pkg->{'archives'}) {
+ foreach (@{$pkg->{'archives'}}) {
+ print " <a href=\"$_\">$_</a><br/>\n" if -f
$_;
+ }
+ }
+
+ &footer($REPORT);
}
sub set_status {
@@ -305,92 +391,97 @@
&gen_summary;
}
-sub err {
- print "error: @_\n";
- return undef;
-}
-
sub gen_log_page {
my $pkg = shift;
- my $status = shift;
- my $out = "$report_dir/$pkg->{'name'}/$status.html";
-
- open LOG, ">$out"
- or die "$0: unable to open `$out': $!\n";
-
- print LOG <<HTML;
-<html>
- <head>
- <title>$pkg->{'name'} - $status</title>
- </head>
- <body>
- <h1>@_</h1>
+ my $step = shift;
+ my $filename =
"$report_dir/$pkg->{'name'}/$step->{'name'}.html";
+ my $REPORT = &header("$filename", "$pkg->{'name'} -
$step->{'name'}");
+
+ print <<HTML;
+ <h1>$step->{'name'}</h1>
+ <h4>$step->{'cmd'}</h4>
<hr/>
- <a href="$status.log">Log</a>
- </body>
-</html>
+ <a href="$step->{'name'}.log">Log</a>
HTML
- close LOG;
+ &footer($REPORT);
}
sub run {
my $pkg = shift;
- my $status = shift;
+ my $step = shift;
+ my $status = $step->{'name'};
my $out = "$report_dir/$pkg->{'name'}/$status";
&set_status($pkg, $status);
- &gen_log_page($pkg, $status, @_);
+ &gen_log_page($pkg, $step);
- my $exit_code = system("@_ >$out.log 2>&1");
+ my $t = time;
+ my $exit_code = system("$step->{'cmd'} >$out.log
2>&1");
+ $step->{'time'} = time - $t;
- open LOG, ">$out.html"
- or die "$0: unable to open `$out.html': $!\n";
+ my $REPORT = &header("$out.html", "$pkg->{'name'} -
$status");
- print LOG <<HTML;
-<html>
- <head>
- <title>$pkg->{'name'} - $status</title>
- </head>
- <body>
- <h1>@_</h1>
+ print <<HTML;
+ <h1>$step->{'name'}</h1>
+ <h4>$step->{'cmd'}</h4>
<hr/>
<pre>
HTML
- open OUT, "$out.log"
- or die "$0: unable to open `$out.log': $!\n";
+ my $LOG = &xopen("$out.log");
+ my $archives_ready;
- while (<OUT>) {
+ while (<$LOG>) {
my $color;
- foreach my $regex (keys %colors) {
- $color = $colors{$regex} if m/^$regex$/;
- }
- print LOG "<font color=\"#$color\">" if $color;
- print LOG;
- print LOG "</font>" if $color;
- }
-
- print LOG <<HTML;
- </pre>
- </body>
-</html>
-HTML
- close LOG;
-
- return &err("command `@_' failed: $?") if $exit_code;
+ foreach my $c (@colors) {
+ $color = $c->[1] if m/^$c->[0]/;
+ last if defined $color;
+ }
+ if ($status eq 'check') {
+ if (($archives_ready and m/^($archives_ready\.tar\.(gz|bz2))$/)
+ or m/^(.*\.tar\.(gz|bz2)) is ready for distribution$/) {
+ push @{$pkg->{'archives'}}, $1;
+ system("/bin/cp \"$1\"
\"$report_dir/$pkg->{'name'}\"")
+ and die "$0: unable to cp `$1' to
`$report_dir/$pkg->{'name'}': $!\n"
;
+ }
+ $archives_ready = $1 if m/^(.*) archives ready for distribution: $/;
+ }
+ print "<font color=\"$color\">" if $color;
+ print;
+ print "</font>" if $color;
+ }
+
+ print " </pre>\n";
+ &xclose($LOG);
+ &footer($REPORT);
+ return undef if $exit_code;
return 1;
}
-sub get_revision {
+sub check_revision {
my $pkg = shift;
+ my $revfile = "$inst_dir/$pkg->{'name'}/.rev";
+ my $rev;
if ($pkg->{'url'} =~ m|^svn:(.*/([^/]+))$|) {
- my $rev = `svn log -q \"https:$1\" 2>/dev/null | grep '^r' |
head -n 1`;
- chomp($rev);
+ chomp($rev = `svn log -q \"https:$1\" 2>/dev/null | grep '^r' |
head -n 1`)
;
$rev =~ s/^r(\d+).*$/$1/;
+ } elsif ($pkg->{'url'} =~ m/^((ht|f)tp:.*)$/) {
+ chomp($rev = `wget -qnv -O - \"$1\" | md5sum`);
+ }
$pkg->{'rev'} = $rev;
+
+ if (-f $revfile) {
+ chomp($rev = `cat \"$revfile\"`);
+ unlink $revfile if $pkg->{'rev'} ne $rev;
+ }
+ if (-f $revfile) {
+ chomp($pkg->{'time'} = `cat
\"$inst_dir/$pkg->{'name'}/.time\"`);
+ &set_status($pkg, 'succeeded');
+ return 1;
}
+ return undef;
}
sub get_package {
@@ -398,7 +489,8 @@
my @steps;
$_ = $pkg->{'url'};
- if (m|^http://.*/([^/]+)/?$|) {
+ if (m|^http://.*/([^/]+)/?$|
+ or m|^ftp://.*/([^/]+)/?$|) {
$_ = "file://$1";
push @steps, {
'name' => 'download',
@@ -415,30 +507,39 @@
$pkg->{'dir'} = $file;
if (defined $c) {
- my $dir = `tar -t${c}f $file | head -n 1 | cut -d '/' -f 0-1`;
- chomp($pkg->{'dir'} = $dir);
- &delete_dir($pkg->{'dir'});
-
push @steps, {
'name' => 'unpack',
'cmd' => "tar -x${c}vf \"$file\""
}, {
- 'dir' => "$work_dir/src/$pkg->{'dir'}"
+ 'dir' => "tar -t${c}f \"$file\" | head -n 1 | cut -d
'/' -f 0-1",
};
}
} elsif (m|^svn://(.*/([^/]+))/?$|) {
my $repository = "https://$1";
$pkg->{'dir'} = $2;
- &delete_dir($pkg->{'dir'});
+
push @steps, {
'name' => 'checkout',
- 'cmd' => "svn checkout $repository"
+ 'cmd' => "svn checkout \"$repository\""
}, {
- 'dir' => "$work_dir/src/$pkg->{'dir'}",
+ 'dir' => "echo \"$pkg->{'dir'}\"",
'name' => 'bootstrap',
- 'cmd' => "./bootstrap"
+ 'cmd' => '(./bootstrap || ./bootstrap.sh || autoreconf -fvi)'
};
+
+ } elsif (m|^prcs://(.*)$|) {
+ $pkg->{'dir'} = $1;
+
+ push @steps, {
+ 'dir' => "echo \"$1\"",
+ 'name' => 'checkout',
+ 'cmd' => "prcs checkout \"$1\""
+ }, {
+ 'name' => 'bootstrap',
+ 'cmd' => '(./bootstrap || ./bootstrap.sh || autoreconf -fvi)'
+ };
+
} else {
die "$0: invalid URL `$_': unknown protocol\n";
}
@@ -449,7 +550,8 @@
sub prepare_pkgs {
foreach my $pkg (@packages) {
my @steps = &get_package($pkg);
- &create_dir("$report_dir/$pkg->{'name'}");
+ my $dir = "$report_dir/$pkg->{'name'}";
+ &create_dir($dir);
push @steps, {
'name' => 'patch',
@@ -457,15 +559,25 @@
} if defined $pkg->{'dif'};
push @steps, {
'name' => 'configure',
- 'cmd' => "./configure
--prefix=$work_dir/usr/$pkg->{'name'} $pkg->{'cfg'}
"
+ 'cmd' => "./configure --prefix=$inst_dir/$pkg->{'name'}
$pkg->{'cfg'}"
}, {
'name' => 'build', 'cmd' => 'make'
- }, {
+ };
+ my $dcf = '';
+ defined $pkg->{'cfg'} and $pkg->{'cfg'} ne ''
+ and $dcf = "DISTCHECK_CONFIGURE_FLAGS=\"$pkg->{'cfg'}\"
";
+ push @steps, {
'name' => 'check',
- 'cmd' => "make
DISTCHECK_CONFIGURE_FLAGS=\"$pkg->{'cfg'}\" distcheck"
+ 'cmd' => "make ${dcf}distcheck"
} unless $pkg->{'opt'} =~ m/\bno-check\b/;
- push @steps, { 'name' => 'install', 'cmd' => 'make
install' };
+ push @steps, {
+ 'rm' => "$inst_dir/$pkg->{'name'}"
+ },{
+ 'name' => 'install', 'cmd' => 'make install'
+ };
$pkg->{'steps'} = \@steps;
+ next if &check_revision($pkg);
+ &gen_pkg_report($pkg) unless -f "$dir/$pkg->{'name'}.html";
}
}
@@ -484,15 +596,22 @@
}
my $st;
- &ch_dir("$work_dir/src");
- &delete_dir($pkg->{'dir'});
- $pkg->{'time_started'} = localtime;
+ my $dir = "$build_dir/$pkg->{'name'}";
+ &delete_dir($dir);
+ &create_dir($dir);
+ &ch_dir($dir);
+ $pkg->{'time_started'} = time;
foreach my $step (@{$pkg->{'steps'}}) {
$step->{'status'} = "running";
&gen_pkg_report($pkg);
- &ch_dir($step->{'dir'}) if defined $step->{'dir'};
+ &delete_dir($step->{'rm'}) if defined $step->{'rm'};
+ if (defined $step->{'dir'}) {
+ chomp($pkg->{'dir'} = `$step->{'dir'}`);
+ &create_dir($pkg->{'dir'});
+ &ch_dir($pkg->{'dir'});
+ }
if (not defined $step->{'cmd'}
- or &run($pkg, $step->{'name'}, $step->{'cmd'})) {
+ or &run($pkg, $step)) {
$step->{'status'} = $st = "succeeded";
next;
}
@@ -500,19 +619,21 @@
last;
}
+ $pkg->{'time_finished'} = time;
+ $pkg->{'time'} = $pkg->{'time_finished'} -
$pkg->{'time_started'};
%ENV = %env;
- $pkg->{'time_finished'} = localtime;
&gen_pkg_report($pkg);
- &ch_dir("$work_dir/src");
+ &ch_dir($build_dir);
&set_status($pkg, $st);
if ($st eq "succeeded") {
- system("echo \"$pkg->{'rev'}\" >
\"$work_dir/usr/$pkg->{'name'}/.rev\"");
- &delete_dir($pkg->{'dir'});
+ system("echo \"$pkg->{'rev'}\" >
\"$inst_dir/$pkg->{'name'}/.rev\"");
+ system("echo \"$pkg->{'time'}\" >
\"$inst_dir/$pkg->{'name'}/.time\"");
+ &delete_dir($pkg->{'name'});
}
}
sub version {
- print "auto_build.pl (Auto Build System) $VERSION\n",
+ print "auto-build (Auto Build System) $VERSION\n",
"Written by Clement Vasseur and Nicolas Pouillard.\n\n",
"Copyright (C) 2004 LRDE - EPITA Research and Development Laboratory.\n",
"This is free software; see the source for copying conditions. ",
Index: auto_build/packages.list
--- auto_build/packages.list (revision 76)
+++ auto_build/packages.list (working copy)
@@ -1,50 +1,83 @@
### Auto Build System #########################################################
-# work directory
-/tmp/auto_build
-
# report directory
-/mnt/ghost/stud/vasseu_c/www
+/mnt/ghost/stud/vasseu_c/www/build
+
+# build directory
+/work/nitro/auto-build/src
+
+# inst directory
+/work/nitro/auto-build/usr
### Color highlighting ########################################################
-color 808080 "make.*?:.*"
-color FF0000 "warning:.*"
-color FF0000 "SdfChecker:warning:.*"
+color red "make.*: \*\*\* "
+color red "SdfChecker:error: "
+color maroon "warning:"
+color maroon "SdfChecker:warning: "
+color gray "make.*:"
+
+### Tiger #####################################################################
+
+section "Tiger"
+
+#------------------------------------------------------------------------------
+
+havm
+
+ url: svn://svn.lrde.epita.fr/svn/havm/trunk
+ dif: /home/lrde/lrde-2005/vasseu_c/havm.diff
+
+#------------------------------------------------------------------------------
+
+nolimips
+
+ url: svn://svn.lrde.epita.fr/svn/nolimips/trunk
### StrategoXT ################################################################
-aterm = /mnt/daily/usr/Aterm
-sdf = /mnt/daily/usr/Sdf
-strategoxt = /mnt/daily/usr/StrategoXT
-# stratego-shell = /mnt/daily/usr/stratego-shell
+section "StrategoXT"
#------------------------------------------------------------------------------
-# aterm
-#
-# url:
http://www.cwi.nl/projects/MetaEnv/daily-dist/aterm-2.2.tar.gz
-# cfg: --with-gcc
+aterm
+
+ url:
http://www.cwi.nl/projects/MetaEnv/aterm/aterm-2.2.tar.gz
+ cfg: --with-gcc
#------------------------------------------------------------------------------
-# sdf
-#
-# url:
http://losser.st-lab.cs.uu.nl/~mbravenb/dailydist/sdf2-bundle-dailydist
/src/sdf2-bundle-dailydist-head.tar.gz
-# cfg: --with-aterm=${aterm}
-# opt: no-check
+sdf
+
+ url:
ftp://ftp.stratego-language.org/pub/stratego/sdf2/sdf2-bundle-2.2.tar.gz
+ cfg: --with-aterm=${aterm}
+ opt: no-check
#------------------------------------------------------------------------------
-# strategoxt
-#
-# url:
http://losser.st-lab.cs.uu.nl/~mbravenb/dailydist/strategoxt/src/strata
egoxt-head.tar.gz
-# cfg: --with-aterm=${aterm}\
-# --with-sdf=${sdf}
-# opt: no-check
+strategoxt
+
+ url:
http://losser.st-lab.cs.uu.nl/~mbravenb/dailydist/strategoxt/src/stratego
xt-head.tar.gz
+ cfg: --with-aterm=${aterm}\
+ --with-sdf=${sdf}
+ opt: no-check
+
+#------------------------------------------------------------------------------
+
+stratego-shell
+
+ url: svn://svn.cs.uu.nl:12443/repos/StrategoXT/trunk/experimental/stratego-she
ll
+ cfg: --with-aterm=${aterm}\
+ --with-sdf=${sdf}\
+ --with-strategoxt=${strategoxt}
+ env: PATH="${strategoxt}/bin:$PATH"
### Transformers ##############################################################
+section "Transformers"
+
+#------------------------------------------------------------------------------
+
sdf-option
url: svn://svn.lrde.epita.fr/svn/transformers/trunk/sdf-option
@@ -99,8 +132,7 @@
sdf-attribute
-#url: svn://svn.lrde.epita.fr/svn/transformers/experimental/sdf-attribute
- url: file:///mnt/daily/dists/sdf-attribute-20040629.tar.bz2
+ url: svn://svn.lrde.epita.fr/svn/transformers/experimental/sdf-attribute
cfg: --with-aterm=${aterm}\
--with-sdf=${sdf}\
--with-strategoxt=${strategoxt}\
@@ -110,19 +142,19 @@
#------------------------------------------------------------------------------
-# c-grammar
-#
-# url: svn://svn.lrde.epita.fr/svn/transformers/branches/c-grammar
-# cfg: --with-aterm=${aterm}\
-# --with-sdf=${sdf}\
-# --with-strategoxt=${strategoxt}\
-# --with-boxedsdf=${boxedsdf}\
-# --with-sdf-option=${sdf-option}\
-# --with-sdf-detgen=${sdf-detgen}\
-# --with-sdf-astgen=${sdf-astgen}\
-# --with-sdf-attribute=${sdf-attribute}\
-# --with-esdf=${esdf}
-# env: PATH="${sdf-detgen}/bin:${stratego-shell}/bin:${strategoxt}/bin:$PATH"
+c-grammar
+
+ url: svn://svn.lrde.epita.fr/svn/transformers/branches/c-grammar
+ cfg: --with-aterm=${aterm}\
+ --with-sdf=${sdf}\
+ --with-strategoxt=${strategoxt}\
+ --with-boxedsdf=${boxedsdf}\
+ --with-sdf-option=${sdf-option}\
+ --with-sdf-detgen=${sdf-detgen}\
+ --with-sdf-astgen=${sdf-astgen}\
+ --with-sdf-attribute=${sdf-attribute}\
+ --with-esdf=${esdf}
+ env: PATH="${sdf-detgen}/bin:${stratego-shell}/bin:${strategoxt}/bin:$PATH"
#------------------------------------------------------------------------------
@@ -152,17 +184,17 @@
#------------------------------------------------------------------------------
-# cxx-typecheck
-#
-# url: svn://svn.lrde.epita.fr/svn/transformers/trunk/cxx-typecheck
-# cfg: --with-aterm=${aterm}\
-# --with-sdf=${sdf}\
-# --with-strategoxt=${strategoxt}\
-# --with-boxedsdf=${boxedsdf}\
-# --with-sdf-option=${sdf-option}\
-# --with-cxx-grammar=${cxx-grammar}\
-# --with-esdf=${esdf}
-# env: PATH="${strategoxt}/bin:$PATH"
+cxx-typecheck
+
+ url: svn://svn.lrde.epita.fr/svn/transformers/trunk/cxx-typecheck
+ cfg: --with-aterm=${aterm}\
+ --with-sdf=${sdf}\
+ --with-strategoxt=${strategoxt}\
+ --with-boxedsdf=${boxedsdf}\
+ --with-sdf-option=${sdf-option}\
+ --with-cxx-grammar=${cxx-grammar}\
+ --with-esdf=${esdf}
+ env: PATH="${strategoxt}/bin:$PATH"
#------------------------------------------------------------------------------
@@ -180,4 +212,27 @@
--with-sdf-astgen=${sdf-astgen}
env: PATH="${strategoxt}/bin:$PATH"
+### Olena #####################################################################
+
+section "Olena"
+
+#------------------------------------------------------------------------------
+
+olena
+
+ url: prcs://oln
+ env: PRCS_REPOSITORY="/home/lrde/admin/prcs/repository"
+
+### Vaucanson #################################################################
+
+section "Vaucanson"
+
+#------------------------------------------------------------------------------
+
+vaucanson
+
+ url: svn://svn.lrde.epita.fr/svn/vaucanson/trunk
+ cfg: --with-xml
+ env: PATH="/home/lrde/lrde-2005/vasseu_c/usr/bin/old:$PATH"
+
#------------------------------------------------------------------------------