summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2004-11-01 05:23:54 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:05:08 -0500
commit38ee8f04ef945f9b109f8cdb39dc7c3c5ee90dd3 (patch)
tree7ce64716627d1162c27d9471c36f146ae64bc7bc
parent48ce437be2e3da6d67844dfed3d574986c55a67e (diff)
downloadsamba-38ee8f04ef945f9b109f8cdb39dc7c3c5ee90dd3.tar.gz
samba-38ee8f04ef945f9b109f8cdb39dc7c3c5ee90dd3.tar.bz2
samba-38ee8f04ef945f9b109f8cdb39dc7c3c5ee90dd3.zip
r3422: allow for subsystems that don't get included in the list of auto-prototype objects, using
SMB_SUBSYSTEM_NOPROTO() (This used to be commit e6b69183de785641144f9abb1853cab73c70073e)
-rw-r--r--source4/build/smb_build/makefile.pl19
-rw-r--r--source4/build/smb_build/public.m414
2 files changed, 30 insertions, 3 deletions
diff --git a/source4/build/smb_build/makefile.pl b/source4/build/smb_build/makefile.pl
index 3f79b50825..daaeb06c8e 100644
--- a/source4/build/smb_build/makefile.pl
+++ b/source4/build/smb_build/makefile.pl
@@ -540,13 +540,26 @@ binary_$ctx->{BINARY}: basics bin/$ctx->{BINARY}
# $proto_ctx->{OBJ_LIST} - the list of objectfiles which sould be scanned by make proto
#
# $output - the resulting output buffer
-sub _prepare_proto_obj_list($)
+sub _prepare_proto_obj_list($$)
{
my $ctx = shift;
+ my $noproto = shift;
my $tmplist;
my $output;
+ my %proto_obj;
+ use Data::Dumper;
- $tmplist = array2oneperline($ctx->{OBJ_LIST});
+ foreach my $str (@{$ctx->{OBJ_LIST}}) {
+ $proto_obj{$str} = 1;
+ }
+ foreach my $str (keys %{$noproto}) {
+ if ($noproto->{$str}) {
+ delete $proto_obj{"\$(SUBSYSTEM_$str\_OBJS)"};
+ }
+ }
+
+ my @proto_list = (keys %proto_obj);
+ $tmplist = array2oneperline(\@proto_list);
$output = "
###################################
@@ -656,7 +669,7 @@ sub _prepare_obj_lists($)
$output .= _prepare_binary_obj_list(\%{$CTX->{OUTPUT}{BINARIES}{$key}});
}
- $output .= _prepare_proto_obj_list(\%{$CTX->{OUTPUT}{PROTO}});
+ $output .= _prepare_proto_obj_list(\%{$CTX->{OUTPUT}{PROTO}}, \%{$CTX->{INPUT}{SUBSYSTEMS}{NOPROTO}});
return $output;
}
diff --git a/source4/build/smb_build/public.m4 b/source4/build/smb_build/public.m4
index c9e02109c2..e3bbcf1eba 100644
--- a/source4/build/smb_build/public.m4
+++ b/source4/build/smb_build/public.m4
@@ -41,6 +41,10 @@ dnl 1:name,
dnl 2:default_build
dnl )
dnl
+dnl SMB_SUBSYSTEM_NOPROTO(
+dnl 1:name
+dnl )
+dnl
dnl SMB_SUBSYSTEM(
dnl 1:name,
dnl 2:init_obj_files,
@@ -267,6 +271,14 @@ AC_DEFUN([SMB_SUBSYSTEM_ENABLE],
[SMB_SUBSYSTEM_ENABLE_][$1]="$2"
])
+dnl SMB_SUBSYSTEM_NOPROTO(
+dnl 1:name
+dnl )
+AC_DEFUN([SMB_SUBSYSTEM_NOPROTO],
+[
+ [SMB_SUBSYSTEM_NOPROTO_][$1]="1"
+])
+
dnl SMB_SUBSYSTEM(
dnl 1:name,
dnl 2:init_obj_files,
@@ -291,6 +303,7 @@ SMB_INFO_SUBSYSTEMS="$SMB_INFO_SUBSYSTEMS
@{\$SMB_BUILD_CTX->{INPUT}{SUBSYSTEMS}{$1}{REQUIRED_SUBSYSTEMS}} = str2array(\"$5\");
#
\$SMB_BUILD_CTX->{INPUT}{SUBSYSTEMS}{$1}{ENABLE} = \"$[SMB_SUBSYSTEM_ENABLE_][$1]\";
+\$SMB_BUILD_CTX->{INPUT}{SUBSYSTEMS}{NOPROTO}{$1} = \"$[SMB_SUBSYSTEM_NOPROTO_][$1]\";
# End Subsystem $1
###################################
"
@@ -317,6 +330,7 @@ SMB_INFO_SUBSYSTEMS="$SMB_INFO_SUBSYSTEMS
@{\$SMB_BUILD_CTX->{INPUT}{SUBSYSTEMS}{$1}{REQUIRED_SUBSYSTEMS}} = subsystem_get_array(\"$2\", \"$1\", \"REQUIRED_SUBSYSTEMS\");
#
\$SMB_BUILD_CTX->{INPUT}{SUBSYSTEMS}{$1}{ENABLE} = \"$[SMB_SUBSYSTEM_ENABLE_][$1]\";
+\$SMB_BUILD_CTX->{INPUT}{SUBSYSTEMS}{NOPROTO}{$1} = \"$[SMB_SUBSYSTEM_NOPROTO_][$1]\";
# End Subsystem $1
###################################
"