use Fcntl;
-$vfile = $ARGV[0];
+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";
-$version = <VERSION>;
-chomp $version;
+$vfile = <VERSION>;
+chomp $vfile;
close(VERSION);
-unless ( $version =~ /^([0-9]+)\.([0-9]+)$/ ) {
+unless ( $vfile =~ /^(([0-9]+)\.([0-9]+))\s+([0-9]+)$/ ) {
die "$0: Cannot parse version format\n";
}
-$vma = $1+0; $vmi = $2+0;
+$version = $1;
+$vma = $2+0;
+$vmi = $3+0;
+$year = $4;
-open(VI, "> version.gen") or die "$0: Cannot create version.gen\n";
-print VI "%define VERSION \"$version\"\n";
-print VI "%define VER_MAJOR $vma\n";
-print VI "%define VER_MINOR $vmi\n";
+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);
-
-