r6836: Allow optionally passing in a destination filename for NDR parsers
authorJelmer Vernooij <jelmer@samba.org>
Mon, 16 May 2005 23:30:34 +0000 (23:30 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:16:49 +0000 (13:16 -0500)
and NDR headers
(This used to be commit 421e7feee96ebda1bf92814e06257d728ea2b1e5)

source4/build/pidl/pidl.pl

index 325f07b058b369ebe2a7acd8a3014a73eaed3bbd..1d6b45172ad67092385252b55c872d198251de82 100755 (executable)
@@ -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";