From f6eb8342cba87c7c8f17471ed9783b567d36b0ed Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Sun, 14 Dec 2003 13:22:12 +0000 Subject: added auto-generation of the server side boilerplate code for each pipe. The server side code gets generated as librpc/gen_ndr/ndr_NAME_s.c and gets included in the pipe module (This used to be commit bd3dcfe5820489a838e19b244266bd9126af5eb4) --- source4/build/pidl/pidl.pl | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'source4/build/pidl/pidl.pl') diff --git a/source4/build/pidl/pidl.pl b/source4/build/pidl/pidl.pl index 30dcde929a..ce8250826a 100755 --- a/source4/build/pidl/pidl.pl +++ b/source4/build/pidl/pidl.pl @@ -16,6 +16,7 @@ use File::Basename; use idl; use dump; use header; +use server; use parser; use eparser; use validator; @@ -26,6 +27,7 @@ my($opt_parse) = 0; my($opt_dump) = 0; my($opt_diff) = 0; my($opt_header) = 0; +my($opt_server) = 0; my($opt_parser) = 0; my($opt_eparser) = 0; my($opt_keep) = 0; @@ -61,6 +63,7 @@ sub ShowHelp() --dump dump a pidl file back to idl --header create a C header file --parser create a C parser + --server create server boilterplate --eparser create an ethereal parser --diff run diff on the idl and dumped output --keep keep the .pidl file @@ -75,6 +78,7 @@ GetOptions ( 'parse' => \$opt_parse, 'dump' => \$opt_dump, 'header' => \$opt_header, + 'server' => \$opt_server, 'parser' => \$opt_parser, 'eparser' => \$opt_eparser, 'diff' => \$opt_diff, @@ -100,7 +104,7 @@ sub process_file($) $output = $opt_output . $basename; } - my($pidl_file) = util::ChangeExtension($output, "pidl"); + my($pidl_file) = util::ChangeExtension($output, ".pidl"); print "Compiling $idl_file\n"; @@ -120,22 +124,27 @@ sub process_file($) } if ($opt_header) { - my($header) = util::ChangeExtension($output, "h"); + my($header) = util::ChangeExtension($output, ".h"); util::FileSave($header, IdlHeader::Parse($pidl)); } + + if ($opt_server) { + my($server) = util::ChangeExtension($output, "_s.c"); + util::FileSave($server, IdlServer::Parse($pidl)); + } if ($opt_parser) { - my($parser) = util::ChangeExtension($output, "c"); + my($parser) = util::ChangeExtension($output, ".c"); IdlParser::Parse($pidl, $parser); } if ($opt_eparser) { - my($parser) = util::ChangeExtension($output, "c"); + my($parser) = util::ChangeExtension($output, ".c"); util::FileSave($parser, IdlEParser::Parse($pidl)); } if ($opt_diff) { - my($tempfile) = util::ChangeExtension($output, "tmp"); + my($tempfile) = util::ChangeExtension($output, ".tmp"); util::FileSave($tempfile, IdlDump::Dump($pidl)); system("diff -wu $idl_file $tempfile"); unlink($tempfile); -- cgit