#!/usr/bin/perl use strict; use warnings; use lib '../lib'; my $fil = "version.h"; my $ver; foreach (@ARGV) { my ($opt, $arg) = (split(/=/, $_, 2)); if ($opt eq '--with-version') { if ($arg =~ /^(\d)\.(\d\d\d)_?(\d\d\d)/) { $ver = join(".", $1*1, $2*1, $3*1); } else { $ver = $arg; } } } print "version.h.pl: creating $fil\n"; unless ($ver) { if (-e '../lib/Mail/SpamAssassin.pm') { eval { require Mail::SpamAssassin; $ver = Mail::SpamAssassin::Version(); }; } else { $@ = "File not found."; } unless ($ver) { die join("\n", "Failed to get the version from Mail::SpamAssassin.", "Please use the --with-version= switch to specify it manually.", "", "The error was:", $@, ); } } open IN, "<$fil.in" || die "Failed to open $fil.in: $!"; open OUT, ">$fil" || die "Failed to open $fil: $!"; print OUT "/* $fil. Generated by $0. */\n"; foreach () { s/(#define\s+VERSION_STRING\s+)".*"/$1"$ver"/; print OUT; } close IN; close OUT;