# Copyright (C) 2006-2019, The Perl Foundation. MOAR_DIR = moarvm NQP_DIR = nqp RAKUDO_DIR = rakudo STAR_VERSION = 2019.03 # install location PREFIX_DIR = @prefix@ SDKROOT_DIR = @sdkroot@ SYSROOT_DIR = @sysroot@ STAR_BIN_DIR = $(PREFIX_DIR)/bin SITE_BIN_DIR = $(PREFIX_DIR)/share/perl6/site/bin EXE = @exe@ BAT = @bat@ 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 PERL6_J_EXE = perl6-j$(BAT) PERL6_J_LANG_DIR = $(PREFIX_DIR)/share/perl6 PERL6_J_INSTALL = $(STAR_BIN_DIR)/$(PERL6_J_EXE) PERL6_M_EXE = perl6-m$(BAT) PERL6_M_LANG_DIR = $(PREFIX_DIR)/share/perl6 PERL6_M_INSTALL = $(STAR_BIN_DIR)/$(PERL6_M_EXE) PERL6_EXE = perl6$(EXE) MODULES = modules/MODULES.txt all: rakudo rakudo: @backend_exes@ @backend_exes@: @echo "== Configuring and building Rakudo" cd $(RAKUDO_DIR) && $(PERL) Configure.pl @pass_rakudo_config@ --prefix="$(PREFIX_DIR)" --backends=@backends@ && $(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 $(CP) $(DESTDIR)@default_backend_exe@ $(PERL6_EXE) $(CHMOD) 755 $(PERL6_EXE) modules-install: @backend_modules_install@ modules-install-j: rakudo-install @echo "== Installing modules for JVM" cd modules/zef && @path@ $(DESTDIR)$(PERL6_J_INSTALL) -Ilib bin/zef install ." @path@ $(PERL) tools/build/module-install.pl $(PERL6_J_INSTALL) $(DESTDIR)$(SITE_BIN_DIR)/zef-j $(MODULES)" modules-install-m: rakudo-install @echo "== Installing modules for MoarVM" cd modules/zef && @path@ $(DESTDIR)$(PERL6_M_INSTALL) -Ilib bin/zef install ." @path@ $(PERL) tools/build/module-install.pl $(PERL6_M_INSTALL) $(DESTDIR)$(SITE_BIN_DIR)/zef-m $(MODULES)" modules-test: @backend_modules_test@ verbose-modules-test: @backend_modules_test@ modules-test-j: modules-install-j $(PERL) tools/build/modules-test.pl $(CURDIR) $(DESTDIR)$(PERL6_J_INSTALL) $(MODULES) verbose-modules-test-j: modules-install-j $(PERL) tools/build/modules-test.pl --verbose $(CURDIR) $(DESTDIR)$(PERL6_J_INSTALL) $(MODULES) modules-test-m: modules-install-m $(PERL) tools/build/modules-test.pl $(CURDIR) $(DESTDIR)$(PERL6_M_INSTALL) $(MODULES) verbose-modules-test-m: modules-install-m $(PERL) tools/build/modules-test.pl --verbose $(CURDIR) $(DESTDIR)$(PERL6_M_INSTALL) $(MODULES) install: rakudo-install modules-install welcome-message welcome-message: @echo "" @echo "Rakudo Star has been built and installed successfully." @echo "Please make sure that the following directories are in PATH:" @echo " $(STAR_BIN_DIR)" @echo " $(SITE_BIN_DIR)" @echo "" 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 the modules' test suites, run '$(MAKE) modules-test'" @echo "" ## cleaning clean: $(RM_F) $(CLEANUPS) cd $(RAKUDO_DIR) && $(MAKE) clean cd $(NQP_DIR) && $(MAKE) clean distclean: realclean realclean: clean $(RM_F) Makefile cd $(RAKUDO_DIR) && $(MAKE) realclean cd $(NQP_DIR) && $(MAKE) realclean configclean: $(RM_F) $(CLEANUPS) cd $(NQP_DIR) && $(MAKE) clean configclean-j: configclean-m: 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 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 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