summaryrefslogtreecommitdiff
path: root/source4/build/smb_build
diff options
context:
space:
mode:
Diffstat (limited to 'source4/build/smb_build')
-rw-r--r--source4/build/smb_build/makefile.pm21
-rw-r--r--source4/build/smb_build/output.pm38
2 files changed, 11 insertions, 48 deletions
diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm
index a6dfc2dee3..5de8519044 100644
--- a/source4/build/smb_build/makefile.pm
+++ b/source4/build/smb_build/makefile.pm
@@ -263,13 +263,7 @@ sub Header($$)
return if ($#{$ctx->{PUBLIC_HEADERS}} == -1);
- $self->output("PUBLIC_HEADERS +=");
-
- foreach (@{$ctx->{PUBLIC_HEADERS}}) {
- $self->output(" " . output::add_dir_str($ctx->{BASEDIR}, $_));
- }
-
- $self->output("\n");
+ $self->output("PUBLIC_HEADERS += \$(addprefix $ctx->{BASEDIR}/, " . join(" ", @{$ctx->{PUBLIC_HEADERS}}) . ")\n");
}
sub Binary($$)
@@ -317,8 +311,7 @@ sub PythonFiles($$)
foreach (@{$ctx->{PYTHON_FILES}}) {
my $target = "bin/python/".basename($_);
- my $source = output::add_dir_str($ctx->{BASEDIR}, $_);
- $self->output("$target: $source\n\n");
+ $self->output("$target: \$(addprefix $ctx->{BASEDIR}/, $_)\n\n");
$self->output("PYTHON_PYS += $target\n");
}
}
@@ -327,7 +320,7 @@ sub Manpage($$)
{
my ($self,$ctx) = @_;
- $self->output("MANPAGES += " . output::add_dir_str($ctx->{BASEDIR}, $ctx->{MANPAGE}) . "\n");
+ $self->output("MANPAGES += \$(addprefix $ctx->{BASEDIR}/, $ctx->{MANPAGE})\n");
}
sub ProtoHeader($$)
@@ -341,7 +334,7 @@ sub ProtoHeader($$)
my $pub = undef;
if (defined($ctx->{PRIVATE_PROTO_HEADER})) {
- $priv = output::add_dir_str($ctx->{BASEDIR}, $ctx->{PRIVATE_PROTO_HEADER});
+ $priv = "\$(addprefix $ctx->{BASEDIR}/, $ctx->{PRIVATE_PROTO_HEADER})";
$target .= $priv;
$comment .= $priv;
if (defined($ctx->{PUBLIC_PROTO_HEADER})) {
@@ -351,17 +344,17 @@ sub ProtoHeader($$)
$self->output("PROTO_HEADERS += $priv\n");
} else {
$ctx->{PRIVATE_PROTO_HEADER} = $ctx->{PUBLIC_PROTO_HEADER};
- $priv = output::add_dir_str($ctx->{BASEDIR}, $ctx->{PRIVATE_PROTO_HEADER});
+ $priv = "\$(addprefix $ctx->{BASEDIR}/, $ctx->{PRIVATE_PROTO_HEADER})";
}
if (defined($ctx->{PUBLIC_PROTO_HEADER})) {
- $pub = output::add_dir_str($ctx->{BASEDIR}, $ctx->{PUBLIC_PROTO_HEADER});
+ $pub = "\$(addprefix $ctx->{BASEDIR}/, $ctx->{PUBLIC_PROTO_HEADER})";
$comment .= $pub;
$target .= $pub;
$self->output("PROTO_HEADERS += $pub\n");
} else {
$ctx->{PUBLIC_PROTO_HEADER} = $ctx->{PRIVATE_PROTO_HEADER};
- $pub = output::add_dir_str($ctx->{BASEDIR}, $ctx->{PUBLIC_PROTO_HEADER});
+ $pub = "\$(addprefix $ctx->{BASEDIR}/, $ctx->{PUBLIC_PROTO_HEADER})";
}
$self->output("$pub: $ctx->{MK_FILE} \$($ctx->{NAME}_OBJ_LIST:.o=.c) \$(srcdir)/script/mkproto.pl\n");
diff --git a/source4/build/smb_build/output.pm b/source4/build/smb_build/output.pm
index ff9afe8e8c..4a977db731 100644
--- a/source4/build/smb_build/output.pm
+++ b/source4/build/smb_build/output.pm
@@ -9,38 +9,6 @@ package output;
use strict;
use smb_build::config;
-sub add_dir_str($$)
-{
- my ($dir,$file) = @_;
- my $dirsep = "/";
-
- $dir =~ s/^\.$//g;
- $dir =~ s/^\.\///g;
-
- $dirsep = "" if ($dir eq "");
-
- 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;
-}
-
sub generate_shared_library($)
{
my $lib = shift;
@@ -168,8 +136,10 @@ sub create_output($$)
next unless(defined($part->{OUTPUT_TYPE}));
# Combine object lists
- my @list = add_dir_array($part->{BASEDIR}, $part->{OBJ_FILES});
- push(@{$part->{OBJ_LIST}}, @list) if defined($part->{OBJ_FILES});
+ if (defined($part->{OBJ_FILES})) {
+ my $list = "\$(addprefix $part->{BASEDIR}/, " . join(" ", @{$part->{OBJ_FILES}}) . ")";
+ push(@{$part->{OBJ_LIST}}, $list);
+ }
generate_binary($part) if grep(/BINARY/, @{$part->{OUTPUT_TYPE}});
generate_shared_library($part) if grep(/SHARED_LIBRARY/, @{$part->{OUTPUT_TYPE}});