aboutsummaryrefslogtreecommitdiff
path: root/skel/tools/build/Makefile.in
blob: fea826774fea941a25d4112687a9d20e404f58bc (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
# Copyright (C) 2006-2012, The Perl Foundation.
# $Id$

PARROT = parrot-4.1.0
NQP    = nqp-2012.02
RAKUDO = rakudo-2012.02

PARROT_ARGS      =

# values from parrot_config
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

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/perl6-lwp-simple \
  modules/json \
  modules/perl6-digest-md5 \
  modules/perl6-File-Tools \
  modules/panda \
  modules/perl6-Config-INI \
  modules/perl6-http-status \
  modules/perl6-http-easy \
  modules/Bailador \
  modules/MiniDBI \
  modules/uri \
  modlues/perl6-lwp-simple \

all: rakudo

rakudo: $(RAKUDO)/$(PERL6_EXE)
$(RAKUDO)/$(PERL6_EXE):
	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 'ufobuilder'"
	$(CP)    modules/panda/bin/ufobuilder $(DESTDIR)$(PARROT_BIN_DIR)/ufobuilder
	$(CHMOD) 755                         $(DESTDIR)$(PARROT_BIN_DIR)/ufobuilder
	@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 build/

perlcritic:
	perlcritic -1 --profile tools/util/perlcritic.conf $(CRITIC_FILES)

release: MANIFEST
	[ -n "$(VERSION)" ] || ( echo "\nTry 'make release VERSION=yyyy.mm'\n\n"; exit 1 )
	[ -d rakudo-star-$(VERSION) ] || ln -s . rakudo-star-$(VERSION)
	$(PERL) -ne 'print "rakudo-star-$(VERSION)/$$_"' MANIFEST | \
	    tar -zcv -T - -f rakudo-star-$(VERSION).tar.gz
	rm rakudo-star-$(VERSION)