diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2003-07-12 19:18:49 +0000 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2003-07-12 19:18:49 +0000 |
commit | 7ec635589fa40781ce114c5d6a39fb00b6446d60 (patch) | |
tree | 1ceb46367b954e34015968d657ef9a81d6df1f40 /pkgs/system | |
parent | 0f0a34799245192d4f60e49d15bb46a63cf9735f (diff) |
* Let populate-linkdirs.pl automatically merge libraries.
svn path=/nixpkgs/trunk/; revision=153
Diffstat (limited to 'pkgs/system')
-rwxr-xr-x | pkgs/system/populate-linkdirs.pl | 30 | ||||
-rw-r--r-- | pkgs/system/system.fix | 2 |
2 files changed, 26 insertions, 6 deletions
diff --git a/pkgs/system/populate-linkdirs.pl b/pkgs/system/populate-linkdirs.pl index 4bff975f9cc00..c551e9836cb11 100755 --- a/pkgs/system/populate-linkdirs.pl +++ b/pkgs/system/populate-linkdirs.pl @@ -18,7 +18,8 @@ sub createLinks { my $basename = $srcfile; $basename =~ s/^.*\///g; # strip directory my $dstfile = "$dstdir/$basename"; - if (-d $srcfile) { + if ($srcfile =~ /\/envpkgs$/) { + } elsif (-d $srcfile) { # !!! hack for resolving name clashes if (!-e $dstfile) { mkdir $dstfile, 0755 || @@ -37,13 +38,34 @@ sub createLinks { } } -foreach my $name (keys %ENV) { +my %done; - next unless ($name =~ /^act.*$/); +sub addPkg { + my $pkgdir = shift; - my $pkgdir = $ENV{$name}; + return if (defined $done{$pkgdir}); + $done{$pkgdir} = 1; print "merging $pkgdir\n"; createLinks("$pkgdir", "$selfdir"); + + if (-f "$pkgdir/envpkgs") { + my $envpkgs = `cat $pkgdir/envpkgs`; + chomp $envpkgs; + my @envpkgs = split / +/, $envpkgs; + foreach my $envpkg (@envpkgs) { + addPkg($envpkg); + } + } +} + + +foreach my $name (keys %ENV) { + + next unless ($name =~ /^act.*$/); + + my $pkgdir = $ENV{$name}; + + addPkg($pkgdir); } diff --git a/pkgs/system/system.fix b/pkgs/system/system.fix index ef5458d609522..135617322a7d3 100644 --- a/pkgs/system/system.fix +++ b/pkgs/system/system.fix @@ -2,9 +2,7 @@ Package( [ ("name", "system") , ("build", Relative("system/populate-linkdirs.pl")) - , ("actATerm", IncludeFix("aterm/aterm.fix")) , ("actPkgConfig", IncludeFix("pkgconfig/pkgconfig.fix")) - , ("actOpenSSL", IncludeFix("openssl/openssl.fix")) , ("actSubversion", IncludeFix("subversion/subversion.fix")) , ("actPan", IncludeFix("pan/pan.fix")) ] |