blob: 9b88cc69ef2fbe0791d71c6fac8722dd8e5c3b22 (
plain)
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
|
# Copyright (C) 2006-2016, The Perl Foundation.
MOAR_DIR = moarvm
NQP_DIR = nqp
RAKUDO_DIR = rakudo
STAR_VERSION = 2016.04
# install location
PREFIX_DIR = @prefix@
SDKROOT_DIR = @sdkroot@
SYSROOT_DIR = @sysroot@
STAR_BIN_DIR = $(PREFIX_DIR)/bin
SITE_BIN_DIR = $(PREFIX_DIR)/share/perl6/site/bin
EXE = @exe@
BAT = @bat@
PERL = @perl@
CP = $(PERL) -MExtUtils::Command -e cp
RM_F = $(PERL) -MExtUtils::Command -e rm_f
MKPATH = $(PERL) -MExtUtils::Command -e mkpath
CHMOD = $(PERL) -MExtUtils::Command -e chmod
PERL6_J_EXE = perl6-j$(BAT)
PERL6_J_LANG_DIR = $(PREFIX_DIR)/share/perl6
PERL6_J_INSTALL = $(STAR_BIN_DIR)/$(PERL6_J_EXE)
PERL6_M_EXE = perl6-m$(BAT)
PERL6_M_LANG_DIR = $(PREFIX_DIR)/share/perl6
PERL6_M_INSTALL = $(STAR_BIN_DIR)/$(PERL6_M_EXE)
PERL6_EXE = perl6$(EXE)
MODULES = modules/MODULES.txt
all: rakudo
rakudo: @backend_exes@
@backend_exes@:
@echo "== Configuring and building Rakudo"
cd $(RAKUDO_DIR) && $(PERL) Configure.pl@pass_rakudo_config@ --prefix="$(PREFIX_DIR)" --backends=@backends@ && $(MAKE)
rakudo-test: rakudo
cd $(RAKUDO_DIR) && $(MAKE) test
rakudo-spectest: rakudo
cd $(RAKUDO_DIR) && $(MAKE) spectest
rakudo-install: rakudo
cd $(RAKUDO_DIR) && $(MAKE) install
$(CP) $(DESTDIR)@default_backend_exe@ $(PERL6_EXE)
$(CHMOD) 755 $(PERL6_EXE)
modules-install: @backend_modules_install@
modules-install-j: rakudo-install
@echo "== Installing modules for JVM"
cd modules/panda && @path@ $(DESTDIR)$(PERL6_J_INSTALL) bootstrap.pl
@path@ $(PERL) tools/build/module-install.pl $(PERL6_J_INSTALL) $(DESTDIR)$(SITE_BIN_DIR)/panda-m $(MODULES)
modules-install-m: rakudo-install
@echo "== Installing modules for MoarVM"
cd modules/panda && @path@ $(DESTDIR)$(PERL6_M_INSTALL) bootstrap.pl
@path@ $(PERL) tools/build/module-install.pl $(PERL6_M_INSTALL) $(DESTDIR)$(SITE_BIN_DIR)/panda-m $(MODULES)
modules-test: @backend_modules_test@
verbose-modules-test: @backend_modules_test@
modules-test-j: modules-install-j
$(PERL) tools/build/modules-test.pl $(CURDIR) $(DESTDIR)$(PERL6_J_INSTALL) $(MODULES)
verbose-modules-test-j: modules-install-j
$(PERL) tools/build/modules-test.pl --verbose $(CURDIR) $(DESTDIR)$(PERL6_J_INSTALL) $(MODULES)
modules-test-m: modules-install-m
$(PERL) tools/build/modules-test.pl $(CURDIR) $(DESTDIR)$(PERL6_M_INSTALL) $(MODULES)
verbose-modules-test-m: modules-install-m
$(PERL) tools/build/modules-test.pl --verbose $(CURDIR) $(DESTDIR)$(PERL6_M_INSTALL) $(MODULES)
install: rakudo-install modules-install welcome-message
welcome-message:
@echo ""
@echo "Rakudo Star has been built and installed successfully."
@echo "Please make sure that the following directories are in PATH:"
@echo " $(STAR_BIN_DIR)"
@echo " $(SITE_BIN_DIR)"
@echo ""
test:
@echo ""
@echo "To run the Rakudo compiler tests, use '$(MAKE) rakudo-test'"
@echo "To run the Perl 6 spectests, use '$(MAKE) rakudo-spectest'"
@echo ""
@echo "To run the modules' test suites, run '$(MAKE) modules-test'"
@echo ""
## cleaning
clean:
$(RM_F) $(CLEANUPS)
cd $(RAKUDO_DIR) && $(MAKE) clean
cd $(NQP_DIR) && $(MAKE) clean
distclean: realclean
realclean: clean
$(RM_F) Makefile
cd $(RAKUDO_DIR) && $(MAKE) realclean
cd $(NQP_DIR) && $(MAKE) realclean
configclean:
$(RM_F) $(CLEANUPS)
cd $(NQP_DIR) && $(MAKE) clean
configclean-j:
configclean-m:
testclean:
## miscellaneous targets
# a listing of all targets meant to be called by users
help:
@echo ""
@echo "Following targets are available for the user:"
@echo ""
@echo "Maintenance:"
@echo " perlcritic: Run Perl::Critic on all the Perl 5 code."
@echo ""
@echo "Cleaning:"
@echo " clean: Basic cleaning up."
@echo " distclean: Removes also anything built, in theory."
@echo " realclean: Removes also files generated by 'Configure.pl'."
@echo " testclean: Clean up test results."
@echo ""
@echo "Misc:"
@echo " help: Print this help message."
@echo ""
config:
$(PERL) Configure.pl
CRITIC_FILES=Configure.pl tools/build/
perlcritic:
perlcritic -1 --profile tools/util/perlcritic.conf $(CRITIC_FILES)
msi:
-$(CP) c:/strawberry/c/bin/libgcc_s_sjlj-1.dll
cmd /c heat dir $(PREFIX_DIR) -gg -sfrag -cg RakudoStar -dr INSTALLROOT -srd -out star-files.wxs
cmd /c candle star-files.wxs
cmd /c candle -dSTARVERSION=$(STAR_VERSION) tools/build/star-product.wxs
cmd /c light -b $(PREFIX_DIR) -ext WixUIExtension star-files.wixobj star-product.wixobj -o rakudo-star-$(STAR_VERSION).msi
|