blob: 304bf288e45e572f58e13e39074742a1ae4b8368 (
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
|
# Copyright (C) 2006-2012, The Perl Foundation.
# $Id$
PARROT_DIR = parrot
NQP_DIR = nqp
RAKUDO_DIR = rakudo
STAR_VERSION = 2013.11
# values from parrot_config
PREFIX_DIR = @prefix@
PARROT_BIN_DIR = @bindir@
PARROT_VERSION = @versiondir@
PARROT_LIB_DIR = @libdir@$(PARROT_VERSION)
EXE = @exe@
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
# locations of parrot resources
PARROT_EXE = $(PARROT_BIN_DIR)/parrot$(EXE)
P_NQP_EXE = $(PARROT_BIN_DIR)/nqp-p$(EXE)
PBC_TO_EXE = $(PARROT_BIN_DIR)/pbc_to_exe$(EXE)
PERL6_EXE = perl6-p$(EXE)
PERL6_LANG_DIR = $(PARROT_LIB_DIR)/languages/perl6
PERL6_INSTALL = $(PARROT_BIN_DIR)/$(PERL6_EXE)
MODULES = modules/MODULES.txt
# rakudo-debugger
RD_DIR = modules/rakudo-debugger
RD_PIR = $(RD_DIR)/perl6-debug.pir
RD_PBC = $(RD_DIR)/perl6-debug.pbc
RD_EXE = $(RD_DIR)/perl6-debug$(EXE)
all: rakudo
rakudo: $(RAKUDO_DIR)/$(PERL6_EXE)
$(RAKUDO_DIR)/$(PERL6_EXE):
@echo "== Configuring and building Rakudo"
cd $(RAKUDO_DIR) && $(PERL) Configure.pl --prefix=$(PREFIX_DIR) && $(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
@win32_libparrot_copy@
$(CP) $(DESTDIR)$(PERL6_INSTALL) $(PERL6_EXE)
$(CHMOD) 755 $(PERL6_EXE)
modules-install: rakudo-install
@echo "== Installing modules"
$(PERL) tools/build/module-install.pl $(DESTDIR)$(PERL6_INSTALL) $(DESTDIR)$(PERL6_LANG_DIR)/lib $(MODULES)
@echo "== Installing binaries"
$(PERL) tools/build/bin-install.pl $(PERL6_INSTALL) $(DESTDIR)$(PARROT_BIN_DIR) modules/ufo/bin/ufo modules/panda/bin/panda modules/doc/bin/p6doc
modules-test:
$(PERL) tools/build/modules-test.pl $(CURDIR) $(DESTDIR)$(PERL6_INSTALL) modules/MODULES.txt
perl6-debug: $(RD_EXE)
$(RD_EXE): modules-install
$(P_NQP_EXE) --vmlibs=perl6_ops --target=pir \
--dynext=$(DESTDIR)$(PARROT_LIB_DIR)/dynext/ \
--module-path=$(DESTDIR)$(PARROT_LIB_DIR)/languages/nqp/lib \
--output=$(RD_PIR) $(RD_DIR)/bin/perl6-debug.nqp
$(PARROT_EXE) --dynext $(DESTDIR)$(PARROT_LIB_DIR)/dynext/ -o $(RD_PBC) $(RD_PIR)
$(PBC_TO_EXE) $(RD_PBC)
$(CHMOD) 755 $(RD_EXE)
perl6-debug-install: perl6-debug
$(CP) $(RD_EXE) $(DESTDIR)$(PARROT_BIN_DIR)
$(CHMOD) 755 $(DESTDIR)$(PARROT_BIN_DIR)/perl6-debug$(EXE)
install: rakudo-install modules-install perl6-debug-install
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 tests for individual modules, try:"
@echo " prove -e ./perl6 -r modules/<name>/t"
@echo ""
## cleaning
clean:
$(RM_F) $(CLEANUPS)
cd $(RAKUDO_DIR) && $(MAKE) clean
cd $(NQP_DIR) && $(MAKE) clean
cd $(PARROT_DIR) && $(MAKE) clean
distclean: realclean
realclean: clean
$(RM_F) Makefile
cd $(RAKUDO_DIR) && $(MAKE) realclean
cd $(NQP_DIR) && $(MAKE) realclean
cd $(PARROT_DIR) && $(MAKE) realclean
configclean:
$(RM_F) $(CLEANUPS)
cd $(NQP_DIR) && $(MAKE) clean
cd $(PARROT_DIR) && $(MAKE) clean
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
$(PARROT_EXE):
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 $(PARROT_BIN_DIR)
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
|