#!/usr/bin/perl -w # # fixpaths - substitute makefile variables into text files $usage = "Usage: $0 [-x] [-Dstring=replacement] [[infile] ...]\n"; $ext="out"; if (!defined(@ARGV)) { die ("$usage"); } # read in the command line and get some definitions while ($_=$ARGV[0], /^-/) { if (/^-[Dx]/) { # definition shift(@ARGV); if ( /-D(.*)=(.*)/ ) { $def{"$1"}=$2; } elsif ( /-x\s*(\w+)/ ) { $ext=$1; } else { die ("$usage$0: error in command line arguments.\n"); } } else { 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.".$ext"; open(IN, "<$f") || die ("$0: input file $f missing!\n"); if (open(OUT, ">$of")) { while () { for $s (keys(%def)) { s#$s#$def{$s}#; } # for $s print OUT; } # while } # if (outfile open) } # for $f exit 0;