aboutsummaryrefslogtreecommitdiffstats
path: root/tools/node_modules/expresso/deps/jscoverage/js/build/autoconf/acoutput-fast.pl
diff options
context:
space:
mode:
Diffstat (limited to 'tools/node_modules/expresso/deps/jscoverage/js/build/autoconf/acoutput-fast.pl')
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/js/build/autoconf/acoutput-fast.pl202
1 files changed, 202 insertions, 0 deletions
diff --git a/tools/node_modules/expresso/deps/jscoverage/js/build/autoconf/acoutput-fast.pl b/tools/node_modules/expresso/deps/jscoverage/js/build/autoconf/acoutput-fast.pl
new file mode 100644
index 0000000..973dd86
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/js/build/autoconf/acoutput-fast.pl
@@ -0,0 +1,202 @@
+#! /usr/bin/env perl
+#
+# ***** BEGIN LICENSE BLOCK *****
+# Version: MPL 1.1/GPL 2.0/LGPL 2.1
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Original Code is mozilla.org code.
+#
+# The Initial Developer of the Original Code is
+# Netscape Communications Corporation.
+# Portions created by the Initial Developer are Copyright (C) 1999
+# the Initial Developer. All Rights Reserved.
+#
+# Contributor(s):
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either of the GNU General Public License Version 2 or later (the "GPL"),
+# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+# in which case the provisions of the GPL or the LGPL are applicable instead
+# of those above. If you wish to allow use of your version of this file only
+# under the terms of either the GPL or the LGPL, and not to allow others to
+# use your version of this file under the terms of the MPL, indicate your
+# decision by deleting the provisions above and replace them with the notice
+# and other provisions required by the GPL or the LGPL. If you do not delete
+# the provisions above, a recipient may use your version of this file under
+# the terms of any one of the MPL, the GPL or the LGPL.
+#
+# ***** END LICENSE BLOCK *****
+
+# acoutput-fast.pl - Quickly create makefiles that are in a common format.
+#
+# Most of the makefiles in mozilla only refer to two configure variables:
+# @srcdir@
+# @top_srcdir@
+# However, configure does not know any better and it runs sed on each file
+# with over 150 replacement rules (slow as molasses).
+#
+# This script takes a list of makefiles as input. For example,
+#
+# echo $MAKEFILES | acoutput-fast.pl
+#
+# The script creates each Makefile that only references @srcdir@ and
+# @top_srcdir@. For other files, it lists them in a shell command that is
+# printed to stdout:
+#
+# CONFIG_FILES="unhandled_files..."; export CONFIG_FILES
+#
+# This command can be used to have config.status create the unhandled
+# files. For example,
+#
+# eval "echo $MAKEFILES | acoutput-fast.pl"
+# AC_OUTPUT($MAKEFILES)
+#
+# Send comments, improvements, bugs to Steve Lamm (slamm@netscape.com).
+
+#use File::Basename;
+sub dirname {
+ my $dir = $_[0];
+ return '.' if not $dir =~ m%/%;
+ $dir =~ s%/[^/][^/]*$%%;
+ return $dir;
+}
+
+# Create one directory. Assumes it doesn't already exist.
+# Will create parent(s) if needed.
+sub create_directory {
+ my $dir = $_[0];
+ my $parent = dirname($dir);
+ create_directory($parent) if not -d $parent;
+ mkdir "$dir",0777;
+}
+
+# Create all the directories at once.
+# This can be much faster than calling mkdir() for each one.
+sub create_directories {
+ my @makefiles = @_;
+ my @dirs = ();
+ my $ac_file;
+ foreach $ac_file (@makefiles) {
+ push @dirs, dirname($ac_file);
+ }
+ # Call mkdir with the directories sorted by subdir count (how many /'s)
+ if (@dirs) {
+ foreach $dir (@dirs) {
+ if (not -d $dir) {
+ print STDERR "Creating directory $dir\n";
+ create_directory($dir);
+ }
+ }
+ }
+}
+
+while($arg = shift) {
+ if ($arg =~ /^--srcdir=/) {
+ $ac_given_srcdir = (split /=/, $arg)[1];
+ }
+ if ($arg =~ /^--cygwin-srcdir/) {
+ $ac_cygwin_srcdir = (split /=/, $arg)[1];
+ }
+}
+
+if (!$ac_given_srcdir) {
+ $ac_given_srcdir = $0;
+ $ac_given_srcdir =~ s|/?build/autoconf/.*$||;
+ $ac_given_srcdir = '.' if $ac_given_srcdir eq '';
+}
+
+if (!$ac_cygwin_srcdir) {
+ $ac_cygwin_srcdir = $ac_given_srcdir;
+}
+
+# Read list of makefiles from the stdin or,
+# from files listed on the command-line.
+#
+@makefiles=();
+push @makefiles, split while (<STDIN>);
+
+# Create all the directories at once.
+# This can be much faster than calling mkdir() for each one.
+create_directories(@makefiles);
+
+# Output the makefiles.
+#
+@unhandled=();
+foreach $ac_file (@makefiles) {
+ if (not $ac_file =~ /Makefile$/ or $ac_file =~ /:/) {
+ push @unhandled, $ac_file;
+ next;
+ }
+ $ac_file_in = "$ac_given_srcdir/$ac_file.in";
+ $ac_dir = dirname($ac_file);
+ if ($ac_dir eq '.') {
+ $ac_dir_suffix = '';
+ $ac_dots = '';
+ } else {
+ $ac_dir_suffix = "/$ac_dir";
+ $ac_dir_suffix =~ s%^/\./%/%;
+ $ac_dots = $ac_dir_suffix;
+ $ac_dots =~ s%/[^/]*%../%g;
+ }
+ if ($ac_given_srcdir eq '.') {
+ $srcdir = '.';
+ if ($ac_dots eq '') {
+ $top_srcdir = '.'
+ } else {
+ $top_srcdir = $ac_dots;
+ $top_srcdir =~ s%/$%%;
+ }
+ } elsif ($ac_cygwin_srcdir =~ m%^/% or $ac_cygwin_srcdir =~ m%^.:/%) {
+ $srcdir = "$ac_cygwin_srcdir$ac_dir_suffix";
+ $top_srcdir = "$ac_cygwin_srcdir";
+ } else {
+ $srcdir = "$ac_dots$ac_cygwin_srcdir$ac_dir_suffix";
+ $top_srcdir = "$ac_dots$ac_cygwin_srcdir";
+ }
+
+ if (-e $ac_file) {
+ next if -M _ < -M $ac_file_in;
+ print STDERR "updating $ac_file\n";
+ } else {
+ print STDERR "creating $ac_file\n";
+ }
+
+ open (INFILE, "<$ac_file_in")
+ or ( warn "can't read $ac_file_in: No such file or directory\n" and next);
+ open (OUTFILE, ">$ac_file")
+ or ( warn "Unable to create $ac_file\n" and next);
+
+ while (<INFILE>) {
+ #if (/\@[_a-zA-Z]*\@.*\@[_a-zA-Z]*\@/) {
+ # warn "Two defines on a line:$ac_file:$.:$_";
+ # push @unhandled, $ac_file;
+ # last;
+ #}
+
+ s/\@srcdir\@/$srcdir/g;
+ s/\@top_srcdir\@/$top_srcdir/g;
+
+ if (/\@[_a-zA-Z]*\@/) {
+ warn "Unknown variable:$ac_file:$.:$_";
+ push @unhandled, $ac_file;
+ last;
+ }
+ print OUTFILE;
+ }
+ close INFILE;
+ close OUTFILE;
+}
+
+# Print the shell command to be evaluated by configure.
+#
+print "CONFIG_FILES=\"".join(' ', @unhandled)."\"; export CONFIG_FILES\n";
+