forked from MoarVM/MoarVM
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Configure.pl
56 lines (45 loc) · 1.32 KB
/
Configure.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#!perl
use strict;
use warnings;
use lib 'build';
use Config::BuildEnvironment;
use Config::APR;
use Config::LAO;
use Config::Generate;
print "Welcome to MoarVM!\n\n";
print dots("Trying to figure out how to build on your system ...");
my %config = Config::BuildEnvironment::detect();
if (!$config{'excuse'}) {
print " OK\n (OS: $config{'os'}, Compiler: $config{'cc'}, Linker: $config{'link'})\n";
}
else {
print " FAILED\n";
die " Sorry, I'm not sure how to build on this platform:\n $config{'excuse'}\n";
}
print dots("Configuring APR ...");
%config = Config::APR::configure(%config);
sub check_excuse {
if (!$config{'excuse'}) {
print " OK\n";
}
else {
print " FAILED\n";
die " $config{'excuse'}\n";
}
}
check_excuse();
print dots("Configuring libatomic_ops ...");
%config = Config::LAO::configure(%config);
check_excuse();
print dots("Generating config.h ...");
Config::Generate::file('build/config.h.in', 'src/gen/config.h', %config);
print " OK\n";
print dots("Generating Makefile ...");
Config::Generate::file('build/Makefile.in', 'Makefile', %config);
print " OK\n";
print "\nConfiguration successful. Type '$config{'make'}' to build.\n";
sub dots {
my $message = shift;
my $length = shift || 55;
return $message . '.' x ($length - length $message);
}