summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGarming Sam <garming@catalyst.net.nz>2014-01-15 17:55:56 +1300
committerAndrew Bartlett <abartlet@samba.org>2014-02-12 13:17:14 +1300
commit2bf17a9d75fed68dd41c770ea9e0c284599f1a82 (patch)
tree39d4477663f55da9a76d1a4707fce32c630adf32
parent5cab9f16d069f72fadfb710f16065f3816782df9 (diff)
downloadsamba-2bf17a9d75fed68dd41c770ea9e0c284599f1a82.tar.gz
samba-2bf17a9d75fed68dd41c770ea9e0c284599f1a82.tar.xz
samba-2bf17a9d75fed68dd41c770ea9e0c284599f1a82.zip
param: use generate_param.py to generate loadparm_ctx_table.c
Pair-programmed-with: Andrew Bartlett <abartlet@samba.org> Signed-off-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Michael Adam <obnox@samba.org>
-rw-r--r--script/mks3param_ctx_table.pl139
-rw-r--r--source3/param/wscript_build4
2 files changed, 2 insertions, 141 deletions
diff --git a/script/mks3param_ctx_table.pl b/script/mks3param_ctx_table.pl
deleted file mode 100644
index 22efc88ca63..00000000000
--- a/script/mks3param_ctx_table.pl
+++ /dev/null
@@ -1,139 +0,0 @@
-#!/usr/bin/perl
-# Generate loadparm interfaces tables for Samba3/Samba4 integration
-# by Andrew Bartlett
-# based on mkproto.pl Written by Jelmer Vernooij
-# based on the original mkproto.sh by Andrew Tridgell
-
-use strict;
-
-# don't use warnings module as it is not portable enough
-# use warnings;
-
-use Getopt::Long;
-use File::Basename;
-use File::Path;
-
-#####################################################################
-# read a file into a string
-
-my $file = undef;
-my $public_define = undef;
-my $_public = "";
-my $_private = "";
-my $public_data = \$_public;
-my $builddir = ".";
-my $srcdir = ".";
-
-sub public($)
-{
- my ($d) = @_;
- $$public_data .= $d;
-}
-
-sub usage()
-{
- print "Usage: mks3param.pl [options] [c files]\n";
- print "OPTIONS:\n";
- print " --srcdir=path Read files relative to this directory\n";
- print " --builddir=path Write file relative to this directory\n";
- print " --help Print this help message\n\n";
- exit 0;
-}
-
-GetOptions(
- 'file=s' => sub { my ($f,$v) = @_; $file = $v; },
- 'srcdir=s' => sub { my ($f,$v) = @_; $srcdir = $v; },
- 'builddir=s' => sub { my ($f,$v) = @_; $builddir = $v; },
- 'help' => \&usage
-) or exit(1);
-
-sub file_load($)
-{
- my($filename) = @_;
- local(*INPUTFILE);
- open(INPUTFILE, $filename) or return undef;
- my($saved_delim) = $/;
- undef $/;
- my($data) = <INPUTFILE>;
- close(INPUTFILE);
- $/ = $saved_delim;
- return $data;
-}
-
-sub print_header($)
-{
- my ($file) = @_;
- $file->("/* This file was automatically generated by mks3param_ctx.pl. DO NOT EDIT */\n\n");
- $file->("static const struct loadparm_s3_helpers s3_fns =\n");
- $file->("{\n");
- $file->("\t.get_parametric = lp_parm_const_string_service,\n");
- $file->("\t.get_parm_struct = lp_get_parameter,\n");
- $file->("\t.get_parm_ptr = lp_parm_ptr,\n");
- $file->("\t.get_service = lp_service_for_s4_ctx,\n");
- $file->("\t.get_servicebynum = lp_servicebynum_for_s4_ctx,\n");
- $file->("\t.get_default_loadparm_service = lp_default_loadparm_service,\n");
- $file->("\t.get_numservices = lp_numservices,\n");
- $file->("\t.load = lp_load_for_s4_ctx,\n");
- $file->("\t.set_cmdline = lp_set_cmdline,\n");
- $file->("\t.dump = lp_dump,\n");
-}
-
-sub print_footer($)
-{
- my ($file) = @_;
- $file->("};");
-}
-
-sub handle_loadparm($$)
-{
- my ($file,$line) = @_;
-
- # STRING isn't handled here, as we still don't know what to do with the substituted vars */
- # LOCAL also isn't handled here
- if ($line =~ /^FN_(GLOBAL)_(CONST_STRING|BOOL|bool|CHAR|INTEGER|LIST)\((\w+),.*\)/o) {
- my $scope = $1;
- my $type = $2;
- my $name = $3;
-
- $file->("\t.$name = lp_$name,\n");
- }
-}
-
-sub process_file($$)
-{
- my ($file, $filename) = @_;
-
- $filename =~ s/\.o$/\.c/g;
-
- if ($filename =~ /^\//) {
- open(FH, "<$filename") or die("Failed to open $filename");
- } elsif (!open(FH, "< $builddir/$filename")) {
- open(FH, "< $srcdir/$filename") || die "Failed to open $filename";
- }
-
- my $comment = undef;
- my $incomment = 0;
- while (my $line = <FH>) {
- if ($line =~ /^FN_/) {
- handle_loadparm($file, $line);
- }
- next;
- }
-
- close(FH);
-}
-
-
-print_header(\&public);
-
-process_file(\&public, $_) foreach (@ARGV);
-print_footer(\&public);
-
-if (not defined($file)) {
- print STDOUT $$public_data;
-}
-
-mkpath(dirname($file), 0, 0755);
-open(PUBLIC, ">$file") or die("Can't open `$file': $!");
-print PUBLIC "$$public_data";
-close(PUBLIC);
diff --git a/source3/param/wscript_build b/source3/param/wscript_build
index 90af52bbd4c..34a906edcb9 100644
--- a/source3/param/wscript_build
+++ b/source3/param/wscript_build
@@ -15,10 +15,10 @@ bld.SAMBA_GENERATOR('s3_param_proto_h',
rule='${PYTHON} ${SRC[0].abspath(env)} --file ${SRC[1].abspath(env)} --output ${TGT} --mode=S3PROTO')
bld.SAMBA_GENERATOR('s3_loadparm_ctx_table_c',
- source= ' ../../script/mks3param_ctx_table.pl ../../lib/param/loadparm.c ../../lib/param/param_functions.c',
+ source= '../../script/generate_param.py ../../docs-xml/smbdotconf/parameters.all.xml',
target='loadparm_ctx_table.c',
group='build_source',
- rule='${PERL} ${SRC[0].abspath(env)} ${SRC[1].abspath(env)} ${SRC[2].abspath(env)} --file ${TGT}')
+ rule='${PYTHON} ${SRC[0].abspath(env)} --file ${SRC[1].abspath(env)} --output ${TGT} --mode=S3TABLE')
bld.SAMBA3_PYTHON('pys3param',
source='pyparam.c',