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

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)/parrot-nqp$(EXE)
PBC_TO_EXE       = $(PARROT_BIN_DIR)/pbc_to_exe$(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@

# rakudo directories
DYNEXT_DIR     = dynext
PMC_DIR        = src/pmc
OPS_DIR        = src/ops
PERL6_LANG_DIR = $(PARROT_LIB_DIR)/languages/perl6
MANDIR         = @mandir@
DOCDIR         = @prefix@/share/doc

PERL6_EXE      = perl6$(EXE)

all: rakudo

rakudo: rakudo/$(PERL6_EXE)
rakudo/$(PERL6_EXE):
	cd rakudo && $(PERL) Configure.pl --parrot-config=$(PARROT_BIN_DIR)/parrot_config && $(MAKE)
rakudo-test: rakudo/perl6
	cd rakudo && $(MAKE) test
rakudo-install: rakudo
	cd rakudo && $(MAKE) install
	$(CP) $(PARROT_BIN_DIR)/$(PERL6_EXE) .

modules-install:
	@echo "Installing 'ufo'"
	$(CP)    modules/ufo/ufo     $(PARROT_BIN_DIR)/ufo
	$(CHMOD) 755                 $(PARROT_BIN_DIR)/ufo

install: rakudo-install modules-install

##  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 "  all:               perl6.pbc"
        @echo "  install:           Install stuff."
	@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 t/harness build/ tools/

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)