summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/build/smb_build/config_mk.pm2
-rw-r--r--source4/build/smb_build/output.pm29
2 files changed, 21 insertions, 10 deletions
diff --git a/source4/build/smb_build/config_mk.pm b/source4/build/smb_build/config_mk.pm
index 2df5df94f2..12d62437e3 100644
--- a/source4/build/smb_build/config_mk.pm
+++ b/source4/build/smb_build/config_mk.pm
@@ -12,7 +12,7 @@ use smb_build::input;
use strict;
my %attribute_types = (
- "NOPROTO" => "string",
+ "NOPROTO" => "bool",
"REQUIRED_SUBSYSTEMS" => "list",
"OUTPUT_TYPE" => "string",
"INIT_OBJ_FILES" => "list",
diff --git a/source4/build/smb_build/output.pm b/source4/build/smb_build/output.pm
index f156f7945b..b863d7e8dc 100644
--- a/source4/build/smb_build/output.pm
+++ b/source4/build/smb_build/output.pm
@@ -66,15 +66,23 @@ sub create_output($)
my $depend = shift;
my $part;
- $depend->{PROTO}{OUTPUT_TYPE} = "OBJLIST";
- $depend->{PROTO}{TYPE} = "PROTO";
- $depend->{PROTO}{NAME} = "PROTO";
-
- $depend->{ALL_OBJS}{OUTPUT_TYPE} = "OBJLIST";
- $depend->{ALL_OBJS}{TYPE} = "";
- $depend->{ALL_OBJS}{NAME} = "ALL_OBJS";
+ $depend->{PROTO} = {
+ OUTPUT_TYPE => "OBJLIST",
+ TYPE => "PROTO",
+ NAME => "PROTO",
+ OBJ_LIST => []
+ };
+
+ $depend->{ALL_OBJS} = {
+ OUTPUT_TYPE => "OBJLIST",
+ TYPE => "",
+ NAME => "ALL_OBJS",
+ OBJ_LIST => []
+ };
foreach $part (values %{$depend}) {
+ next if $part->{NAME} eq "PROTO";
+ next if $part->{NAME} eq "ALL_OBJS";
next if not defined($part->{OUTPUT_TYPE});
generate_binary($part) if $part->{OUTPUT_TYPE} eq "BINARY";
@@ -87,8 +95,11 @@ sub create_output($)
push(@{$part->{OBJ_LIST}}, @{$part->{ADD_OBJ_FILES}}) if defined($part->{ADD_OBJ_FILES});
push(@{$part->{OBJ_LIST}}, @{$part->{OBJ_FILES}}) if defined($part->{OBJ_FILES});
- push(@{$depend->{ALL_OBJS}{OBJ_LIST}}, @{$part->{OBJ_LIST}}) if (defined(@{$part->{OBJ_LIST}}));
- push(@{$depend->{PROTO}{OBJ_LIST}}, @{$part->{OBJ_LIST}}) if ((not defined ($part->{NOPROTO}) or $part->{NOPROTO} eq "NO") and defined(@{$part->{OBJ_LIST}}));
+ push(@{$depend->{ALL_OBJS}->{OBJ_LIST}}, @{$part->{OBJ_LIST}}) if (defined(@{$part->{OBJ_LIST}}));
+
+ if ((not defined ($part->{NOPROTO})) or ($part->{NOPROTO} eq "NO")) {
+ push(@{$depend->{PROTO}->{OBJ_LIST}}, @{$part->{OBJ_LIST}}) if (defined(@{$part->{OBJ_LIST}}));
+ }
}
foreach $part (values %{$depend}) {