# 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//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 rakudo -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