Commit 9e118d0a authored by ian@well-typed.com's avatar ian@well-typed.com

Move libffi's tarball into its own repo

This means that ghc-tarballs is only needed on Windows
parent 9e185cc0
......@@ -55,7 +55,7 @@ $(libffi_STAMP_CONFIGURE): $(TOUCH_DEP)
$(call removeFiles,$(libffi_STAMP_STATIC_SHARED_BUILD))
$(call removeFiles,$(libffi_STAMP_STATIC_SHARED_INSTALL))
$(call removeTrees,$(LIBFFI_DIR) libffi/build)
cat ghc-tarballs/libffi/libffi*.tar.gz | $(GZIP_CMD) -d | { cd libffi && $(TAR_CMD) -xf - ; }
cat libffi-tarballs/libffi*.tar.gz | $(GZIP_CMD) -d | { cd libffi && $(TAR_CMD) -xf - ; }
mv libffi/libffi-* libffi/build
# We have to fake a non-working ln for configure, so that the fallback
......
......@@ -42,7 +42,8 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# localpath tag remotepath
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ghc-tarballs - ghc-tarballs.git
ghc-tarballs windows ghc-tarballs.git
libffi-tarballs - libffi-tarballs.git
utils/hsc2hs - hsc2hs.git
utils/haddock - haddock.git
libraries/array - packages/array.git
......
......@@ -2,6 +2,7 @@
use strict;
use Cwd;
use English;
$| = 1; # autoflush stdout after each print, to avoid output after die
......@@ -55,6 +56,8 @@ sub parsePackages {
$line{"tag"} = $2;
$line{"remotepath"} = $3;
push @packages, \%line;
$tags{$2} = 0;
}
elsif (! /^(#.*)?$/) {
die "Bad content on line $lineNum of packages file: $_";
......@@ -244,8 +247,6 @@ sub gitall {
my $is_github_repo = $repo_base =~ m/(git@|git:\/\/|https:\/\/)github.com/;
parsePackages;
@args = ();
if ($command =~ /^remote$/) {
......@@ -554,14 +555,18 @@ sub help
{
my $exit = shift;
my $tags = join ' ', sort (grep !/^-$/, keys %tags);
# Get the built in help
my $help = <<END;
Usage:
./sync-all [-q] [-s] [--ignore-failure] [-r repo] [--checked-out] [--bare]
[--nofib] [--extra] [--testsuite] [--no-dph] [--resume]
[--<tag>] [--no-<tag>] [--resume]
cmd [git flags]
where <tag> is one of: $tags
Applies the command "cmd" to each repository in the tree.
A full repository tree is obtained by first cloning the ghc
......@@ -752,8 +757,13 @@ END
sub main {
&parsePackages();
$tags{"-"} = 1;
$tags{"dph"} = 1;
if ($OSNAME =~ /^(MSWin32|Cygwin)$/) {
$tags{"windows"} = 1;
}
while ($#_ ne -1) {
my $arg = shift;
......@@ -792,12 +802,15 @@ sub main {
}
# --<tag> says we grab the libs tagged 'tag' with
# 'get'. It has no effect on the other commands.
elsif ($arg =~ m/^--no-(.*)$/) {
elsif ($arg =~ m/^--no-(.*)$/ && defined($tags{$1})) {
$tags{$1} = 0;
}
elsif ($arg =~ m/^--(.*)$/) {
elsif ($arg =~ m/^--(.*)$/ && defined($tags{$1})) {
$tags{$1} = 1;
}
elsif ($arg =~ m/^-/) {
die "Unrecognised flag: $arg";
}
else {
unshift @_, $arg;
if (grep /^-q$/, @_) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment