| #!/usr/bin/perl |
| # |
| # Read the "version" file and produce some macro declarations |
| # |
| |
| use Fcntl; |
| |
| sub defx($$$) { |
| my($def, $name, $val) = @_; |
| |
| $def =~ s/\</${name}/g; |
| $def =~ s/\@/${val}/g; |
| |
| return $def."\n"; |
| } |
| |
| ($vfile, $vout, $def) = @ARGV; |
| sysopen(VERSION, $vfile, O_RDONLY) or die "$0: Cannot open $vfile\n"; |
| $vfile = <VERSION>; |
| chomp $vfile; |
| close(VERSION); |
| |
| unless ( $vfile =~ /^(([0-9]+)\.([0-9]+))\s+([0-9]+)$/ ) { |
| die "$0: Cannot parse version format\n"; |
| } |
| $version = $1; |
| $vma = $2+0; |
| $vmi = $3+0; |
| $year = $4; |
| |
| sysopen(VI, $vout, O_WRONLY|O_CREAT|O_TRUNC) |
| or die "$0: Cannot create $vout: $!\n"; |
| print VI defx($def, 'VERSION', $version); |
| print VI defx($def, 'VERSION_STR', '"'.$version.'"'); |
| print VI defx($def, 'VERSION_MAJOR', $vma); |
| print VI defx($def, 'VERSION_MINOR', $vmi); |
| print VI defx($def, 'YEAR', $year); |
| print VI defx($def, 'YEAR_STR', '"'.$year.'"'); |
| close(VI); |