Merge branch 'master' of ssh://git.samba.org/data/git/samba
[ira/wip.git] / pidl / pidl
index e58442ba1b696edb0eb84b0cad392ac720dd1aa7..d0623a06904a7491ea8e9828bb6ebb583debe92f 100755 (executable)
--- a/pidl/pidl
+++ b/pidl/pidl
@@ -17,7 +17,7 @@ pidl - An IDL compiler written in Perl
 
 pidl --help
 
-pidl [--outputdir[=OUTNAME]] [--includedir DIR...] [--parse-idl-tree] [--dump-idl-tree] [--dump-ndr-tree] [--header[=OUTPUT]] [--ejs[=OUTPUT]] [--python[=OUTPUT]] [--swig[=OUTPUT]] [--ndr-parser[=OUTPUT]] [--client] [--server] [--warn-compat] [--quiet] [--verbose] [--template] [--ws-parser[=OUTPUT]] [--diff] [--dump-idl] [--tdr-parser[=OUTPUT]] [--samba3-ndr-client[=OUTPUT]] [--samba3-ndr-server[=OUTPUT]] [--typelib=[OUTPUT]] [<idlfile>.idl]...
+pidl [--outputdir[=OUTNAME]] [--includedir DIR...] [--parse-idl-tree] [--dump-idl-tree] [--dump-ndr-tree] [--header[=OUTPUT]] [--python[=OUTPUT]] [--ndr-parser[=OUTPUT]] [--client] [--server] [--warn-compat] [--quiet] [--verbose] [--template] [--ws-parser[=OUTPUT]] [--diff] [--dump-idl] [--tdr-parser[=OUTPUT]] [--samba3-ndr-client[=OUTPUT]] [--samba3-ndr-server[=OUTPUT]] [--typelib=[OUTPUT]] [<idlfile>.idl]...
 
 =head1 DESCRIPTION
 
@@ -477,8 +477,6 @@ my($opt_server);
 my($opt_ndr_parser);
 my($opt_tdr_parser);
 my($opt_ws_parser);
-my($opt_swig);
-my($opt_ejs);
 my($opt_python);
 my($opt_quiet) = 0;
 my($opt_outputdir) = '.';
@@ -521,9 +519,7 @@ Samba 4 output:
  --ndr-parser[=OUTFILE]  create a C NDR parser [ndr_BASENAME.c]
  --client[=OUTFILE]      create a C NDR client [ndr_BASENAME_c.c]
  --tdr-parser[=OUTFILE]  create a C TDR parser [tdr_BASENAME.c]
- --ejs[=OUTFILE]         create ejs wrapper file [BASENAME_ejs.c]
  --python[=OUTFILE]      create python wrapper file [py_BASENAME.c]
- --swig[=OUTFILE]        create swig wrapper file [BASENAME.i]
  --server[=OUTFILE]      create server boilerplate [ndr_BASENAME_s.c]
  --template              print a template for a pipe
  --dcom-proxy[=OUTFILE]  create DCOM proxy [ndr_BASENAME_p.c]
@@ -567,10 +563,8 @@ my $result = GetOptions (
            'ndr-parser:s' => \$opt_ndr_parser,
            'client:s' => \$opt_client,
            'ws-parser:s' => \$opt_ws_parser,
-           'ejs' => \$opt_ejs,
                'python' => \$opt_python,
            'diff' => \$opt_diff,
-           'swig:s' => \$opt_swig,
         'dcom-proxy:s' => \$opt_dcom_proxy,
                'com-header:s' => \$opt_com_header,
            'quiet' => \$opt_quiet,
@@ -615,7 +609,7 @@ sub process_file($)
        }
 
        require Parse::Pidl::Typelist;
-       Parse::Pidl::Typelist::LoadIdl($pidl);
+       Parse::Pidl::Typelist::LoadIdl($pidl, $basename);
 
        if (defined($opt_dump_idl_tree)) {
                my($pidl_file) = ($opt_dump_idl_tree or "$outputdir/$basename.pidl");
@@ -659,18 +653,27 @@ sub process_file($)
 
        $pidl = Parse::Pidl::ODL::ODL2IDL($pidl, dirname($idl_file), \@opt_incdirs);
 
-       if (defined($opt_ws_parser) or 
+       if (defined($opt_ws_parser)) {
+         require Parse::Pidl::Wireshark::NDR;
+
+         my $cnffile = $idl_file;
+         $cnffile =~ s/\.idl$/\.cnf/;
+
+         my $generator = new Parse::Pidl::Wireshark::NDR();
+         $generator->Initialize($cnffile);
+       }
+
+
+       if (defined($opt_ws_parser) or
            defined($opt_client) or
            defined($opt_server) or 
            defined($opt_header) or
            defined($opt_ndr_parser) or
-           defined($opt_ejs) or 
            defined($opt_python) or 
            defined($opt_dump_ndr_tree) or
            defined($opt_samba3_header) or 
            defined($opt_samba3_parser) or 
            defined($opt_samba3_server) or 
-           defined($opt_swig) or
            defined($opt_samba3_ndr_client) or
            defined($opt_samba3_ndr_server)) {
                require Parse::Pidl::NDR;
@@ -702,28 +705,12 @@ sub process_file($)
                FileSave($c_header, $hdrd);
        }
 
-       if (defined($opt_swig)) {
-                 require Parse::Pidl::Samba4::SWIG;
-                 my($filename) = ($opt_swig or "$outputdir/$basename.i");
-                 my $code = Parse::Pidl::Samba4::SWIG::Parse($ndr, $basename, "$outputdir/ndr_$basename\_c.h", $gen_header);
-                 FileSave($filename, $code);
-       }
-
-       if (defined($opt_ejs)) {
-               require Parse::Pidl::Samba4::EJS;
-               my $generator = new Parse::Pidl::Samba4::EJS(); 
-               my ($hdr,$prsr) = $generator->Parse($ndr, $h_filename);
-               FileSave("$outputdir/ndr_$basename\_ejs.c", $prsr);
-               FileSave("$outputdir/ndr_$basename\_ejs.h", $hdr);
-       }
-
        if (defined($opt_python)) {
                require Parse::Pidl::Samba4::Python;
                my $generator = new Parse::Pidl::Samba4::Python(); 
-               my ($hdr,$prsr) = $generator->Parse($basename, $ndr, 
+               my ($prsr) = $generator->Parse($basename, $ndr, 
                                        "$outputdir/ndr_$basename\_c.h", $h_filename);
                FileSave("$outputdir/py_$basename.c", $prsr);
-               FileSave("$outputdir/py_$basename.h", $hdr);
        }
 
        if (defined($opt_server)) {