40 lines
927 B
Perl
Executable File
40 lines
927 B
Perl
Executable File
#!/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);
|