From 38ee8f04ef945f9b109f8cdb39dc7c3c5ee90dd3 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Mon, 1 Nov 2004 05:23:54 +0000 Subject: 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) --- source4/build/smb_build/makefile.pl | 19 ++++++++++++++++--- source4/build/smb_build/public.m4 | 14 ++++++++++++++ 2 files changed, 30 insertions(+), 3 deletions(-) (limited to 'source4') 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 ################################### " -- cgit