Skip to content

Instantly share code, notes, and snippets.

@TimToady
Created November 29, 2013 07:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save TimToady/7702585 to your computer and use it in GitHub Desktop.
Save TimToady/7702585 to your computer and use it in GitHub Desktop.
# Makefile code generated by Configure.pl:
all: j-all m-all p-all j-runner-default
install: j-install m-install p-install j-runner-default-install
clean: j-clean m-clean p-clean
test: j-test m-test p-test
spectest: j-spectest m-spectest p-spectest
coretest: j-coretest m-coretest p-coretest
# Generated from tools/build/Makefile-common.in
# Copyright (C) 2006-2013, The Perl Foundation.
PERL = /usr/bin/perl
PROVE = prove
MKPATH = $(PERL) -MExtUtils::Command -e mkpath
CHMOD = $(PERL) -MExtUtils::Command -e chmod
CP = $(PERL) -MExtUtils::Command -e cp
RM_F = $(PERL) -MExtUtils::Command -e rm_f
RM_RF = $(PERL) -MExtUtils::Command -e rm_rf
PREFIX = /home/larry/nom/install
PERL6_LANG_DIR = $(PREFIX)/languages/perl6
BOOTSTRAP_SOURCES = \
src/Perl6/Metamodel/BOOTSTRAP.nqp \
src/Perl6/Metamodel/EXPORTHOW.nqp \
COMMON_BOOTSTRAP_SOURCES = \
src/Perl6/Metamodel/Archetypes.nqp \
src/Perl6/Metamodel/Naming.nqp \
src/Perl6/Metamodel/Documenting.nqp \
src/Perl6/Metamodel/Stashing.nqp \
src/Perl6/Metamodel/Versioning.nqp \
src/Perl6/Metamodel/TypePretense.nqp \
src/Perl6/Metamodel/MethodDelegation.nqp \
src/Perl6/Metamodel/BoolificationProtocol.nqp \
src/Perl6/Metamodel/PackageHOW.nqp \
src/Perl6/Metamodel/ModuleHOW.nqp \
src/Perl6/Metamodel/GenericHOW.nqp \
src/Perl6/Metamodel/AttributeContainer.nqp \
src/Perl6/Metamodel/MethodContainer.nqp \
src/Perl6/Metamodel/PrivateMethodContainer.nqp \
src/Perl6/Metamodel/MultiMethodContainer.nqp \
src/Perl6/Metamodel/RoleContainer.nqp \
src/Perl6/Metamodel/MultipleInheritance.nqp \
src/Perl6/Metamodel/DefaultParent.nqp \
src/Perl6/Metamodel/BaseType.nqp \
src/Perl6/Metamodel/C3MRO.nqp \
src/Perl6/Metamodel/MROBasedMethodDispatch.nqp \
src/Perl6/Metamodel/MROBasedTypeChecking.nqp \
src/Perl6/Metamodel/Trusting.nqp \
src/Perl6/Metamodel/Mixins.nqp \
src/Perl6/Metamodel/BUILDPLAN.nqp \
src/Perl6/Metamodel/REPRComposeProtocol.nqp \
src/Perl6/Metamodel/InvocationProtocol.nqp \
src/Perl6/Metamodel/RolePunning.nqp \
src/Perl6/Metamodel/ArrayType.nqp \
src/Perl6/Metamodel/RoleToRoleApplier.nqp \
src/Perl6/Metamodel/ConcreteRoleHOW.nqp \
src/Perl6/Metamodel/CurriedRoleHOW.nqp \
src/Perl6/Metamodel/ParametricRoleHOW.nqp \
src/Perl6/Metamodel/ParametricRoleGroupHOW.nqp \
src/Perl6/Metamodel/RoleToClassApplier.nqp \
src/Perl6/Metamodel/ClassHOW.nqp \
src/Perl6/Metamodel/GrammarHOW.nqp \
src/Perl6/Metamodel/NativeHOW.nqp \
src/Perl6/Metamodel/SubsetHOW.nqp \
src/Perl6/Metamodel/EnumHOW.nqp \
src/Perl6/Metamodel/ContainerDescriptor.nqp \
src/Perl6/Metamodel/Dispatchers.nqp \
spectest_checkout : t/spec
t/spec :
git clone git://github.com/perl6/roast.git t/spec
-cd t/spec/ && git config remote.origin.pushurl git@github.com:perl6/roast.git
spectest_update :
-cd t/spec && git pull
t/localtest.data:
$(PERL) -MExtUtils::Command -e test_f $@
realclean: clean
$(RM_F) Makefile config.status
distclean: realclean
# (end of section generated from tools/build/Makefile-common.in)
# Generated from tools/build/Makefile-Parrot.in
SHELL = sh
PARROT_ARGS =
# values from parrot_config
PARROT_BIN_DIR = /home/larry/nom/install/bin
PARROT_LIB_SHARED = libparrot.so.5.9.0
PARROT_VERSION = /parrot/5.9.0-devel
PARROT_INCLUDE_DIR = /home/larry/nom/install/include$(PARROT_VERSION)
PARROT_LIB_DIR = /home/larry/nom/install/lib$(PARROT_VERSION)
PARROT_SRC_DIR = /home/larry/nom/install/src$(PARROT_VERSION)
HAS_ICU =
CC = cc
CFLAGS = -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fstack-protector -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHASATTRIBUTE_CONST -DHASATTRIBUTE_DEPRECATED -DHASATTRIBUTE_MALLOC -DHASATTRIBUTE_NONNULL -DHASATTRIBUTE_NORETURN -DHASATTRIBUTE_PURE -DHASATTRIBUTE_UNUSED -DHASATTRIBUTE_WARN_UNUSED_RESULT -DHASATTRIBUTE_HOT -DHASATTRIBUTE_COLD -DDISABLE_GC_DEBUG=1 -DNDEBUG -DHAS_GETTEXT -fPIC -falign-functions=16 -funit-at-a-time -fexcess-precision=standard -maccumulate-outgoing-args -Wall -Wextra -Waggregate-return -Wcast-qual -Wdisabled-optimization -Wdiv-by-zero -Wendif-labels -Wformat-extra-args -Wformat-nonliteral -Wformat-security -Wformat-y2k -Wimplicit -Wimport -Winit-self -Winline -Winvalid-pch -Wjump-misses-init -Wlogical-op -Werror=missing-braces -Wmissing-declarations -Wno-missing-format-attribute -Wmissing-include-dirs -Wmultichar -Wpacked -Wpointer-arith -Wreturn-type -Wsequence-point -Wsign-compare -Wstrict-aliasing -Wstrict-aliasing=2 -Wswitch -Wswitch-default -Werror=undef -Wno-unused -Wvariadic-macros -Wwrite-strings -Wstack-usage=500 -Wc++-compat -Werror=declaration-after-statement -Werror=implicit-function-declaration -Wmissing-prototypes -Werror=nested-externs -Werror=old-style-definition -Werror=strict-prototypes -fvisibility=hidden -O2 -g
EXE =
LD = cc
LDFLAGS = -fstack-protector -L/usr/local/lib
LD_LOAD_FLAGS = -shared -L/usr/local/lib -fstack-protector -fPIC
LIBPARROT =
O = .o
LOAD_EXT = .so
POD2MAN = /usr/bin/pod2man
# locations of parrot and nqp resources
PARROT = $(PARROT_BIN_DIR)/parrot$(EXE)
PARROT_DLL =
PARROT_DLL_COPY =
NQP_EXE = $(PARROT_BIN_DIR)/nqp-p$(EXE)
NQP_LANG_DIR = $(PARROT_LIB_DIR)/languages/nqp
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)
CINCLUDES = -I$(PARROT_INCLUDE_DIR) -I$(PARROT_INCLUDE_DIR)/pmc
LINKARGS = $(LDFLAGS) $(LD_LOAD_FLAGS) $(LIBPARROT) -ldl -lm -lpthread -lcrypt -lrt
P_GEN_CAT = tools/build/gen-cat.pl parrot
P_BUILD_DIR = gen/parrot
# rakudo directories
DYNEXT_DIR = dynext
OPS_DIR = src/vm/parrot/ops
P_PERL6_LANG_DIR = $(PARROT_LIB_DIR)/languages/perl6
MANDIR = /home/larry/nom/install/man
DOCDIR = /home/larry/nom/install/share/doc
# files we create
PERL6_PIR = src/gen/perl6.pir
PERL6_PBC = perl6.pbc
PERL6_EXE = perl6-p$(EXE)
PERL6_ML = src/gen/perl6-moduleloader.pir
PERL6_ML_PBC = blib/Perl6/ModuleLoader.pbc
PERL6_W = src/gen/perl6-symboltable.pir
PERL6_W_PBC = blib/Perl6/World.pbc
PERL6_G = src/gen/perl6-grammar.pir
PERL6_G_PBC = blib/Perl6/Grammar.pbc
PERL6_OPS = src/gen/perl6-ops.pir
PERL6_OPS_PBC = blib/Perl6/Ops.pbc
PERL6_A = src/gen/perl6-actions.pir
PERL6_A_PBC = blib/Perl6/Actions.pbc
PERL6_O = src/gen/perl6-optimizer.pir
PERL6_O_PBC = blib/Perl6/Optimizer.pbc
PERL6_P = src/gen/perl6-pod.pir
PERL6_P_PBC = blib/Perl6/Pod.pbc
PERL6_C = src/gen/perl6-compiler.pir
PERL6_C_PBC = blib/Perl6/Compiler.pbc
PERL6_M = src/gen/perl6-metamodel.pir
PERL6_M_PBC = blib/Perl6/Metamodel.pbc
PERL6_B = src/gen/perl6-bootstrap.pir
PERL6_B_PBC = blib/Perl6/BOOTSTRAP.pbc
SETTING_PIR = src/gen/p-CORE.setting.pir
SETTING_PBC = CORE.setting.pbc
R_SETTING_SRC = src/RESTRICTED.setting
R_SETTING_PIR = src/gen/RESTRICTED.setting.pir
R_SETTING_PBC = RESTRICTED.setting.pbc
GROUP = perl6_group
OPS = perl6_ops
DYNEXT_DYNOPS = $(DYNEXT_DIR)/$(OPS)$(LOAD_EXT)
DYNOPS = $(OPS_DIR)/$(OPS)$(LOAD_EXT)
OPS_SOURCE = perl6.ops
P_METAMODEL_SOURCES = \
src/Perl6/Metamodel/Archetypes.nqp \
src/Perl6/Metamodel/Naming.nqp \
src/Perl6/Metamodel/Documenting.nqp \
src/Perl6/Metamodel/Stashing.nqp \
src/Perl6/Metamodel/Versioning.nqp \
src/Perl6/Metamodel/TypePretense.nqp \
src/Perl6/Metamodel/MethodDelegation.nqp \
src/Perl6/Metamodel/BoolificationProtocol.nqp \
src/Perl6/Metamodel/PackageHOW.nqp \
src/Perl6/Metamodel/ModuleHOW.nqp \
src/Perl6/Metamodel/GenericHOW.nqp \
src/Perl6/Metamodel/AttributeContainer.nqp \
src/Perl6/Metamodel/MethodContainer.nqp \
src/Perl6/Metamodel/PrivateMethodContainer.nqp \
src/Perl6/Metamodel/MultiMethodContainer.nqp \
src/Perl6/Metamodel/RoleContainer.nqp \
src/Perl6/Metamodel/MultipleInheritance.nqp \
src/Perl6/Metamodel/DefaultParent.nqp \
src/Perl6/Metamodel/BaseType.nqp \
src/Perl6/Metamodel/C3MRO.nqp \
src/Perl6/Metamodel/MROBasedMethodDispatch.nqp \
src/Perl6/Metamodel/MROBasedTypeChecking.nqp \
src/Perl6/Metamodel/Trusting.nqp \
src/Perl6/Metamodel/Mixins.nqp \
src/Perl6/Metamodel/BUILDPLAN.nqp \
src/Perl6/Metamodel/REPRComposeProtocol.nqp \
src/Perl6/Metamodel/InvocationProtocol.nqp \
src/Perl6/Metamodel/ParrotInterop.nqp \
src/Perl6/Metamodel/RolePunning.nqp \
src/Perl6/Metamodel/ArrayType.nqp \
src/Perl6/Metamodel/RoleToRoleApplier.nqp \
src/Perl6/Metamodel/ConcreteRoleHOW.nqp \
src/Perl6/Metamodel/CurriedRoleHOW.nqp \
src/Perl6/Metamodel/ParametricRoleHOW.nqp \
src/Perl6/Metamodel/ParametricRoleGroupHOW.nqp \
src/Perl6/Metamodel/RoleToClassApplier.nqp \
src/Perl6/Metamodel/ClassHOW.nqp \
src/Perl6/Metamodel/GrammarHOW.nqp \
src/Perl6/Metamodel/NativeHOW.nqp \
src/Perl6/Metamodel/SubsetHOW.nqp \
src/Perl6/Metamodel/EnumHOW.nqp \
src/Perl6/Metamodel/ContainerDescriptor.nqp \
src/Perl6/Metamodel/Dispatchers.nqp \
# The ordering here is important for bootstrapping reasons. In general:
# * traits almost certainly have to come first
# * stubs have to come after traits since they use them
# * Attribute needs to come before anything that uses an attribute
# We break various other circularities in Perl6::Metamodel::BOOTSTRAP.
# Note that you only really have to worry especially about things that
# the compiler will instantiate/call methods on while compiling the
# setting - basically anything that feels MOP-ish.
P_CORE_SOURCES = \
src/core/core_prologue.pm \
src/core/traits.pm \
src/core/Positional.pm \
src/core/Associative.pm \
src/core/Callable.pm \
src/core/natives.pm \
src/core/stubs.pm \
src/core/control.pm \
src/core/Mu.pm \
src/core/Stringy.pm \
src/core/Any.pm \
src/core/array_slice.pm \
src/core/hash_slice.pm \
src/core/Scalar.pm \
src/core/Code.pm \
src/core/WhateverCode.pm \
src/core/Block.pm \
src/core/Attribute.pm \
src/core/Variable.pm \
src/core/Routine.pm \
src/core/Sub.pm \
src/core/Macro.pm \
src/core/Method.pm \
src/core/Submethod.pm \
src/core/Junction.pm \
src/core/Cool.pm \
src/core/Enumeration.pm \
src/core/Whatever.pm \
src/core/Bool.pm \
src/core/Numeric.pm \
src/core/Real.pm \
src/core/Int.pm \
src/core/Order.pm \
src/core/UInt64.pm \
src/core/Num.pm \
src/core/Buf.pm \
src/core/Str.pm \
src/core/Capture.pm \
src/core/Parcel.pm \
src/core/Iterable.pm \
src/core/Iterator.pm \
src/core/Nil.pm \
src/core/Range.pm \
src/core/ListIter.pm \
src/core/MapIter.pm \
src/core/GatherIter.pm \
src/core/List.pm \
src/core/LoL.pm \
src/core/Array.pm \
src/core/Enum.pm \
src/core/Pair.pm \
src/core/HashIter.pm \
src/core/EnumMap.pm \
src/core/Hash.pm \
src/core/Stash.pm \
src/core/PseudoStash.pm \
src/core/Parameter.pm \
src/core/Signature.pm \
src/core/Rational.pm \
src/core/Rat.pm \
src/core/Complex.pm \
src/core/Backtrace.pm \
src/core/Exception.pm \
src/core/Failure.pm \
src/core/Match.pm \
src/core/Cursor.pm \
src/core/Grammar.pm \
src/core/Regex.pm \
src/core/IO/Spec/Unix.pm \
src/core/IO/Spec/Win32.pm \
src/core/IO/Spec/Cygwin.pm \
src/core/IO/Spec/QNX.pm \
src/core/IO/Spec.pm \
src/core/IO.pm \
src/core/IO/ArgFiles.pm \
src/core/IO/Socket.pm \
src/core/IO/Socket/INET.pm \
src/core/AST.pm \
src/core/CallFrame.pm \
src/core/Main.pm \
src/core/tai-utc.pm \
src/core/Instant.pm \
src/core/Duration.pm \
src/core/Temporal.pm \
src/core/EXPORTHOW.pm \
src/core/Pod.pm \
src/core/QuantHash.pm \
src/core/Setty.pm \
src/core/Set.pm \
src/core/SetHash.pm \
src/core/Baggy.pm \
src/core/Bag.pm \
src/core/BagHash.pm \
src/core/Mixy.pm \
src/core/Mix.pm \
src/core/MixHash.pm \
src/core/set_operators.pm \
src/core/ObjAt.pm \
src/core/Version.pm \
src/core/ForeignCode.pm \
src/core/operators.pm \
src/core/metaops.pm \
src/core/precedence.pm \
src/core/terms.pm \
src/core/Deprecations.pm \
src/core/OS.pm \
src/core/core_epilogue.pm \
DOCS = README CREDITS LICENSE docs/*
P_CLEANUPS = \
*.manifest \
*.pdb \
$(PERL6_PBC) \
$(PERL6_EXE) \
$(SETTING_PBC) \
$(R_SETTING_PBC) \
$(PARROT_DLL_COPY) \
perl6.c \
perl6$(O) \
perl6_group.* \
lib/Test.pir \
lib/lib.pir \
lib/Pod/To/Text.pir \
p-rakudo_test_run.tar.gz \
$(DYNEXT_DIR)/*$(LOAD_EXT) \
src/gen/p-CORE.setting \
src/gen/*.pir \
src/gen/*.pbc \
src/gen/*.pm \
$(OPS_DIR)/*.h \
$(OPS_DIR)/*.c \
$(OPS_DIR)/*$(O) \
$(OPS_DIR)/*$(LOAD_EXT) \
src/vm/parrot/guts/*$(O) \
# NOTE: eventually, we should remove --keep-exit-code and --fudge
# as the goal is that all tests must pass without fudge
P_HARNESS_WITH_FUDGE = $(PERL) t/harness --fudge --keep-exit-code --icu=$(HAS_ICU)
STAGESTATS =
# the default target, TODO: make libraries in 'lib' a variable.
p-all: p-check-versions $(PERL6_EXE) $(SETTING_PBC) $(R_SETTING_PBC) lib/lib.pir lib/Test.pir lib/Pod/To/Text.pir
# the install target
p-install: p-all
$(MKPATH) $(DESTDIR)$(NQP_LANG_DIR)/lib/Perl6
$(CP) $(PERL6_ML_PBC) $(DESTDIR)$(NQP_LANG_DIR)/lib/Perl6/ModuleLoader.pbc
$(CP) $(PERL6_W_PBC) $(DESTDIR)$(NQP_LANG_DIR)/lib/Perl6/World.pbc
$(CP) $(PERL6_G_PBC) $(DESTDIR)$(NQP_LANG_DIR)/lib/Perl6/Grammar.pbc
$(CP) $(PERL6_OPS_PBC) $(DESTDIR)$(NQP_LANG_DIR)/lib/Perl6/Ops.pbc
$(CP) $(PERL6_A_PBC) $(DESTDIR)$(NQP_LANG_DIR)/lib/Perl6/Actions.pbc
$(CP) $(PERL6_O_PBC) $(DESTDIR)$(NQP_LANG_DIR)/lib/Perl6/Optimizer.pbc
$(CP) $(PERL6_P_PBC) $(DESTDIR)$(NQP_LANG_DIR)/lib/Perl6/Pod.pbc
$(CP) $(PERL6_C_PBC) $(DESTDIR)$(NQP_LANG_DIR)/lib/Perl6/Compiler.pbc
$(CP) $(PERL6_M_PBC) $(DESTDIR)$(NQP_LANG_DIR)/lib/Perl6/Metamodel.pbc
$(CP) $(PERL6_B_PBC) $(DESTDIR)$(NQP_LANG_DIR)/lib/Perl6/BOOTSTRAP.pbc
$(MKPATH) $(DESTDIR)$(P_PERL6_LANG_DIR)/lib
$(CP) $(PERL6_PBC) $(DESTDIR)$(P_PERL6_LANG_DIR)
$(CP) $(SETTING_PBC) $(DESTDIR)$(P_PERL6_LANG_DIR)/lib
$(CP) $(R_SETTING_PBC) $(DESTDIR)$(P_PERL6_LANG_DIR)/lib
$(CP) lib/Test.pm $(DESTDIR)$(P_PERL6_LANG_DIR)/lib
$(CP) lib/Test.pir $(DESTDIR)$(P_PERL6_LANG_DIR)/lib
$(CP) lib/lib.pm6 $(DESTDIR)$(P_PERL6_LANG_DIR)/lib
$(CP) lib/lib.pir $(DESTDIR)$(P_PERL6_LANG_DIR)/lib
$(MKPATH) $(DESTDIR)$(P_PERL6_LANG_DIR)/lib/Pod/To
$(CP) lib/Pod/To/Text.pm $(DESTDIR)$(P_PERL6_LANG_DIR)/lib/Pod/To
$(CP) lib/Pod/To/Text.pir $(DESTDIR)$(P_PERL6_LANG_DIR)/lib/Pod/To
$(MKPATH) $(DESTDIR)$(PARROT_LIB_DIR)/dynext
$(CP) $(DYNOPS) $(DESTDIR)$(PARROT_LIB_DIR)/dynext
$(MKPATH) $(DESTDIR)$(PARROT_BIN_DIR)
$(CP) $(PERL6_EXE) $(DESTDIR)$(PARROT_BIN_DIR)
$(CHMOD) 755 $(DESTDIR)$(PARROT_BIN_DIR)/$(PERL6_EXE)
$(MKPATH) $(DESTDIR)$(DOCDIR)/rakudo
$(MKPATH) $(DESTDIR)$(DOCDIR)/rakudo/announce
-$(CP) $(DOCS) $(DESTDIR)$(DOCDIR)/rakudo
$(CP) docs/announce/* $(DESTDIR)$(DOCDIR)/rakudo/announce
$(MKPATH) $(DESTDIR)$(MANDIR)/man1
-$(POD2MAN) docs/running.pod --name=perl6 > $(DESTDIR)$(MANDIR)/man1/perl6.1
-$(POD2MAN) docs/running.pod --name=rakudo > $(DESTDIR)$(MANDIR)/man1/rakudo.1
p-runner-default-install: p-all
$(CP) $(PERL6_EXE) $(DESTDIR)$(PARROT_BIN_DIR)/perl6$(EXE)
$(CHMOD) 755 $(DESTDIR)$(PARROT_BIN_DIR)/perl6$(EXE)
xmas: $(PERL6_EXE) $(SETTING_PBC) $(R_SETTING_PBC)
## targets for building a standalone perl6 executable.
$(PERL6_EXE): $(PERL6_PBC) $(PARROT_DLL_COPY)
$(PBC_TO_EXE) -o$(PERL6_EXE) $(PERL6_PBC)
p-runner-default: p-all
$(CP) $(PERL6_EXE) perl6$(EXE)
$(CHMOD) 755 perl6$(EXE)
# the complete compiler
$(PERL6_PBC): $(PERL6_G_PBC) $(PERL6_A_PBC) $(PERL6_C_PBC) $(PERL6_P_PBC) src/main.nqp
$(PERL) tools/build/gen-version.pl > $(P_BUILD_DIR)/main-version.nqp
$(PERL) $(P_GEN_CAT) src/main.nqp $(P_BUILD_DIR)/main-version.nqp > $(P_BUILD_DIR)/main.nqp
$(NQP_EXE) --vmlibs=perl6_ops --target=pir --output=src/gen/perl6.pir \
$(P_BUILD_DIR)/main.nqp
$(PARROT) $(PARROT_ARGS) -o $(PERL6_PBC) src/gen/perl6.pir
$(PERL6_ML_PBC): $(NQP_EXE) $(DYNEXT_DYNOPS) src/Perl6/ModuleLoader.nqp src/vm/parrot/ModuleLoaderVMConfig.nqp
$(PERL) $(P_GEN_CAT) src/vm/parrot/ModuleLoaderVMConfig.nqp src/Perl6/ModuleLoader.nqp > $(P_BUILD_DIR)/ModuleLoader.nqp
$(NQP_EXE) --target=pir --output=$(PERL6_ML) --encoding=utf8 \
$(P_BUILD_DIR)/ModuleLoader.nqp
$(PARROT) $(PARROT_ARGS) -o $(PERL6_ML_PBC) $(PERL6_ML)
$(PERL6_W_PBC): $(NQP_EXE) $(PERL6_ML_PBC) src/Perl6/World.nqp
$(NQP_EXE) --vmlibs=perl6_ops --target=pir --output=$(PERL6_W) --encoding=utf8 \
src/Perl6/World.nqp
$(PARROT) $(PARROT_ARGS) -o $(PERL6_W_PBC) $(PERL6_W)
$(PERL6_G_PBC): $(NQP_EXE) $(PERL6_W_PBC) $(PERL6_A_PBC) src/Perl6/Grammar.nqp $(PERL6_P_PBC)
$(NQP_EXE) --target=pir --output=$(PERL6_G) --encoding=utf8 \
src/Perl6/Grammar.nqp
$(PARROT) $(PARROT_ARGS) -o $(PERL6_G_PBC) $(PERL6_G)
$(PERL6_OPS_PBC): $(NQP_EXE) $(DYNEXT_DYNOPS) src/vm/parrot/Perl6/Ops.nqp
$(NQP_EXE) --vmlibs=perl6_ops --target=pir --output=$(PERL6_OPS) --encoding=utf8 \
src/vm/parrot/Perl6/Ops.nqp
$(PARROT) $(PARROT_ARGS) -o $(PERL6_OPS_PBC) $(PERL6_OPS)
$(PERL6_A_PBC): $(NQP_EXE) $(DYNEXT_DYNOPS) src/Perl6/Actions.nqp $(PERL6_P_PBC) $(PERL6_OPS_PBC)
$(NQP_EXE) --vmlibs=perl6_ops --target=pir --output=$(PERL6_A) --encoding=utf8 \
src/Perl6/Actions.nqp
$(PARROT) $(PARROT_ARGS) -o $(PERL6_A_PBC) $(PERL6_A)
$(PERL6_O_PBC): $(NQP_EXE) $(DYNEXT_DYNOPS) $(PERL6_OPS_PBC) src/Perl6/Optimizer.nqp
$(NQP_EXE) --vmlibs=perl6_ops --target=pir --output=$(PERL6_O) --encoding=utf8 \
src/Perl6/Optimizer.nqp
$(PARROT) $(PARROT_ARGS) -o $(PERL6_O_PBC) $(PERL6_O)
$(PERL6_P_PBC): $(NQP_EXE) $(DYNEXT_DYNOPS) src/Perl6/Pod.nqp
$(NQP_EXE) --vmlibs=perl6_ops --target=pir --output=$(PERL6_P) --encoding=utf8 \
src/Perl6/Pod.nqp
$(PARROT) $(PARROT_ARGS) -o $(PERL6_P_PBC) $(PERL6_P)
$(PERL6_C_PBC): $(NQP_EXE) $(DYNEXT_DYNOPS) $(PERL6_O_PBC) src/Perl6/Compiler.nqp
$(NQP_EXE) --target=pir --output=$(PERL6_C) --encoding=utf8 \
src/Perl6/Compiler.nqp
$(PARROT) $(PARROT_ARGS) -o $(PERL6_C_PBC) $(PERL6_C)
$(PERL6_M_PBC): $(NQP_EXE) $(DYNEXT_DYNOPS) $(P_METAMODEL_SOURCES) $(PERL6_OPS_PBC)
$(PERL) $(P_GEN_CAT) $(P_METAMODEL_SOURCES) > $(P_BUILD_DIR)/Metamodel.nqp
$(NQP_EXE) --target=pir --output=$(PERL6_M) --encoding=utf8 \
--vmlibs=perl6_ops $(P_BUILD_DIR)/Metamodel.nqp
$(PARROT) $(PARROT_ARGS) -o $(PERL6_M_PBC) $(PERL6_M)
$(PERL6_B_PBC): $(NQP_EXE) $(DYNEXT_DYNOPS) $(PERL6_M_PBC) $(BOOTSTRAP_SOURCES)
$(PERL) $(P_GEN_CAT) $(BOOTSTRAP_SOURCES) > $(P_BUILD_DIR)/BOOTSTRAP.nqp
$(NQP_EXE) --target=pir --output=$(PERL6_B) --encoding=utf8 \
--vmlibs=perl6_ops $(P_BUILD_DIR)/BOOTSTRAP.nqp
$(PARROT) $(PARROT_ARGS) -o $(PERL6_B_PBC) $(PERL6_B)
$(SETTING_PBC): $(PERL6_B_PBC) $(PERL6_EXE) $(P_CORE_SOURCES)
$(PERL) $(P_GEN_CAT) $(P_CORE_SOURCES) > $(P_BUILD_DIR)/CORE.setting
@echo "The following step can take a long time, please be patient."
./$(PERL6_EXE) --setting=NULL --optimize=3 --target=pir --stagestats --output=$(SETTING_PIR) $(P_BUILD_DIR)/CORE.setting
$(PARROT) $(PARROT_ARGS) -o $(SETTING_PBC) $(SETTING_PIR)
$(R_SETTING_PBC): $(PERL6_B_PBC) $(PERL6_EXE) $(SETTING_PBC) $(R_SETTING_SRC)
./$(PERL6_EXE) --target=pir $(STAGESTATS) --output=$(R_SETTING_PIR) $(R_SETTING_SRC)
$(PARROT) $(PARROT_ARGS) -o $(R_SETTING_PBC) $(R_SETTING_PIR)
## testing targets
lib/Test.pir: lib/Test.pm $(PERL6_EXE) $(SETTING_PBC)
./$(PERL6_EXE) --target=pir --output=lib/Test.pir lib/Test.pm
lib/lib.pir: lib/lib.pm6 $(PERL6_EXE) $(SETTING_PBC)
./$(PERL6_EXE) --target=pir --output=lib/lib.pir lib/lib.pm6
lib/Pod/To/Text.pir: lib/Pod/To/Text.pm $(PERL6_EXE) $(SETTING_PBC)
./$(PERL6_EXE) --target=pir --output=lib/Pod/To/Text.pir lib/Pod/To/Text.pm
p-test : p-coretest
p-fulltest: p-coretest p-stresstest
p-coretest: p-all
$(PERL) t/harness t/00-parrot t/01-sanity
# Run the spectests that we know work.
p-spectest: p-testable t/spectest.data
$(P_HARNESS_WITH_FUDGE) --tests-from-file=t/spectest.data
p-spectest_full: p-testable
$(P_HARNESS_WITH_FUDGE) t/spec
p-quicktest: p-testable t/spectest.data
$(P_HARNESS_WITH_FUDGE) --tests-from-file=t/spectest.data --long=0
p-stresstest: p-testable t/spectest.data
$(P_HARNESS_WITH_FUDGE) --tests-from-file=t/spectest.data --stress=1
p-rakudo_test_run.tar.gz: p-testable t/spectest.data
- $(P_HARNESS_WITH_FUDGE) --tests-from-file=t/spectest.data --archive p-rakudo_test_run.tar.gz --parrot_revision RELEASE_5_9_0
p-spectest_smolder: rakudo_test_run.tar.gz
./perl6 -e "shell qqx[git log -1 --pretty=format:%H].fmt(qq[curl -F architecture=amd64 -F platform=linux -F revision=%s -F report_file=@p-rakudo_test_run.tar.gz -F username=parrot-autobot -F password=qa_rocks http://smolder.parrot.org/app/projects/process_add_report/5])"
p-testable : p-all spectest_checkout spectest_update
# Run the tests in t/localtest.data
p-localtest: p-all spectest_checkout t/localtest.data
@$(P_HARNESS_WITH_FUDGE) --tests-from-file=t/localtest.data
# Run the tests in t/localtest.data with a higher verbosity
p-localtest_loud: p-all spectest_checkout t/localtest.data
@$(P_HARNESS_WITH_FUDGE) --tests-from-file=t/localtest.data --verbosity=1
# Run many tests of your choice.
# make sometests TESTFILES=t/foo/bar
p-sometests: p-all
@$(P_HARNESS_WITH_FUDGE) $(TESTFILES)
## cleaning
p-clean:
$(RM_RF) $(P_CLEANUPS)
## 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 " This is the default."
@echo " $(PERL6_EXE): Some want a pony, others are satisfied with an executable."
@echo " xmas: Christmas is when Perl 6 is released. Alias of perl6$(EXE)."
@echo ""
@echo "Testing:"
@echo " test: Run Rakudo's sanity tests."
@echo " spectest: Run the tests of the official test suite that are expected to pass."
@echo " fulltest: Run sanity tests and spectests."
@echo " spectest_full: Run all tests of the official test suite."
@echo " localtest: Run the official tests given in t/localtest.data."
@echo " spectest_checkout: Performs git checkout of official test suite."
@echo " spectest_update: Performs git update of official test suite."
@echo " testable: Create the perl6 executable, compile the Test library,"
@echo " and update official test suite."
@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 ""
@echo "Misc:"
@echo " help: Print this help message."
@echo ""
p-check-versions:
@$(PERL) tools/build/check-versions.pl $(NQP_EXE)
config:
$(PERL) Configure.pl
$(PARROT):
CRITIC_FILES=Configure.pl t/harness build/ tools/
perlcritic:
perlcritic -1 --profile tools/util/perlcritic.conf $(CRITIC_FILES)
manifest:
echo MANIFEST >MANIFEST
git ls-files | $(PERL) -ne '/^\./ || print' >>MANIFEST
cd t/spec && git clean -xdf
find t/spec -type f | grep -v '\.git' >>MANIFEST
sort -u -o MANIFEST MANIFEST
release: manifest
[ -n "$(VERSION)" ] || ( echo "\nTry 'make release VERSION=yyyy.mm'\n\n"; exit 1 )
[ -d rakudo-$(VERSION) ] || ln -s . rakudo-$(VERSION)
$(PERL) -ne 'print "rakudo-$(VERSION)/$$_"' MANIFEST | \
tar -zcv -T - -f rakudo-$(VERSION).tar.gz
rm rakudo-$(VERSION)
$(DYNEXT_DYNOPS): $(DYNOPS)
$(CP) $(DYNOPS) $(DYNEXT_DIR)
$(CHMOD) 755 $(DYNEXT_DYNOPS)
# (at)cc_o_out(at) and (at)ld_out(at) below cannot be assigned to
# makefile macros, because some make utilities drop the trailing
# spaces and some compilers/linkers forbid a (forced) space.
# See RT #66558 and TT #700.
$(DYNOPS): $(OPS_DIR)/$(OPS_SOURCE) src/vm/parrot/guts/bind.c src/vm/parrot/guts/bind.h src/vm/parrot/guts/container.c src/vm/parrot/guts/container.h src/vm/parrot/guts/types.c src/vm/parrot/guts/types.h src/vm/parrot/guts/sixmodelobject.h src/vm/parrot/guts/storage_spec.h src/vm/parrot/guts/exceptions.h src/vm/parrot/guts/exceptions.c
cd $(OPS_DIR) && $(OPS2C) C --dynamic $(OPS_SOURCE)
cd $(OPS_DIR) && $(CC) -c -o $(OPS)$(O) $(CINCLUDES) $(CFLAGS) $(OPS).c
cd src/vm/parrot/guts && $(CC) -c -o exceptions$(O) $(CINCLUDES) $(CFLAGS) exceptions.c
cd src/vm/parrot/guts && $(CC) -c -o bind$(O) $(CINCLUDES) $(CFLAGS) bind.c
cd src/vm/parrot/guts && $(CC) -c -o container$(O) $(CINCLUDES) $(CFLAGS) container.c
cd src/vm/parrot/guts && $(CC) -c -o types$(O) $(CINCLUDES) $(CFLAGS) types.c
cd $(OPS_DIR) && $(LD) -o $(OPS)$(LOAD_EXT) $(OPS)$(O) ../guts/bind$(O) ../guts/exceptions$(O) ../guts/container$(O) ../guts/types$(O) $(LINKARGS)
# nqp::makefile <-- tells NQP::Configure to treat this file as a makefile,
# performing win32 slash and makefile conversions
# (end of section generated from tools/build/Makefile-Parrot.in)
# Generated from tools/build/Makefile-JVM.in
JAVA = java
JAVAC = javac
JAR = jar
J_NQP = /home/larry/nom/install/bin/nqp-j
J_GEN_CAT = tools/build/gen-cat.pl jvm
NQP_PREFIX = /home/larry/nom/install
J_BUILD_DIR = gen/jvm
PERL6_LANG_DIR = $(PREFIX)/languages/perl6
NQP_JARS = /home/larry/nom/install/languages/nqp/runtime/asm-4.1.jar:/home/larry/nom/install/languages/nqp/runtime/asm-tree-4.1.jar:/home/larry/nom/install/languages/nqp/runtime/jline-1.0.jar:/home/larry/nom/install/languages/nqp/runtime/jna.jar:/home/larry/nom/install/languages/nqp/runtime/nqp-runtime.jar:/home/larry/nom/install/languages/nqp/lib/nqp.jar
J_RUN_PERL6 = $(JAVA) -Xss1m -Xms500m -Xmx1600m -Xbootclasspath/a:.:$(NQP_JARS):rakudo-runtime.jar:perl6.jar -cp /home/larry/nom/install/languages/nqp/lib perl6
RUNTIME_JAVAS = src/vm/jvm/runtime/org/perl6/rakudo/*.java
RUNTIME_JAR = rakudo-runtime.jar
RUNNER = perl6-j
# files we create
PERL6_JAR = perl6.jar
PERL6_ML_JAR = blib/Perl6/ModuleLoader.jar
PERL6_W_JAR = blib/Perl6/World.jar
PERL6_G_JAR = blib/Perl6/Grammar.jar
PERL6_OPS_JAR = blib/Perl6/Ops.jar
PERL6_A_JAR = blib/Perl6/Actions.jar
PERL6_O_JAR = blib/Perl6/Optimizer.jar
PERL6_P_JAR = blib/Perl6/Pod.jar
PERL6_C_JAR = blib/Perl6/Compiler.jar
PERL6_M_JAR = blib/Perl6/Metamodel.jar
PERL6_B_JAR = blib/Perl6/BOOTSTRAP.jar
SETTING_JAR = CORE.setting.jar
PERL6_LANG_JARS = $(PERL6_ML_JAR) $(PERL6_W_JAR) $(PERL6_G_JAR) $(PERL6_OPS_JAR) $(PERL6_A_JAR) \
$(PERL6_O_JAR) $(PERL6_P_JAR) $(PERL6_C_JAR) $(PERL6_M_JAR) $(PERL6_B_JAR)
J_METAMODEL_SOURCES = $(COMMON_BOOTSTRAP_SOURCES) \
src/vm/jvm/Perl6/Metamodel/JavaHOW.nqp \
# The ordering here is important for bootstrapping reasons. In general:
# * traits almost certainly have to come first
# * stubs have to come after traits since they use them
# * Attribute needs to come before anything that uses an attribute
# We break various other circularities in Perl6::Metamodel::BOOTSTRAP.
# Note that you only really have to worry especially about things that
# the compiler will instantiate/call methods on while compiling the
# setting - basically anything that feels MOP-ish.
J_CORE_SOURCES = \
src/core/core_prologue.pm \
src/core/traits.pm \
src/core/Positional.pm \
src/core/Associative.pm \
src/core/Callable.pm \
src/core/natives.pm \
src/core/stubs.pm \
src/core/control.pm \
src/core/Mu.pm \
src/core/Stringy.pm \
src/core/Any.pm \
src/core/array_slice.pm \
src/core/hash_slice.pm \
src/core/Scalar.pm \
src/core/Code.pm \
src/core/WhateverCode.pm \
src/core/Block.pm \
src/core/Attribute.pm \
src/core/Variable.pm \
src/core/Routine.pm \
src/core/Sub.pm \
src/core/Macro.pm \
src/core/Method.pm \
src/core/Submethod.pm \
src/core/Junction.pm \
src/core/Cool.pm \
src/core/Enumeration.pm \
src/core/Whatever.pm \
src/core/Bool.pm \
src/core/Numeric.pm \
src/core/Real.pm \
src/core/Int.pm \
src/core/Order.pm \
src/core/UInt64.pm \
src/core/Num.pm \
src/core/Buf.pm \
src/core/Str.pm \
src/core/Capture.pm \
src/core/Parcel.pm \
src/core/Iterable.pm \
src/core/Iterator.pm \
src/core/Nil.pm \
src/core/Range.pm \
src/core/ListIter.pm \
src/core/MapIter.pm \
src/core/GatherIter.pm \
src/core/List.pm \
src/core/LoL.pm \
src/core/Array.pm \
src/core/Enum.pm \
src/core/Pair.pm \
src/core/HashIter.pm \
src/core/EnumMap.pm \
src/core/Hash.pm \
src/core/Stash.pm \
src/core/PseudoStash.pm \
src/core/Parameter.pm \
src/core/Signature.pm \
src/core/Rational.pm \
src/core/Rat.pm \
src/core/Complex.pm \
src/core/Backtrace.pm \
src/core/Exception.pm \
src/core/Failure.pm \
src/core/Match.pm \
src/core/Cursor.pm \
src/core/Grammar.pm \
src/core/Regex.pm \
src/core/IO/Spec/Unix.pm \
src/core/IO/Spec/Win32.pm \
src/core/IO/Spec/Cygwin.pm \
src/core/IO/Spec.pm \
src/core/IO.pm \
src/core/IO/ArgFiles.pm \
src/core/AST.pm \
src/core/CallFrame.pm \
src/core/Main.pm \
src/core/tai-utc.pm \
src/core/Instant.pm \
src/core/Duration.pm \
src/core/Temporal.pm \
src/core/EXPORTHOW.pm \
src/core/Pod.pm \
src/core/QuantHash.pm \
src/core/Setty.pm \
src/core/Set.pm \
src/core/SetHash.pm \
src/core/Baggy.pm \
src/core/Bag.pm \
src/core/BagHash.pm \
src/core/Mixy.pm \
src/core/Mix.pm \
src/core/MixHash.pm \
src/core/set_operators.pm \
src/core/ObjAt.pm \
src/core/Version.pm \
src/core/ForeignCode.pm \
src/core/operators.pm \
src/core/metaops.pm \
src/core/precedence.pm \
src/core/terms.pm \
src/core/Deprecations.pm \
src/vm/jvm/core/Thread.pm \
src/vm/jvm/core/Lock.pm \
src/vm/jvm/core/Scheduler.pm \
src/vm/jvm/core/ThreadPoolScheduler.pm \
src/vm/jvm/core/CurrentThreadScheduler.pm \
src/vm/jvm/core/Promise.pm \
src/vm/jvm/core/Channel.pm \
src/vm/jvm/core/Supply.pm \
src/vm/jvm/core/SupplyOperations.pm \
src/vm/jvm/core/Publisher.pm \
src/vm/jvm/core/Publish.pm \
src/vm/jvm/core/KeyReducer.pm \
src/vm/jvm/core/IOAsyncFile.pm \
src/vm/jvm/core/asyncops.pm \
src/core/IO/Socket.pm \
src/core/IO/Socket/INET.pm \
src/core/OS.pm \
src/core/core_epilogue.pm \
J_CLEANUPS = \
*.manifest \
blib/Perl6/*.jar \
$(SETTING_JAR) \
$(PERL6_JAR) \
lib/Test.jar \
lib/lib.jar \
lib/Pod/To/Text.jar \
blib/Test.jar \
blib/lib.jar \
blib/Pod/To/Text.jar \
j-rakudo_test_run.tar.gz \
$(J_BUILD_DIR)/* \
$(RUNTIME_JAR) \
$(RUNNER)
J_HARNESS_WITH_FUDGE = $(PERL) t/harness --fudge --keep-exit-code --jvm
J_HARNESS = $(PERL) t/harness --jvm
j-all: $(PERL6_JAR) $(SETTING_JAR) $(RUNNER) blib/Test.jar blib/lib.jar blib/Pod/To/Text.jar
$(RUNTIME_JAR): $(RUNTIME_JAVAS)
$(PERL) -MExtUtils::Command -e mkpath bin
$(JAVAC) -source 1.7 -cp $(NQP_JARS) -g -d bin $(RUNTIME_JAVAS)
$(JAR) cf0 rakudo-runtime.jar -C bin/ .
$(PERL6_ML_JAR): src/Perl6/ModuleLoader.nqp src/vm/jvm/ModuleLoaderVMConfig.nqp src/vm/jvm/Perl6/JavaModuleLoader.nqp
$(PERL) $(J_GEN_CAT) src/vm/jvm/ModuleLoaderVMConfig.nqp src/Perl6/ModuleLoader.nqp src/vm/jvm/Perl6/JavaModuleLoader.nqp > $(J_BUILD_DIR)/ModuleLoader.nqp
$(J_NQP) --target=jar --output=$(PERL6_ML_JAR) --encoding=utf8 \
$(J_BUILD_DIR)/ModuleLoader.nqp
$(PERL6_W_JAR): $(PERL6_ML_JAR) src/Perl6/World.nqp
$(J_NQP) --target=jar --output=$(PERL6_W_JAR) --encoding=utf8 \
src/Perl6/World.nqp
$(PERL6_P_JAR): src/Perl6/Pod.nqp
$(J_NQP) --target=jar --output=$(PERL6_P_JAR) --encoding=utf8 \
src/Perl6/Pod.nqp
$(PERL6_OPS_JAR): src/vm/jvm/Perl6/Ops.nqp
$(J_NQP) --target=jar --output=$(PERL6_OPS_JAR) --encoding=utf8 \
src/vm/jvm/Perl6/Ops.nqp
$(PERL6_A_JAR): src/Perl6/Actions.nqp $(PERL6_P_JAR) $(PERL6_OPS_JAR)
$(J_NQP) --target=jar --output=$(PERL6_A_JAR) --encoding=utf8 \
src/Perl6/Actions.nqp
$(PERL6_G_JAR): src/Perl6/Grammar.nqp $(PERL6_W_JAR) $(PERL6_A_JAR) $(PERL6_P_JAR)
$(J_NQP) --target=jar --output=$(PERL6_G_JAR) --encoding=utf8 \
src/Perl6/Grammar.nqp
$(PERL6_O_JAR): src/Perl6/Optimizer.nqp $(PERL6_OPS_JAR)
$(J_NQP) --target=jar --output=$(PERL6_O_JAR) --encoding=utf8 \
src/Perl6/Optimizer.nqp
$(PERL6_C_JAR): src/Perl6/Compiler.nqp $(PERL6_O_JAR)
$(J_NQP) --target=jar --output=$(PERL6_C_JAR) --encoding=utf8 \
src/Perl6/Compiler.nqp
$(PERL6_JAR): src/main.nqp $(RUNTIME_JAR) $(PERL6_G_JAR) $(PERL6_A_JAR) $(PERL6_C_JAR) $(PERL6_P_JAR)
$(PERL) tools/build/gen-version.pl > $(J_BUILD_DIR)/main-version.nqp
$(PERL) $(J_GEN_CAT) src/main.nqp $(J_BUILD_DIR)/main-version.nqp > $(J_BUILD_DIR)/main.nqp
$(J_NQP) --target=jar --javaclass=perl6 --output=$(PERL6_JAR) \
$(J_BUILD_DIR)/main.nqp
$(PERL6_M_JAR): $(J_METAMODEL_SOURCES) $(PERL6_OPS_JAR)
$(PERL) $(J_GEN_CAT) $(J_METAMODEL_SOURCES) > $(J_BUILD_DIR)/Metamodel.nqp
$(J_NQP) --target=jar --output=$(PERL6_M_JAR) --encoding=utf8 \
$(J_BUILD_DIR)/Metamodel.nqp
$(PERL6_B_JAR): $(BOOTSTRAP_SOURCES) $(PERL6_M_JAR)
$(PERL) $(J_GEN_CAT) $(BOOTSTRAP_SOURCES) > $(J_BUILD_DIR)/BOOTSTRAP.nqp
$(PERL) tools/build/nqp-jvm-rr.pl $(J_NQP) --target=jar \
--output=$(PERL6_B_JAR) --encoding=utf8 $(J_BUILD_DIR)/BOOTSTRAP.nqp
$(SETTING_JAR): $(PERL6_JAR) $(PERL6_B_JAR) $(J_CORE_SOURCES)
$(PERL) $(J_GEN_CAT) $(J_CORE_SOURCES) > $(J_BUILD_DIR)/CORE.setting
@echo "The following step can take a long time, please be patient."
$(J_RUN_PERL6) --setting=NULL --optimize=3 --target=jar --stagestats --output=$(SETTING_JAR) $(J_BUILD_DIR)/CORE.setting
$(RUNNER):
$(PERL) tools/build/create-jvm-runner.pl dev . . $(NQP_PREFIX) $(NQP_JARS)
j-runner-default: j-all
$(CP) $(RUNNER) perl6$(BAT)
$(CHMOD) 755 perl6$(BAT)
## testing targets
blib/Test.jar: lib/Test.pm $(PERL6_JAR) $(SETTING_JAR) $(RUNNER)
./$(RUNNER) --target=jar --output=blib/Test.jar lib/Test.pm
blib/lib.jar: lib/lib.pm6 $(PERL6_JAR) $(SETTING_JAR) $(RUNNER)
./$(RUNNER) --target=jar --output=blib/lib.jar lib/lib.pm6
blib/Pod/To/Text.jar: lib/Pod/To/Text.pm $(PERL6_JAR) $(SETTING_JAR) $(RUNNER)
$(MKPATH) blib/Pod/To
./$(RUNNER) --target=jar --output=blib/Pod/To/Text.jar lib/Pod/To/Text.pm
j-test : j-coretest
j-fulltest: j-coretest j-stresstest
j-coretest: j-all
$(J_HARNESS) t/00-parrot t/01-sanity
# Run the spectests that we know work.
j-spectest: j-testable t/spectest.data
$(J_HARNESS_WITH_FUDGE) --tests-from-file=t/spectest.data
j-spectest_full: j-testable
$(J_HARNESS_WITH_FUDGE) t/spec
j-quicktest: j-testable t/spectest.data
$(J_HARNESS_WITH_FUDGE) --tests-from-file=t/spectest.data --long=0
j-stresstest: j-testable t/spectest.data
$(J_HARNESS_WITH_FUDGE) --tests-from-file=t/spectest.data --stress=1
j-rakudo_test_run.tar.gz: j-testable t/spectest.data
- $(J_HARNESS_WITH_FUDGE) --tests-from-file=t/spectest.data --archive j-rakudo_test_run.tar.gz
#spectest_smolder: rakudo_test_run.tar.gz
# ./perl6 -e "shell qqx[git log -1 --pretty=format:%H].fmt(qq[curl -F architecture= -F platform= -F revision=%s -F report_file=@rakudo_test_run.tar.gz -F username=parrot-autobot -F password=qa_rocks http://smolder.parrot.org/app/projects/process_add_report/5])"
j-testable : j-all spectest_checkout spectest_update
# Run the tests in t/localtest.data
localtest: j-all spectest_checkout t/localtest.data
@$(J_HARNESS_WITH_FUDGE) --tests-from-file=t/localtest.data
# Run the tests in t/localtest.data with a higher verbosity
localtest_loud: j-all spectest_checkout t/localtest.data
@$(J_HARNESS_WITH_FUDGE) --tests-from-file=t/localtest.data --verbosity=1
# Run many tests of your choice.
# make sometests TESTFILES=t/foo/bar
sometests: j-all
@$(J_HARNESS_WITH_FUDGE) $(TESTFILES)
j-install: j-all tools/build/create-jvm-runner.pl
$(MKPATH) $(DESTDIR)$(PREFIX)/bin
$(MKPATH) $(DESTDIR)$(PERL6_LANG_DIR)/lib/Perl6
$(MKPATH) $(DESTDIR)$(PERL6_LANG_DIR)/runtime
$(CP) $(PERL6_LANG_JARS) $(DESTDIR)$(PERL6_LANG_DIR)/lib/Perl6
$(CP) $(SETTING_JAR) $(DESTDIR)$(PERL6_LANG_DIR)/runtime
$(CP) $(PERL6_JAR) $(DESTDIR)$(PERL6_LANG_DIR)/runtime
$(CP) $(RUNTIME_JAR) $(DESTDIR)$(PERL6_LANG_DIR)/runtime
$(CP) blib/Test.jar $(DESTDIR)$(PERL6_LANG_DIR)/lib
$(CP) blib/lib.jar $(DESTDIR)$(PERL6_LANG_DIR)/lib
$(MKPATH) $(DESTDIR)$(PERL6_LANG_DIR)/lib/Pod/To
$(CP) blib/Pod/To/Text.jar $(DESTDIR)$(PERL6_LANG_DIR)/lib/Pod/To
$(PERL) tools/build/create-jvm-runner.pl install "$(DESTDIR)" $(PREFIX) $(NQP_PREFIX) $(NQP_JARS)
j-runner-default-install: j-all
$(PERL) tools/build/create-jvm-runner.pl install "$(DESTDIR)" $(PREFIX) $(NQP_PREFIX) $(NQP_JARS)
$(CP) $(DESTDIR)$(PREFIX)/bin/perl6-j$(BAT) $(DESTDIR)$(PREFIX)/bin/perl6$(BAT)
$(CHMOD) 755 $(DESTDIR)$(PREFIX)/bin/perl6$(BAT)
## cleaning
j-clean:
$(RM_F) $(J_CLEANUPS)
$(RM_RF) bin
j-testclean:
# (end of section generated from tools/build/Makefile-JVM.in)
# Generated from tools/build/Makefile-Moar.in
CC =
LD =
CFLAGS =
LDFLAGS =
PERL = perl
PROVE = prove
M_GEN_CAT = tools/build/gen-cat.pl moar
PREFIX = /home/larry/nom/install
MOAR = $(PREFIX)/bin/moar
M_NQP = $(PREFIX)/bin/nqp-m
M_RUN_PERL6 = $(MOAR) --libpath="$(PREFIX)/languages/nqp/lib" perl6.moarvm
M_RUNNER = perl6-m
# files we create
PERL6_MOAR = perl6.moarvm
PERL6_ML_MOAR = blib/Perl6/ModuleLoader.moarvm
PERL6_W_MOAR = blib/Perl6/World.moarvm
PERL6_G_MOAR = blib/Perl6/Grammar.moarvm
PERL6_OPS_MOAR = blib/Perl6/Ops.moarvm
PERL6_A_MOAR = blib/Perl6/Actions.moarvm
PERL6_O_MOAR = blib/Perl6/Optimizer.moarvm
PERL6_P_MOAR = blib/Perl6/Pod.moarvm
PERL6_C_MOAR = blib/Perl6/Compiler.moarvm
PERL6_M_MOAR = blib/Perl6/Metamodel.moarvm
PERL6_B_MOAR = blib/Perl6/BOOTSTRAP.moarvm
SETTING_MOAR = CORE.setting.moarvm
M_PERL6_OPS_DIR = dynext
M_PERL6_OPS_DLL = $(M_PERL6_OPS_DIR)/
M_PERL6_OPS_OBJ = $(M_PERL6_OPS_DIR)/perl6_ops
M_PERL6_CONT_OBJ = $(M_PERL6_OPS_DIR)/container
M_PERL6_OPS_SRC = src/vm/moar/ops/perl6_ops.c
M_PERL6_CONT_SRC = src/vm/moar/ops/container.c
M_PERL6_LANG_OUTPUT = \
$(PERL6_ML_MOAR) $(PERL6_W_MOAR) $(PERL6_G_MOAR) $(PERL6_OPS_MOAR) \
$(PERL6_A_MOAR) $(PERL6_O_MOAR) $(PERL6_P_MOAR) $(PERL6_C_MOAR) \
$(PERL6_M_MOAR) $(PERL6_B_MOAR)
M_METAMODEL_SOURCES = $(COMMON_BOOTSTRAP_SOURCES)
# The ordering here is important for bootstrapping reasons. In general:
# * traits almost certainly have to come first
# * stubs have to come after traits since they use them
# * Attribute needs to come before anything that uses an attribute
# We break various other circularities in Perl6::Metamodel::BOOTSTRAP.
# Note that you only really have to worry especially about things that
# the compiler will instantiate/call methods on while compiling the
# setting - basically anything that feels MOP-ish.
M_CORE_SOURCES = \
src/core/core_prologue.pm \
src/core/traits.pm \
src/core/Positional.pm \
src/core/Associative.pm \
src/core/Callable.pm \
src/core/natives.pm \
src/core/stubs.pm \
src/core/control.pm \
src/core/Mu.pm \
src/core/Stringy.pm \
src/core/Any.pm \
src/core/array_slice.pm \
src/core/hash_slice.pm \
src/core/Scalar.pm \
src/core/Code.pm \
src/core/WhateverCode.pm \
src/core/Block.pm \
src/core/Attribute.pm \
src/core/Variable.pm \
src/core/Routine.pm \
src/core/Sub.pm \
src/core/Macro.pm \
src/core/Method.pm \
src/core/Submethod.pm \
src/core/Junction.pm \
src/core/Cool.pm \
src/core/Enumeration.pm \
src/core/Whatever.pm \
src/core/Bool.pm \
src/core/Numeric.pm \
src/core/Real.pm \
src/core/Int.pm \
src/core/Order.pm \
src/core/UInt64.pm \
src/core/Num.pm \
src/core/Buf.pm \
src/core/Str.pm \
src/core/Capture.pm \
src/core/Parcel.pm \
src/core/Iterable.pm \
src/core/Iterator.pm \
src/core/Nil.pm \
src/core/Range.pm \
src/core/ListIter.pm \
src/core/MapIter.pm \
src/core/GatherIter.pm \
src/core/List.pm \
src/core/LoL.pm \
src/core/Array.pm \
src/core/Enum.pm \
src/core/Pair.pm \
src/core/HashIter.pm \
src/core/EnumMap.pm \
src/core/Hash.pm \
src/core/Stash.pm \
src/core/PseudoStash.pm \
src/core/Parameter.pm \
src/core/Signature.pm \
src/core/Rational.pm \
src/core/Rat.pm \
src/core/Complex.pm \
src/core/Backtrace.pm \
src/core/Exception.pm \
src/core/Failure.pm \
src/core/Match.pm \
src/core/Cursor.pm \
src/core/Grammar.pm \
src/core/Regex.pm \
src/core/IO/Spec/Unix.pm \
src/core/IO/Spec/Win32.pm \
src/core/IO/Spec/Cygwin.pm \
src/core/IO/Spec.pm \
src/core/IO.pm \
src/core/IO/ArgFiles.pm \
src/core/AST.pm \
src/core/CallFrame.pm \
src/core/Main.pm \
src/core/tai-utc.pm \
src/core/Instant.pm \
src/core/Duration.pm \
src/core/Temporal.pm \
src/core/EXPORTHOW.pm \
src/core/Pod.pm \
src/core/QuantHash.pm \
src/core/Setty.pm \
src/core/Set.pm \
src/core/SetHash.pm \
src/core/Baggy.pm \
src/core/Bag.pm \
src/core/BagHash.pm \
src/core/Mixy.pm \
src/core/Mix.pm \
src/core/MixHash.pm \
src/core/set_operators.pm \
src/core/ObjAt.pm \
src/core/Version.pm \
src/core/ForeignCode.pm \
src/core/operators.pm \
src/core/metaops.pm \
src/core/precedence.pm \
src/core/terms.pm \
src/core/Deprecations.pm \
src/core/IO/Socket.pm \
src/core/OS.pm \
src/core/core_epilogue.pm \
M_CLEANUPS = \
*.manifest \
blib/Perl6/*.moarvm \
$(SETTING_MOAR) \
$(PERL6_MOAR) \
lib/Test.moarvm \
lib/lib.moarvm \
lib/Pod/To/Text.moarvm \
blib/Test.moarvm \
blib/lib.moarvm \
blib/Pod/To/Text.moarvm \
rakudo_test_run.tar.gz \
src/gen/CORE.setting \
src/gen/*.moarvm \
src/gen/*.pm \
$(RUNTIME_MOAR) \
$(M_RUNNER) \
$(M_PERL6_OPS_DLL) \
$(M_PERL6_OPS_OBJ) \
$(M_PERL6_CONT_OBJ) \
$(M_PERL6_OPS_DLL)
M_HARNESS_WITH_FUDGE = $(PERL) t/harness --fudge --keep-exit-code
HARNESS = $(PERL) t/harness
m-all: $(PERL6_MOAR) $(SETTING_MOAR) $(M_RUNNER) blib/Test.moarvm blib/lib.moarvm blib/Pod/To/Text.moarvm
$(M_PERL6_OPS_DLL): $(M_PERL6_OPS_SRC) $(M_PERL6_CONT_SRC) Makefile
$(CC) $(CFLAGS) -I$(PREFIX)/include/libatomic_ops \
-I$(PREFIX)/include/dyncall -I$(PREFIX)/include/linenoise -I$(PREFIX)/include/moar \
-I$(PREFIX)/include/sha1 -I$(PREFIX)/include/tinymt -I$(PREFIX)/include/libtommath \
-I$(PREFIX)/include/libuv -I$(PREFIX)/include $(M_PERL6_OPS_OBJ) $(M_PERL6_OPS_SRC)
$(CC) $(CFLAGS) -I$(PREFIX)/include/libatomic_ops \
-I$(PREFIX)/include/dyncall -I$(PREFIX)/include/linenoise -I$(PREFIX)/include/moar \
-I$(PREFIX)/include/sha1 -I$(PREFIX)/include/tinymt -I$(PREFIX)/include/libtommath \
-I$(PREFIX)/include/libuv -I$(PREFIX)/include $(M_PERL6_CONT_OBJ) $(M_PERL6_CONT_SRC)
$(LD) $(LDFLAGS) $(M_PERL6_OPS_DLL) $(M_PERL6_OPS_OBJ) $(M_PERL6_CONT_OBJ)
$(PERL6_ML_MOAR): src/Perl6/ModuleLoader.nqp src/vm/moar/ModuleLoaderVMConfig.nqp
$(PERL) $(M_GEN_CAT) src/vm/moar/ModuleLoaderVMConfig.nqp src/Perl6/ModuleLoader.nqp > src/gen/m-ModuleLoader.nqp
$(M_NQP) --target=mbc --output=$(PERL6_ML_MOAR) --encoding=utf8 \
src/gen/m-ModuleLoader.nqp
$(PERL6_W_MOAR): $(PERL6_ML_MOAR) src/Perl6/World.nqp
$(M_NQP) --target=mbc --output=$(PERL6_W_MOAR) --encoding=utf8 \
src/Perl6/World.nqp
$(PERL6_P_MOAR): src/Perl6/Pod.nqp
$(M_NQP) --target=mbc --output=$(PERL6_P_MOAR) --encoding=utf8 \
src/Perl6/Pod.nqp
$(PERL6_OPS_MOAR): src/vm/moar/Perl6/Ops.nqp $(M_PERL6_OPS_DLL)
$(M_NQP) --target=mbc --output=$(PERL6_OPS_MOAR) --encoding=utf8 \
src/vm/moar/Perl6/Ops.nqp
$(PERL6_A_MOAR): src/Perl6/Actions.nqp $(PERL6_P_MOAR) $(PERL6_OPS_MOAR)
$(M_NQP) --target=mbc --output=$(PERL6_A_MOAR) --encoding=utf8 \
src/Perl6/Actions.nqp
$(PERL6_G_MOAR): src/Perl6/Grammar.nqp $(PERL6_W_MOAR) $(PERL6_A_MOAR) $(PERL6_P_MOAR)
$(M_NQP) --target=mbc --output=$(PERL6_G_MOAR) --encoding=utf8 \
src/Perl6/Grammar.nqp
$(PERL6_O_MOAR): src/Perl6/Optimizer.nqp $(PERL6_OPS_MOAR)
$(M_NQP) --target=mbc --output=$(PERL6_O_MOAR) --encoding=utf8 \
src/Perl6/Optimizer.nqp
$(PERL6_C_MOAR): src/Perl6/Compiler.nqp $(PERL6_O_MOAR)
$(M_NQP) --target=mbc --output=$(PERL6_C_MOAR) --encoding=utf8 \
src/Perl6/Compiler.nqp
$(PERL6_MOAR): src/main.nqp $(PERL6_G_MOAR) $(PERL6_A_MOAR) $(PERL6_C_MOAR) $(PERL6_P_MOAR)
$(PERL) tools/build/gen-version.pl > src/gen/main-version.nqp
$(PERL) $(M_GEN_CAT) src/main.nqp src/gen/main-version.nqp > src/gen/m-main.nqp
$(M_NQP) --target=mbc --output=$(PERL6_MOAR) \
--vmlibs=$(M_PERL6_OPS_DLL)=Rakudo_ops_init src/gen/m-main.nqp
$(PERL6_M_MOAR): $(M_METAMODEL_SOURCES) $(PERL6_OPS_MOAR)
$(PERL) $(M_GEN_CAT) $(M_METAMODEL_SOURCES) > src/gen/m-Metamodel.nqp
$(M_NQP) --target=mbc --output=$(PERL6_M_MOAR) --encoding=utf8 \
src/gen/m-Metamodel.nqp
$(PERL6_B_MOAR): $(BOOTSTRAP_SOURCES) $(PERL6_M_MOAR)
$(PERL) $(M_GEN_CAT) $(BOOTSTRAP_SOURCES) > src/gen/m-BOOTSTRAP.nqp
$(M_NQP) --target=mbc --output=$(PERL6_B_MOAR) --encoding=utf8 \
--vmlibs=$(M_PERL6_OPS_DLL)=Rakudo_ops_init src/gen/m-BOOTSTRAP.nqp
$(SETTING_MOAR): $(PERL6_MOAR) $(PERL6_B_MOAR) $(M_CORE_SOURCES)
$(PERL) $(M_GEN_CAT) $(M_CORE_SOURCES) > src/gen/m-CORE.setting
@echo "The following step can take a long time, please be patient."
$(M_RUN_PERL6) --setting=NULL --optimize=3 --target=mbc --stagestats --output=$(SETTING_MOAR) src/gen/m-CORE.setting
$(M_RUNNER): tools/build/gen-moar-runner.pl $(PERL6_MOAR)
$(PERL) tools/build/gen-moar-runner.pl $(MOAR) .
## testing targets
blib/Test.moarvm: lib/Test.pm $(PERL6_MOAR) $(SETTING_MOAR) $(M_RUNNER)
./$(M_RUNNER) --target=mbc --output=blib/Test.moarvm lib/Test.pm
blib/lib.moarvm: lib/lib.pm6 $(PERL6_MOAR) $(SETTING_MOAR) $(M_RUNNER)
./$(M_RUNNER) --target=mbc --output=blib/lib.moarvm lib/lib.pm6
blib/Pod/To/Text.moarvm: lib/Pod/To/Text.pm $(PERL6_MOAR) $(SETTING_MOAR) $(M_RUNNER)
$(MKPATH) blib/Pod/To
./$(M_RUNNER) --target=mbc --output=blib/Pod/To/Text.moarvm lib/Pod/To/Text.pm
m-test : m-coretest
m-fulltest: m-coretest m-stresstest
m-coretest: m-all
$(HARNESS) t/00-parrot t/01-sanity
# Run the spectests that we know work.
m-spectest: m-testable t/spectest.data
$(M_HARNESS_WITH_FUDGE) --tests-from-file=t/spectest.data
m-spectest_full: m-testable
$(M_HARNESS_WITH_FUDGE) t/spec
m-quicktest: m-testable t/spectest.data
$(M_HARNESS_WITH_FUDGE) --tests-from-file=t/spectest.data --long=0
m-stresstest: m-testable t/spectest.data
$(M_HARNESS_WITH_FUDGE) --tests-from-file=t/spectest.data --stress=1
#spectest_smolder: rakudo_test_run.tar.gz
# ./perl6 -e "shell qqx[git log -1 --pretty=format:%H].fmt(qq[curl -F architecture= -F platform= -F revision=%s -F report_file=@rakudo_test_run.tar.gz -F username=parrot-autobot -F password=qa_rocks http://smolder.parrot.org/app/projects/process_add_report/5])"
m-testable : m-all spectest_checkout spectest_update
# Run the tests in t/localtest.data
m-localtest: m-all spectest_checkout t/localtest.data
@$(M_HARNESS_WITH_FUDGE) --tests-from-file=t/localtest.data
# Run the tests in t/localtest.data with a higher verbosity
m-localtest_loud: m-all spectest_checkout t/localtest.data
@$(M_HARNESS_WITH_FUDGE) --tests-from-file=t/localtest.data --verbosity=1
# Run many tests of your choice.
# make sometests TESTFILES=t/foo/bar
m-sometests: m-all
@$(M_HARNESS_WITH_FUDGE) $(TESTFILES)
m-install: m-all tools/build/create-moar-runner.pl
$(MKPATH) $(PREFIX)/bin
$(MKPATH) $(PERL6_LANG_DIR)/lib/Perl6
$(MKPATH) $(PERL6_LANG_DIR)/runtime
$(CP) $(M_PERL6_LANG_OUTPUT) $(PERL6_LANG_DIR)/lib/Perl6
$(CP) $(SETTING_MOAR) $(PERL6_LANG_DIR)/runtime
$(CP) $(PERL6_MOAR) $(PERL6_LANG_DIR)/runtime
$(CP) $(RUNTIME_MOAR) $(PERL6_LANG_DIR)/runtime
$(CP) blib/Test.moarvm $(PERL6_LANG_DIR)/lib
$(CP) blib/lib.moarvm $(PERL6_LANG_DIR)/lib
$(MKPATH) $(PERL6_LANG_DIR)/lib/Pod/To
$(CP) blib/Pod/To/Text.moarvm $(PERL6_LANG_DIR)/lib/Pod/To
$(PERL) tools/build/create-moar-runner.pl install $(PREFIX) $(PREFIX)
## cleaning
m-clean:
$(RM_F) $(M_CLEANUPS)
m-testclean:
# (end of section generated from tools/build/Makefile-Moar.in)
t/*/*.t t/*.t t/*/*/*.t: all
$(J_HARNESS_WITH_FUDGE) --verbosity=1 $@
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment