summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsource4/build/pidl/pidl.pl30
1 files changed, 18 insertions, 12 deletions
diff --git a/source4/build/pidl/pidl.pl b/source4/build/pidl/pidl.pl
index 325f07b058..1d6b45172a 100755
--- a/source4/build/pidl/pidl.pl
+++ b/source4/build/pidl/pidl.pl
@@ -34,11 +34,11 @@ my($opt_help) = 0;
my($opt_parse) = 0;
my($opt_dump) = 0;
my($opt_diff) = 0;
-my($opt_header) = 0;
+my($opt_header);
my($opt_template) = 0;
my($opt_client) = 0;
my($opt_server) = 0;
-my($opt_parser) = 0;
+my($opt_parser);
my($opt_eparser) = 0;
my($opt_keep) = 0;
my($opt_swig) = 0;
@@ -59,7 +59,6 @@ sub IdlParse($)
return $idl;
}
-
#########################################
# display help text
sub ShowHelp()
@@ -72,11 +71,11 @@ sub ShowHelp()
Options:
--help this help page
- --output OUTNAME put output in OUTNAME.*
+ --output=OUTNAME put output in OUTNAME.*
--parse parse a idl file to a .pidl file
--dump dump a pidl file back to idl
- --header create a C NDR header file
- --parser create a C NDR parser
+ --header[=OUTFILE] create a C NDR header file
+ --parser[=OUTFILE] create a C NDR parser
--client create a C NDR client
--server create server boilerplate
--template print a template for a pipe
@@ -97,10 +96,10 @@ GetOptions (
'output=s' => \$opt_output,
'parse' => \$opt_parse,
'dump' => \$opt_dump,
- 'header' => \$opt_header,
+ 'header:s' => \$opt_header,
'server' => \$opt_server,
'template' => \$opt_template,
- 'parser' => \$opt_parser,
+ 'parser:s' => \$opt_parser,
'client' => \$opt_client,
'eparser' => \$opt_eparser,
'diff' => \$opt_diff,
@@ -186,8 +185,12 @@ sub process_file($)
$pidl = ODL::ODL2IDL($pidl);
}
- if ($opt_header) {
- my($header) = util::ChangeExtension($output, ".h");
+ if (defined($opt_header)) {
+ my $header = $opt_header;
+ if ($header eq "") {
+ $header = util::ChangeExtension($output, ".h");
+ }
+
util::FileSave($header, NdrHeader::Parse($pidl));
if ($opt_eparser) {
my($eparserhdr) = dirname($output) . "/packet-dcerpc-$basename.h";
@@ -248,8 +251,11 @@ $dcom
}
}
- if ($opt_parser) {
- my($parser) = util::ChangeExtension($output, ".c");
+ if (defined($opt_parser)) {
+ my $parser = $opt_parser;
+ if ($parser eq "") {
+ $parser = util::ChangeExtension($output, ".c");
+ }
util::FileSave($parser, NdrParser::Parse($pidl, $parser));
if($opt_eparser) {
my($eparser) = dirname($output) . "/packet-dcerpc-$basename.c";