summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2007-12-04 14:18:58 +0100
committerStefan Metzmacher <metze@samba.org>2007-12-21 05:48:10 +0100
commite0754868dfa868900f84266f155a236fd13b0ea3 (patch)
treee520f07430862ccfc40e0d4223cbf45c023e99e9
parent59469088e70581e33a83a8e26bec879ecdc7ded4 (diff)
downloadsamba-e0754868dfa868900f84266f155a236fd13b0ea3.tar.gz
r26290: build: split add_dir() into add_dir_str() and add_dir_array()
metze
-rw-r--r--source/build/smb_build/output.pm36
1 files changed, 23 insertions, 13 deletions
diff --git a/source/build/smb_build/output.pm b/source/build/smb_build/output.pm
index 17d57553480..d9c05530b37 100644
--- a/source/build/smb_build/output.pm
+++ b/source/build/smb_build/output.pm
@@ -8,26 +8,35 @@
package output;
use strict;
-sub add_dir($$)
+sub add_dir_str($$)
{
- my ($dir,$files) = @_;
- my @ret = ();
+ my ($dir,$file) = @_;
my $dirsep = "/";
$dir =~ s/^\.$//g;
$dir =~ s/^\.\///g;
$dirsep = "" if ($dir eq "");
-
- foreach (@$files) {
- if (substr($_, 0, 1) ne "\$") {
- $_ = "$dir$dirsep$_";
- s/([^\/\.]+)\/\.\.\///g;
- s/([^\/\.]+)\/\.\.\///g;
- }
- push (@ret, $_);
+
+ my $ret = $file;
+ if (substr($ret, 0, 1) ne "\$") {
+ $ret = "$dir$dirsep$file";
+ $ret =~ s/([^\/\.]+)\/\.\.\///g;
+ $ret =~ s/([^\/\.]+)\/\.\.\///g;
}
-
+
+ return $ret;
+}
+
+sub add_dir_array($$)
+{
+ my ($dir,$files) = @_;
+ my @ret = ();
+
+ foreach (@{$files}) {
+ push (@ret, add_dir_str($dir, $_));
+ }
+
return @ret;
}
@@ -136,7 +145,8 @@ sub create_output($$)
next unless(defined($part->{OUTPUT_TYPE}));
# Combine object lists
- push(@{$part->{OBJ_LIST}}, add_dir($part->{BASEDIR}, $part->{OBJ_FILES})) if defined($part->{OBJ_FILES});
+ my @list = add_dir_array($part->{BASEDIR}, $part->{OBJ_FILES});
+ push(@{$part->{OBJ_LIST}}, @list) if defined($part->{OBJ_FILES});
generate_binary($part) if grep(/BINARY/, @{$part->{OUTPUT_TYPE}});
generate_shared_library($part) if grep(/SHARED_LIBRARY/, @{$part->{OUTPUT_TYPE}});