Alt-CWB-ambs
view release on metacpan or search on metacpan
Makefile.PL view on Meta::CPAN
## required CWB version for this module (3.0, but also accept 2.2.102 until official release)
our $rMajor = 2;
our $rMinor = 2;
our $rBeta = 101;
## run cwb-config to check installed CWB version
my $version = `'$config_util' --version 2>/dev/null`;
unless (defined $version && $version =~ /^([0-9])\.([0-9]{1,2})(\.b?([0-9]+))?$/) {
print STDERR
"Can't run cwb-config program.\n",
"Please make sure that an up-to-date version of the IMS Open Corpus Workbench has been installed and/or use the --config option to specify the full path to the cwb-config program.\n";
exit 1;
}
our $MajorVersion = $1;
our $MinorVersion = $2;
our $BetaVersion = $4 || 0;
chomp($version);
unless ($MajorVersion > $rMajor
|| ($MajorVersion == $rMajor &&
($MinorVersion > $rMinor || $MinorVersion == $rMinor && $BetaVersion >= $rBeta))) {
print STDERR "Error: need CWB version ",
version_string($rMajor, $rMinor, $rBeta), " or newer, but only $version is installed.\n";
exit 1;
}
## obtain relevant configuration options from cwb-config
our $prefix = `'$config_util' --prefix`;
our $bindir = `'$config_util' --bindir`;
our $default_registry = `'$config_util' --default-registry`;
chomp($prefix, $bindir, $default_registry);
print "IMS Open Corpus Workbench v$version found in $prefix tree.\n";
die "Error: can't handle directory paths with apostrophe yet. Please install the CWB in a different directory.\n"
if "$prefix$bindir$default_registry" =~ /'/;
## write configuration information to CWB::Config module
my $config_file = "lib/CWB/Config.pm";
my $fh = new FileHandle "> $config_file"
or die "Can't create file '$config_file': $!";
print $fh <<"STOP" or die "Error writing file '$config_file': $!";
package CWB::Config;
our \$Prefix = '$prefix';
our \$BinDir = '$bindir';
our \$Registry = '$default_registry';
1;
STOP
$fh->close
or die "Error writing '$config_file': $!";
print "Configuraion saved to file $config_file\n";
## now we can let MakeMaker generate the makefile
WriteMakefile(
'NAME' => "Alt::CWB::ambs",
'VERSION_FROM' => "lib/Alt/CWB/ambs.pm",
'EXE_FILES' => ["script/cwb-make",
"script/cwb-regedit",
"script/cwb-align-import"],
'META_MERGE' => {
"meta-spec" => { version => 2 },
"no_index" => {
directory => [ 'lib/CWB/' ],
file => [ 'lib/CWB.pm' ],
},
},
);
##
## Subroutines
##
sub version_string {
my ($major, $minor, $beta) = @_;
my $s = "$major.$minor";
if ($beta > 0) {
$s .= ".$beta"; # in future, "beta" versions are simply listed as releases, without "b" marker
}
return $s;
}
( run in 0.824 second using v1.01-cache-2.11-cpan-99c4e6809bf )