diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2010-04-07 22:17:34 +0200 |
---|---|---|
committer | Jelmer Vernooij <jelmer@samba.org> | 2010-04-07 22:53:39 +0200 |
commit | 472860c9a7485e37627900cb450dca605051e07a (patch) | |
tree | f9f48254d38b51636ce85c32fb4aaa2e65d34fa3 /source4/script | |
parent | 36474e58676574d426f4f8a3a067be52fa78cc9f (diff) | |
download | samba-472860c9a7485e37627900cb450dca605051e07a.tar.gz |
Move configure_check_unused script to root scriptdir, as it is useful
for both s3 and s4.
Diffstat (limited to 'source4/script')
-rwxr-xr-x | source4/script/configure_check_unused.pl | 124 |
1 files changed, 0 insertions, 124 deletions
diff --git a/source4/script/configure_check_unused.pl b/source4/script/configure_check_unused.pl deleted file mode 100755 index 52d8deeb27f..00000000000 --- a/source4/script/configure_check_unused.pl +++ /dev/null @@ -1,124 +0,0 @@ -#!/usr/bin/perl -# Script that finds macros in a configure script that are not -# used in a set of C files. -# Copyright Jelmer Vernooij <jelmer@samba.org>, GPL -# -# Usage: ./$ARGV[0] configure.in [c-files...] - -use strict; - -sub autoconf_parse($$$$) -{ - my $in = shift; - my $defines = shift; - my $functions = shift; - my $headers = shift; - - open(IN, $in) or die("Can't open $in"); - - my $ln = 0; - - foreach(<IN>) { - $ln++; - - if(/AC_DEFINE\(([^,]+),/) { - $defines->{$1} = "$in:$ln"; - } - - if(/AC_CHECK_FUNCS\(\[*(.[^],)]+)/) { - foreach(split / /, $1) { - $functions->{$_} = "$in:$ln"; - } - } - - if(/AC_CHECK_FUNC\(([^,)]+)/) { - $functions->{$1} = "$in:$ln"; - } - - if(/AC_CHECK_HEADERS\(\[*([^],)]+)/) { - foreach(split / /, $1) { - $headers->{$_} = "$in:$ln"; - } - } - - if(/AC_CHECK_HEADER\(([^,)]+)/) { - $headers->{$1} = "$in:$ln"; - } - - if(/sinclude\(([^,]+)\)/) { - autoconf_parse($1, $defines, $functions, $headers); - } - } - - close IN; -} - -# Return the symbols and headers used by a C file -sub cfile_parse($$$) -{ - my $in = shift; - my $symbols = shift; - my $headers = shift; - - open(FI, $in) or die("Can't open $in"); - my $ln = 0; - my $line; - while($line = <FI>) { - $ln++; - $_ = $line; - if (/\#([ \t]*)include ["<]([^">]+)/) { - $headers->{$2} = "$in:$ln"; - } - - $_ = $line; - while(/([A-Za-z0-9_]+)/g) { - $symbols->{$1} = "$in:$ln"; - } - } - close FI; -} - -my %ac_defines = (); -my %ac_func_checks = (); -my %ac_headers = (); -my %symbols = (); -my %headers = (); - -if (scalar(@ARGV) <= 1) { - print("Usage: configure_find_unused.pl configure.in [CFILE...]\n"); - exit 0; -} - -autoconf_parse(shift(@ARGV), \%ac_defines, \%ac_func_checks, \%ac_headers); -cfile_parse($_, \%symbols, \%headers) foreach(@ARGV); - -(keys %ac_defines) or warn("No defines found in configure.in file, parse error?"); - -foreach (keys %ac_defines) { - if (not defined($symbols{$_})) { - print "$ac_defines{$_}: Autoconf-defined $_ is unused\n"; - } -} - -(keys %ac_func_checks) or warn("No function checks found in configure.in file, parse error?"); - -foreach (keys %ac_func_checks) { - my $def = "HAVE_".uc($_); - if (not defined($symbols{$_})) { - print "$ac_func_checks{$_}: Autoconf-checked function `$_' is unused\n"; - } elsif (not defined($symbols{$def})) { - print "$ac_func_checks{$_}: Autoconf-define `$def' for function `$_' is unused\n"; - } -} - -(keys %ac_headers) or warn("No headers found in configure.in file, parse error?"); - -foreach (keys %ac_headers) { - my $def = "HAVE_".uc($_); - $def =~ s/[\/\.]/_/g; - if (not defined($headers{$_})) { - print "$ac_headers{$_}: Autoconf-checked header `$_' is unused\n"; - } elsif (not defined($symbols{$def})) { - print "$ac_headers{$_}: Autoconf-define `$def' for header `$_' is unused\n"; - } -} |