summaryrefslogtreecommitdiff
path: root/fixpaths
diff options
context:
space:
mode:
Diffstat (limited to 'fixpaths')
-rwxr-xr-xfixpaths47
1 files changed, 47 insertions, 0 deletions
diff --git a/fixpaths b/fixpaths
new file mode 100755
index 00000000..6a2a3a0b
--- /dev/null
+++ b/fixpaths
@@ -0,0 +1,47 @@
+#!/usr/bin/perl -w
+#
+# fixpaths - substitute makefile variables into text files
+
+
+$usage = "Usage: $0 [-D<variable>=<value>] [[infile] ...]\n";
+
+if (!defined(@ARGV)) { die ("$usage"); }
+
+# read in the command line and get some definitions
+while ($_=$ARGV[0], /^-/) {
+ if (/^-D/) {
+ # definition
+ shift(@ARGV);
+ if ( /-D(.*)=(.*)/ ) {
+ $def{"$1"}=$2;
+ } else {
+ die ("$usage$0: error in command line arguments.\n");
+ }
+ } else {
+ &usage; die ("$usage$0: unknown option '-".$ARGV[0][1]."'\n");
+ }
+} # while parsing arguments
+
+if (!defined(%def)) {
+ die ("$0: nothing to do - no substitutions listed!\n");
+}
+
+for $f (@ARGV) {
+
+ $f =~ /(.*\/)*(.*)$/;
+ $of = $2; $of =~ s/.in$//;
+
+ print("Making substitutions for $of\n");
+
+ open(IN, "<$f") || die ("$0: input file $f missing!\n");
+ if (open(OUT, ">$of")) {
+ while (<IN>) {
+ for $s (keys(%def)) {
+ s#\@$s\@#$def{$s}#;
+ } # for $s
+ print OUT;
+ } # while <IN>
+ } # if (outfile open)
+} # for $f
+
+exit 0;