aboutsummaryrefslogtreecommitdiff
path: root/skel/tools/build/Makefile.in
blob: 92d157f49e39346bb86dcaa996a6e24d307d349f (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
156
157
158
159
160
161
162
163
164
165
# Copyright (C) 2006-2012, The Perl Foundation.
# $Id$

PARROT = parrot-4.6.0
NQP    = nqp-2012.07
RAKUDO = rakudo-2012.07
STAR_VERSION = 2012.07

PARROT_ARGS      =

# values from parrot_config
PREFIX_DIR         = @prefix@
PARROT_BIN_DIR     = @bindir@
PARROT_VERSION     = @versiondir@
PARROT_INCLUDE_DIR = @includedir@$(PARROT_VERSION)
PARROT_LIB_DIR     = @libdir@$(PARROT_VERSION)
PARROT_SRC_DIR     = @srcdir@$(PARROT_VERSION)
HAS_ICU            = @has_icu@

CC            = @cc@
CFLAGS        = @ccflags@ @cc_shared@ @cc_debug@ @ccwarn@ @cc_hasjit@ @gc_flag@
EXE           = @exe@
LD            = @ld@
LDFLAGS       = @ldflags@ @ld_debug@
LD_LOAD_FLAGS = @ld_load_flags@
LIBPARROT     = @inst_libparrot_ldflags@
O             = @o@
LOAD_EXT      = @load_ext@
PERL          = @perl@
CP            = @cp@
MV            = @mv@
RM_F          = @rm_f@
MKPATH        = $(PERL) -MExtUtils::Command -e mkpath
CHMOD         = $(PERL) -MExtUtils::Command -e chmod
POD2MAN       = @pod2man@

# locations of parrot resources
PARROT           = $(PARROT_BIN_DIR)/parrot$(EXE)
NQP_EXE          = $(PARROT_BIN_DIR)/nqp$(EXE)
PBC_TO_EXE       = $(PARROT_BIN_DIR)/pbc_to_exe$(EXE)
PARROT_CONFIG    = $(PARROT_BIN_DIR)/parrot_config$(EXE)
PARROT_TOOLS_DIR = $(PARROT_LIB_DIR)/tools
PARROT_PERL_LIB  = $(PARROT_TOOLS_DIR)/lib
OPS2C            = $(PARROT_BIN_DIR)/ops2c$(EXE)
PMC2C            = $(PERL) $(PARROT_TOOLS_DIR)/build/pmc2c.pl
PMC2C_INCLUDES   = --include src/pmc --include $(PARROT_SRC_DIR) --include $(PARROT_SRC_DIR)/pmc
CINCLUDES        = -I$(PARROT_INCLUDE_DIR) -I$(PARROT_INCLUDE_DIR)/pmc
LINKARGS         = $(LDFLAGS) $(LD_LOAD_FLAGS) $(LIBPARROT) @libs@ @icu_shared@

PERL6_EXE      = perl6$(EXE)
PERL6_LANG_DIR = $(PARROT_LIB_DIR)/languages/perl6

# This list must be kept in order, modules always coming after their
# dependencies
MODULES = \
  modules/zavolaj \
  modules/xml-writer \
  modules/svg \
  modules/svg-plot \
  modules/Math-RungeKutta \
  modules/Math-Model \
  modules/perl6-Term-ANSIColor \
  modules/test-mock \
  modules/Grammar-Profiler-Simple \
  modules/grammar-debugger \
  modules/Perl6-MIME-Base64 \
  modules/uri \
  modules/perl6-lwp-simple \
  modules/json \
  modules/perl6-digest-md5 \
  modules/perl6-File-Tools \
  modules/panda \
  modules/perl6-http-status \
  modules/perl6-http-easy \
  modules/Template-Mojo \
  modules/Bailador \
  modules/DBIish \
  modules/jsonrpc \
  modules/Pod-To-HTML \
  modules/doc \

all: rakudo

rakudo: $(RAKUDO)/$(PERL6_EXE)
$(RAKUDO)/$(PERL6_EXE):
	@echo "== Configuring and building Rakudo"
	cd $(RAKUDO) && $(PERL) Configure.pl --with-nqp=$(NQP_EXE) && $(MAKE)
rakudo-test: rakudo
	cd $(RAKUDO) && $(MAKE) test
rakudo-spectest: rakudo
	cd $(RAKUDO) && $(MAKE) spectest
rakudo-install: rakudo
	cd $(RAKUDO) && $(MAKE) install
	@win32_libparrot_copy@
	$(CP) $(DESTDIR)$(PARROT_BIN_DIR)/$(PERL6_EXE) .
	$(CHMOD) 755 $(PERL6_EXE)

modules-install: rakudo
	@echo "== Installing 'ufo'"
	$(CP)    modules/ufo/bin/ufo $(DESTDIR)$(PARROT_BIN_DIR)/ufo
	$(CHMOD) 755                 $(DESTDIR)$(PARROT_BIN_DIR)/ufo
	$(PERL) tools/build/module-install.pl $(DESTDIR)$(PARROT_BIN_DIR)/$(PERL6_EXE) $(DESTDIR)$(PERL6_LANG_DIR)/lib $(MODULES)
	@echo "Installing 'panda'"
	$(CP)    modules/panda/bin/panda $(DESTDIR)$(PARROT_BIN_DIR)/panda
	$(CHMOD) 755                    $(DESTDIR)$(PARROT_BIN_DIR)/panda

install: rakudo-install modules-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)

distclean: realclean

realclean: clean
	$(RM_F) Makefile

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):

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