| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- #!/usr/bin/perl -w
- # This script finishes the job started by config.status by replacing the variables
- # of the form ${...} which were inserted into the file(s) by config.status.
- # Read all files with a single read statement
- $/ = undef;
- # List of variables to replace
- my %configvars = (
- "prefix" => { "value" => '@prefix@'},
- "exec_prefix" => { "value" => '@exec_prefix@'},
- );
- sub replace_var {
- my $filep = shift;
- my $cvp = shift;
- my $varname = shift;
- return if( $cvp->{ $varname}->{ "replaced"});
- if( defined( $cvp->{ $varname}->{ "dependency"})) {
- if( !$cvp->{ $cvp->{ $varname}->{ "dependency"}}->{ "replaced"}) {
- # If a dependency exists and it is not already replaced, replace it
- replace_var( $filep, $cvp, $cvp->{ $varname}->{ "dependency"});
- }
- }
- my $replacement = $cvp->{ $varname}->{ "value"};
- $$filep =~ s/\${$varname}/$replacement/g;
- $cvp->{ $varname}->{ "replaced"} = 1;
- }
- # Figure out the dependencies.
- foreach my $cv ( keys %configvars ) {
- if( $configvars{ $cv}->{ "value"} =~ /\${([^}]+)}/) {
- my $dependency = $1;
- if( exists( $configvars{ $dependency})) {
- $configvars{ $dependency}->{ "dependency"} = $cv;
- }
- $configvars{ $cv}->{ "replaced"} = 0;
- }
- }
- # Process each file
- while ($f = shift @ARGV) {
- # Read in the file
- open( FILE, $f) || die "Unable to open $f for reading";
- my $file = <FILE>;
- close( FILE) || die "Unable to close $f after reading";
- # Replace each of the variables we know about
- foreach $cv ( keys %configvars ) {
- replace_var( \$file, \%configvars, $cv);
- }
- # Write out the replacements
- open( FILE, ">$f") || die "Unable to open $f for writing";
- print FILE $file;
- close( FILE) || die "Unable to close $f after writing";
- }
|