mirror of
https://github.com/samba-team/samba.git
synced 2024-12-27 03:21:53 +03:00
0831b8b9f5
so it now apears in the text section of
'size librpc/gen_ndr/tables.o'
metze
(This used to be commit f3b917402a
)
98 lines
1.8 KiB
Perl
Executable File
98 lines
1.8 KiB
Perl
Executable File
#!/usr/bin/perl -w
|
|
|
|
###################################################
|
|
# package to produce a table of all idl parsers
|
|
# Copyright tridge@samba.org 2003
|
|
# released under the GNU GPL
|
|
|
|
use strict;
|
|
|
|
use Getopt::Long;
|
|
use File::Basename;
|
|
|
|
my($opt_output);
|
|
my($opt_help) = 0;
|
|
|
|
|
|
#########################################
|
|
# display help text
|
|
sub ShowHelp()
|
|
{
|
|
print "
|
|
perl IDL table generator
|
|
Copyright (C) tridge\@samba.org
|
|
|
|
Usage: tables.pl [options] <idlfile>
|
|
|
|
Options:
|
|
--output OUTNAME put output in OUTNAME.*
|
|
\n";
|
|
exit(0);
|
|
}
|
|
|
|
# main program
|
|
GetOptions (
|
|
'help|h|?' => \$opt_help,
|
|
'output=s' => \$opt_output,
|
|
);
|
|
|
|
if ($opt_help) {
|
|
ShowHelp();
|
|
exit(0);
|
|
}
|
|
|
|
|
|
###################################
|
|
# extract table entries from 1 file
|
|
sub process_file($)
|
|
{
|
|
my $filename = shift;
|
|
open(FILE, $filename) || die "unable to open $filename\n";
|
|
|
|
print TABLEH "#include \"$filename\"\n";
|
|
|
|
while (my $line = <FILE>) {
|
|
if ($line =~ /extern const struct dcerpc_interface_table (\w+);/) {
|
|
print TABLEC "\t&$1,\n";
|
|
}
|
|
}
|
|
|
|
close(FILE);
|
|
}
|
|
|
|
print "Creating $opt_output.[ch]\n";
|
|
open(TABLEH, ">$opt_output.h") || die "failed to open $opt_output.h\n";
|
|
open(TABLEC, ">$opt_output.c") || die "failed to open $opt_output.c\n";
|
|
|
|
#include "includes.h"
|
|
|
|
#define NDR_BASE_MARSHALL_SIZE 1024
|
|
|
|
print TABLEC "
|
|
#include \"includes.h\"
|
|
|
|
/*
|
|
generated by pidl IDL table generator
|
|
*/
|
|
const struct dcerpc_interface_table * const dcerpc_pipes[] = {
|
|
";
|
|
|
|
print TABLEH "
|
|
/*
|
|
table headers generated by pidl IDL table generator
|
|
*/
|
|
|
|
extern const struct dcerpc_interface_table * const dcerpc_pipes[];
|
|
|
|
";
|
|
|
|
foreach my $filename (@ARGV) {
|
|
process_file($filename);
|
|
}
|
|
|
|
|
|
print TABLEC "\tNULL\n};\n";
|
|
|
|
close(TABLEH);
|
|
close(TABLEC);
|