| #!/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); |