This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Copyright (C) 2006-2010, The Perl Foundation. | |
| # $Id$ | |
| PARROT_ARGS = | |
| # values from parrot_config | |
| PARROT_BIN_DIR = /usr/local/bin | |
| PARROT_VERSION = /parrot/2.3.0-devel | |
| PARROT_INCLUDE_DIR = /usr/local/include$(PARROT_VERSION) | |
| PARROT_LIB_DIR = /usr/local/lib$(PARROT_VERSION) | |
| PARROT_SRC_DIR = /usr/local/src$(PARROT_VERSION) | |
| HAS_ICU = 1 | |
| CC = gcc-4.2 | |
| CFLAGS = -g -pipe -fno-common -I/usr/local/include -pipe -fno-common -I/opt/local/include -DHASATTRIBUTE_CONST -DHASATTRIBUTE_DEPRECATED -DHASATTRIBUTE_MALLOC -DHASATTRIBUTE_NONNULL -DHASATTRIBUTE_NORETURN -DHASATTRIBUTE_PURE -DHASATTRIBUTE_UNUSED -DHASATTRIBUTE_WARN_UNUSED_RESULT -DHAS_GETTEXT -g -falign-functions=16 -fvisibility=hidden -funit-at-a-time -maccumulate-outgoing-args -W -Wall -Waggregate-return -Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment -Wdisabled-optimization -Wdiv-by-zero -Wendif-labels -Wextra -Wformat -Wformat-extra-args -Wformat-nonliteral -Wformat-security -Wformat-y2k -Wimplicit -Wimport -Winit-self -Winline -Winvalid-pch -Wmissing-braces -Wmissing-field-initializers -Wno-missing-format-attribute -Wmissing-include-dirs -Wmultichar -Wpacked -Wparentheses -Wpointer-arith -Wpointer-sign -Wreturn-type -Wsequence-point -Wsign-compare -Wstrict-aliasing -Wstrict-aliasing=2 -Wswitch -Wswitch-default -Wtrigraphs -Wundef -Wno-unused -Wunknown-pragmas -Wvariadic-macros -Wwrite-strings -Wbad-function-cast -Wc++-compat -Wdeclaration-after-statement -Werror=declaration-after-statement -Wimplicit-function-declaration -Wimplicit-int -Wmain -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wnonnull -Wold-style-definition -Wstrict-prototypes | |
| EXE = | |
| LD = c++ | |
| LDFLAGS = -L/usr/local/lib -L/Users/masak/work/hobbies/parrot/blib/lib -L/opt/local/lib | |
| LD_LOAD_FLAGS = -undefined dynamic_lookup -bundle | |
| LIBPARROT = | |
| O = .o | |
| LOAD_EXT = .bundle | |
| PERL = perl | |
| CP = $(PERL) -MExtUtils::Command -e cp | |
| MV = $(PERL) -MExtUtils::Command -e mv | |
| RM_F = $(PERL) -MExtUtils::Command -e rm_f | |
| MKPATH = $(PERL) -MExtUtils::Command -e mkpath | |
| CHMOD = $(PERL) -MExtUtils::Command -e chmod | |
| 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 = $(PERL) $(PARROT_TOOLS_DIR)/build/ops2c.pl | |
| 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) -lm -lutil -lgmp -lreadline -lintl -lpthread -lm -L/opt/local/lib -licuuc -licudata -lpthread -lm | |
| # rakudo directories | |
| DYNEXT_DIR = dynext | |
| PMC_DIR = src/pmc | |
| OPS_DIR = src/ops | |
| PERL6_LANG_DIR = $(PARROT_LIB_DIR)/languages/perl6 | |
| MANDIR = /usr/local/man | |
| DOCDIR = /Users/masak/work/hobbies/parrot/share/doc | |
| # files we create | |
| PERL6_PBC = perl6.pbc | |
| PERL6_EXE = perl6$(EXE) | |
| PERL6_G = src/gen/perl6-grammar.pir | |
| PERL6_A = src/gen/perl6-actions.pir | |
| S1_PERL6_PBC = src/gen/$(PERL6_PBC) | |
| CORE_PIR = src/gen/core.pir | |
| GROUP = perl6_group | |
| OPS = perl6_ops | |
| DYNEXT_TARGET = $(DYNEXT_DIR)/$(GROUP)$(LOAD_EXT) | |
| DYNPMC = $(PMC_DIR)/$(GROUP)$(LOAD_EXT) | |
| DYNOPS = \ | |
| $(OPS_DIR)/$(OPS)$(LOAD_EXT) | |
| SOURCES = \ | |
| src/Perl6/Compiler.pir \ | |
| src/gen/builtins.pir \ | |
| src/gen/cheats.pir \ | |
| src/gen/signature_pm.pir \ | |
| src/gen/parameter_pm.pir \ | |
| src/gen/package_pm.pir \ | |
| src/gen/module_pm.pir \ | |
| src/gen/role_pm.pir \ | |
| src/gen/locator_pm.pir \ | |
| src/gen/versiondetectionactions_pm.pir \ | |
| src/gen/loader_pm.pir \ | |
| $(PERL6_G) \ | |
| $(PERL6_A) \ | |
| $(DYNEXT_TARGET) | |
| BUILTINS_PIR = \ | |
| src/glue/contextuals.pir \ | |
| src/glue/dispatch.pir \ | |
| src/glue/enum.pir \ | |
| src/glue/phasers.pir \ | |
| src/glue/role.pir \ | |
| src/glue/run.pir \ | |
| src/glue/types.pir \ | |
| src/builtins/Mu.pir \ | |
| src/gen/Attribute.pir \ | |
| src/metamodel/ClassHOW.pir \ | |
| src/metamodel/RoleHOW.pir \ | |
| src/gen/RoleToRoleApplier.pir \ | |
| src/gen/RoleToClassApplier.pir \ | |
| src/gen/RoleToInstanceApplier.pir \ | |
| src/metamodel/GrammarHOW.pir \ | |
| src/builtins/Any.pir \ | |
| src/builtins/Cool.pir \ | |
| src/builtins/Role.pir \ | |
| src/builtins/ConcreteRole.pir \ | |
| src/builtins/Abstraction.pir \ | |
| src/builtins/Positional.pir \ | |
| src/builtins/Iterable.pir \ | |
| src/builtins/Iterator.pir \ | |
| src/builtins/EMPTY.pir \ | |
| src/builtins/ParrotIter.pir \ | |
| src/builtins/List.pir \ | |
| src/builtins/Parcel.pir \ | |
| src/builtins/Bool.pir \ | |
| src/builtins/Int.pir \ | |
| src/builtins/Num.pir \ | |
| src/builtins/Str.pir \ | |
| src/builtins/Enum.pir \ | |
| src/builtins/Pair.pir \ | |
| src/builtins/Callable.pir \ | |
| src/builtins/Code.pir \ | |
| src/builtins/Multi.pir \ | |
| src/builtins/Block.pir \ | |
| src/builtins/Routine.pir \ | |
| src/builtins/Sub.pir \ | |
| src/builtins/Method.pir \ | |
| src/builtins/Submethod.pir \ | |
| src/builtins/Regex.pir \ | |
| src/builtins/Associative.pir \ | |
| src/builtins/Seq.pir \ | |
| src/builtins/SeqIter.pir \ | |
| src/builtins/Array.pir \ | |
| src/builtins/Proxy.pir \ | |
| src/builtins/ContainerDeclarand.pir \ | |
| src/builtins/Exception.pir \ | |
| src/builtins/Failure.pir \ | |
| src/builtins/Signature.pir \ | |
| src/builtins/Junction.pir \ | |
| src/builtins/Capture.pir \ | |
| src/builtins/assign.pir \ | |
| src/builtins/metaops.pir \ | |
| src/builtins/control.pir \ | |
| # Make sure parrot cheats are last in this list. | |
| # First parrot cheat must be attriter.pir (to get .HLL), | |
| # last cheat must be register.pir (to register Parrot | |
| # classes). | |
| CHEATS_PIR = \ | |
| src/cheats/constants.pir \ | |
| src/cheats/perl6-compiler.pir \ | |
| src/cheats/autoincrement.pir \ | |
| src/cheats/fail.pir \ | |
| src/cheats/object.pir \ | |
| src/cheats/int-ops.pir \ | |
| src/cheats/num-ops.pir \ | |
| src/cheats/str-ops.pir \ | |
| src/cheats/relops.pir \ | |
| src/cheats/mapiterator.pir \ | |
| src/cheats/gatheriterator.pir \ | |
| src/cheats/only_infix_redispatcher.pir \ | |
| src/cheats/import.pir \ | |
| src/cheats/want-caller-side-callsig.pir \ | |
| src/cheats/parrot-role-quirks.pir \ | |
| src/cheats/parrot/attriter.pir \ | |
| src/cheats/parrot/Protoobject.pir \ | |
| src/cheats/parrot/P6role.pir \ | |
| src/gen/uprop-cheats.pir \ | |
| src/cheats/parrot/register.pir \ | |
| CORE_SOURCES = \ | |
| src/core/traits.pm \ | |
| src/core/operators.pm \ | |
| src/glue/subset.pm \ | |
| src/cheats/trait-export.pm \ | |
| src/cheats/num.pm \ | |
| src/cheats/eval.pm \ | |
| src/core/Associative.pm \ | |
| src/core/Mu.pm \ | |
| src/core/Bool.pm \ | |
| src/core/Parcel.pm \ | |
| src/core/Any.pm \ | |
| src/core/Any-list.pm \ | |
| src/core/Cool-num.pm \ | |
| src/core/Cool-str.pm \ | |
| src/core/Seq.pm \ | |
| src/core/Set.pm \ | |
| src/core/Array.pm \ | |
| src/core/Numeric.pm \ | |
| src/core/Real.pm \ | |
| src/core/Int.pm \ | |
| src/core/Iterable.pm \ | |
| src/core/Iterator.pm \ | |
| src/core/Num.pm \ | |
| src/core/Rat.pm \ | |
| src/core/Complex.pm \ | |
| src/core/Str.pm \ | |
| src/core/Whatever.pm \ | |
| src/core/Pair.pm \ | |
| src/core/Range.pm \ | |
| src/core/RangeIter.pm \ | |
| src/core/metaops.pm \ | |
| src/core/EnumMap.pm \ | |
| src/core/Hash.pm \ | |
| src/core/Enum.pm \ | |
| src/core/IO.pm \ | |
| src/core/IO/Socket.pm \ | |
| src/core/IO/Socket/INET.pm \ | |
| src/core/Parameter.pm \ | |
| src/core/Signature.pm \ | |
| src/core/Block.pm \ | |
| src/core/Regex.pm \ | |
| src/core/Junction.pm \ | |
| src/core/Grammar.pm \ | |
| src/core/Substitution.pm \ | |
| src/core/system.pm \ | |
| src/cheats/match-bool.pm \ | |
| src/cheats/setup-io.pm \ | |
| src/core/Date.pm \ | |
| src/core/Temporal.pm \ | |
| src/core/YOU_ARE_HERE.pm \ | |
| # SETTING = \ | |
| # src/setting/traits.pm \ | |
| # src/setting/Any-list.pm \ | |
| # src/setting/Any-num.pm \ | |
| # src/setting/Any-str.pm \ | |
| # src/setting/Array.pm \ | |
| # src/setting/Attribute.pm \ | |
| # src/setting/Block.pm \ | |
| # src/setting/Bool.pm \ | |
| # src/setting/Buf.pm \ | |
| # src/setting/Code.pm \ | |
| # src/setting/Complex.pm \ | |
| # src/setting/Hash.pm \ | |
| # src/setting/Rat.pm \ | |
| # src/setting/Int.pm \ | |
| # src/setting/IO.pm \ | |
| # src/setting/IO/Socket.pm \ | |
| # src/setting/IO/Socket/INET.pm \ | |
| # src/setting/Junction.pm \ | |
| # src/setting/List.pm \ | |
| # src/setting/Mapping.pm \ | |
| # src/setting/Match.pm \ | |
| # src/setting/Num.pm \ | |
| # src/setting/NYI.pm \ | |
| # src/setting/Object.pm \ | |
| # src/setting/Operators.pm \ | |
| # src/setting/Pair.pm \ | |
| # src/setting/Parameter.pm \ | |
| # src/setting/Range.pm \ | |
| # src/setting/Signature.pm \ | |
| # src/setting/Str.pm \ | |
| # src/setting/Temporal.pm \ | |
| # src/setting/Whatever.pm \ | |
| PMC_SOURCES = \ | |
| $(PMC_DIR)/perl6str.pmc $(PMC_DIR)/objectref.pmc \ | |
| $(PMC_DIR)/perl6scalar.pmc $(PMC_DIR)/mutablevar.pmc \ | |
| $(PMC_DIR)/perl6multisub.pmc $(PMC_DIR)/p6invocation.pmc \ | |
| $(PMC_DIR)/p6opaque.pmc $(PMC_DIR)/p6role.pmc \ | |
| $(PMC_DIR)/p6lowlevelsig.pmc | |
| OPS_SOURCE = perl6.ops | |
| DOCS = README CREDITS LICENSE docs/* | |
| CLEANUPS = \ | |
| *.manifest \ | |
| *.pdb \ | |
| $(PERL6_PBC) \ | |
| $(PERL6_EXE) \ | |
| perl6.c \ | |
| perl6$(O) \ | |
| Test.pir \ | |
| $(DYNEXT_DIR)/*$(LOAD_EXT) \ | |
| src/gen/core.pm \ | |
| src/gen/*.pir \ | |
| src/gen/*.pbc \ | |
| src/gen/*.pm \ | |
| $(PMC_DIR)/pmc_*.h \ | |
| $(PMC_DIR)/*.c \ | |
| $(PMC_DIR)/*.dump \ | |
| $(PMC_DIR)/*$(O) \ | |
| $(PMC_DIR)/*$(LOAD_EXT) \ | |
| $(PMC_DIR)/*.exp \ | |
| $(PMC_DIR)/*.ilk \ | |
| $(PMC_DIR)/*.manifest \ | |
| $(PMC_DIR)/*.pdb \ | |
| $(PMC_DIR)/*.lib \ | |
| $(PMC_DIR)/objectref.pmc \ | |
| $(OPS_DIR)/*.h \ | |
| $(OPS_DIR)/*.c \ | |
| $(OPS_DIR)/*$(O) \ | |
| $(OPS_DIR)/*$(LOAD_EXT) \ | |
| binder/*$(O) \ | |
| # NOTE: eventually, we should remove --keep-exit-code and --fudge | |
| # as the goal is that all tests must pass without fudge | |
| HARNESS_WITH_FUDGE = $(PERL) t/harness --fudge --keep-exit-code --icu=$(HAS_ICU) | |
| HARNESS_WITH_FUDGE_JOBS = $(HARNESS_WITH_FUDGE) --jobs | |
| STAGESTATS = | |
| # the default target | |
| all: $(PERL6_EXE) Test.pir | |
| # the install target | |
| install: all | |
| $(MKPATH) $(DESTDIR)$(PERL6_LANG_DIR)/lib | |
| $(CP) perl6.pbc $(DESTDIR)$(PERL6_LANG_DIR) | |
| $(CP) Test.pm $(DESTDIR)$(PERL6_LANG_DIR)/lib | |
| $(CP) Test.pir $(DESTDIR)$(PERL6_LANG_DIR)/lib | |
| $(CP) lib/*.pm $(DESTDIR)$(PERL6_LANG_DIR)/lib | |
| $(MKPATH) $(DESTDIR)$(PARROT_LIB_DIR)/dynext | |
| $(CP) $(DYNPMC) $(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 | |
| $(CP) $(DOCS) $(DESTDIR)$(DOCDIR)/rakudo | |
| $(MKPATH) $(DESTDIR)$(MANDIR)/man1 | |
| $(POD2MAN) docs/running.pod > $(DESTDIR)$(MANDIR)/man1/perl6.1 | |
| $(POD2MAN) docs/running.pod > $(DESTDIR)$(MANDIR)/man1/rakudo.1 | |
| xmas: $(PERL6_EXE) | |
| ## targets for building a standalone perl6. | |
| $(PERL6_EXE): $(PERL6_PBC) | |
| $(PBC_TO_EXE) $(PERL6_PBC) | |
| # the complete compiler, including core/setting | |
| $(PERL6_PBC): $(S1_PERL6_PBC) src/gen/core.pm | |
| $(PARROT) $(PARROT_ARGS) $(S1_PERL6_PBC) --target=pir $(STAGESTATS) \ | |
| src/gen/core.pm > $(CORE_PIR) | |
| $(PARROT) $(PARROT_ARGS) -o $(PERL6_PBC) src/Perl6/Compiler.pir | |
| # the stage-1 compiler | |
| $(S1_PERL6_PBC): $(PARROT) $(SOURCES) | |
| $(PERL) -e "" > $(CORE_PIR) | |
| $(PARROT) $(PARROT_ARGS) -o $(S1_PERL6_PBC) src/Perl6/Compiler.pir | |
| $(PERL6_G): $(NQP_EXE) src/Perl6/Grammar.pm | |
| $(NQP_EXE) --target=pir --output=$(PERL6_G) --encoding=utf8 \ | |
| src/Perl6/Grammar.pm | |
| $(PERL6_A): $(NQP_EXE) src/Perl6/Actions.pm | |
| $(NQP_EXE) --target=pir --output=$(PERL6_A) --encoding=utf8 \ | |
| src/Perl6/Actions.pm | |
| src/gen/signature_pm.pir: $(PARROT) $(NQP_PBC) src/Perl6/Compiler/Signature.pm | |
| $(NQP_EXE) --output=src/gen/signature_pm.pir --encoding=utf8 \ | |
| --target=pir src/Perl6/Compiler/Signature.pm | |
| src/gen/parameter_pm.pir: $(PARROT) $(NQP_PBC) src/Perl6/Compiler/Parameter.pm | |
| $(NQP_EXE) --output=src/gen/parameter_pm.pir --encoding=utf8 \ | |
| --target=pir src/Perl6/Compiler/Parameter.pm | |
| src/gen/package_pm.pir: $(PARROT) $(NQP_PBC) src/Perl6/Compiler/Package.pm | |
| $(NQP_EXE) --output=src/gen/package_pm.pir --encoding=utf8 \ | |
| --target=pir src/Perl6/Compiler/Package.pm | |
| src/gen/module_pm.pir: $(PARROT) $(NQP_PBC) src/Perl6/Compiler/Module.pm | |
| $(NQP_EXE) --output=src/gen/module_pm.pir --encoding=utf8 \ | |
| --target=pir src/Perl6/Compiler/Module.pm | |
| src/gen/role_pm.pir: $(PARROT) $(NQP_PBC) src/Perl6/Compiler/Role.pm | |
| $(NQP_EXE) --output=src/gen/role_pm.pir --encoding=utf8 \ | |
| --target=pir src/Perl6/Compiler/Role.pm | |
| src/gen/RoleToClassApplier.pir: $(PARROT) $(NQP_PBC) src/metamodel/RoleToClassApplier.nqp | |
| $(NQP_EXE) --output=src/gen/RoleToClassApplier.pir --encoding=utf8 \ | |
| --target=pir src/metamodel/RoleToClassApplier.nqp | |
| src/gen/RoleToRoleApplier.pir: $(PARROT) $(NQP_PBC) src/metamodel/RoleToRoleApplier.nqp | |
| $(NQP_EXE) --output=src/gen/RoleToRoleApplier.pir --encoding=utf8 \ | |
| --target=pir src/metamodel/RoleToRoleApplier.nqp | |
| src/gen/RoleToInstanceApplier.pir: $(PARROT) $(NQP_PBC) src/metamodel/RoleToInstanceApplier.nqp | |
| $(NQP_EXE) --output=src/gen/RoleToInstanceApplier.pir --encoding=utf8 \ | |
| --target=pir src/metamodel/RoleToInstanceApplier.nqp | |
| src/gen/Attribute.pir: $(PARROT) $(NQP_PBC) src/metamodel/Attribute.nqp | |
| $(NQP_EXE) --output=src/gen/Attribute.pir --encoding=utf8 \ | |
| --target=pir src/metamodel/Attribute.nqp | |
| src/gen/locator_pm.pir: $(PARROT) $(NQP_PBC) src/Perl6/Module/Locator.pm | |
| $(NQP_EXE) --output=src/gen/locator_pm.pir --encoding=utf8 \ | |
| --target=pir src/Perl6/Module/Locator.pm | |
| src/gen/versiondetectionactions_pm.pir: $(PARROT) $(NQP_PBC) src/Perl6/Module/VersionDetectionActions.pm | |
| $(NQP_EXE) --output=src/gen/versiondetectionactions_pm.pir --encoding=utf8 \ | |
| --target=pir src/Perl6/Module/VersionDetectionActions.pm | |
| src/gen/loader_pm.pir: $(PARROT) $(NQP_PBC) src/Perl6/Module/Loader.pm | |
| $(NQP_EXE) --output=src/gen/loader_pm.pir --encoding=utf8 \ | |
| --target=pir src/Perl6/Module/Loader.pm | |
| src/gen/builtins.pir: build/gen_builtins_pir.pl $(BUILTINS_PIR) | |
| $(PERL) build/gen_builtins_pir.pl $(BUILTINS_PIR) > src/gen/builtins.pir | |
| src/gen/cheats.pir: build/gen_cheats_pir.pl $(CHEATS_PIR) | |
| $(PERL) build/gen_cheats_pir.pl $(CHEATS_PIR) > src/gen/cheats.pir | |
| src/gen/core.pm: build/gen_core_pm.pl $(CORE_SOURCES) | |
| $(PERL) build/gen_core_pm.pl $(CORE_SOURCES) > src/gen/core.pm | |
| src/gen/uprop-cheats.pir: build/gen_uprop_pir.pl | |
| $(PERL) build/gen_uprop_pir.pl > src/gen/uprop-cheats.pir | |
| #src/gen_metaop.pir: build/gen_metaop_pir.pl | |
| # $(PERL) build/gen_metaop_pir.pl > src/gen_metaop.pir | |
| # | |
| #src/gen_junction.pir: build/gen_junction_pir.pl | |
| # $(PERL) build/gen_junction_pir.pl > src/gen_junction.pir | |
| # | |
| #src/gen_whatever.pir: build/gen_whatever_pir.pl | |
| # $(PERL) build/gen_whatever_pir.pl > src/gen_whatever.pir | |
| # | |
| #src/gen_setting.pm: build/gen_setting_pm.pl $(SETTING) | |
| # $(PERL) build/gen_setting_pm.pl $(SETTING) > src/gen_setting.pm | |
| $(PMC_DIR)/objectref.pmc : $(PMC_DIR)/objectref_pmc.template build/gen_objectref_pmc.pl | |
| $(PERL) -I$(PARROT_PERL_LIB) build/gen_objectref_pmc.pl $(PMC_DIR)/objectref_pmc.template \ | |
| $(PMC_DIR)/objectref.pmc | |
| ## testing targets | |
| Test.pir: Test.pm perl6.pbc | |
| $(PARROT) $(PARROT_ARGS) perl6.pbc $(STAGESTATS) --target=pir --output=Test.pir Test.pm | |
| test : coretest | |
| fulltest: coretest spectest | |
| coretest: Test.pir $(PERL6_EXE) | |
| $(PERL) t/harness t/00-parrot t/01-sanity | |
| # Run the spectests that we know work. | |
| spectest_regression: spectest | |
| spectest: testable t/spectest.data | |
| $(HARNESS_WITH_FUDGE_JOBS) --tests-from-file=t/spectest.data | |
| spectest_full: testable | |
| $(HARNESS_WITH_FUDGE_JOBS) t/spec | |
| spectest_checkout : t/spec | |
| t/spec : | |
| svn co "http://svn.pugscode.org/pugs/t/spec" t/spec | |
| spectest_update : | |
| -cd t/spec && svn up | |
| rakudo_test_run.tar.gz: testable t/spectest.data | |
| - $(HARNESS_WITH_FUDGE_JOBS) --tests-from-file=t/spectest.data --archive rakudo_test_run.tar.gz --parrot_revision 46529 | |
| spectest_smolder: rakudo_test_run.tar.gz | |
| curl -F architecture=i386 -F platform=darwin -F revision=`git log -1 --pretty=format:%H` -F report_file=@rakudo_test_run.tar.gz http://smolder.plusthree.com/app/public_projects/process_add_report/18 | |
| testable : $(PERL6_EXE) Test.pir spectest_checkout spectest_update | |
| t/localtest.data: | |
| $(PERL) -MExtUtils::Command -e test_f $@ | |
| # Run the tests in t/localtest.data | |
| localtest: all Test.pir spectest_checkout t/localtest.data | |
| @$(HARNESS_WITH_FUDGE_JOBS) --tests-from-file=t/localtest.data | |
| # Run the tests in t/localtest.data with a higher verbosity | |
| localtest_loud: all Test.pir spectest_checkout t/localtest.data | |
| @$(HARNESS_WITH_FUDGE) --tests-from-file=t/localtest.data --verbosity=1 | |
| # Run many tests of your choise. | |
| # make sometests TESTFILES=t/foo/bar | |
| sometests: all | |
| @$(HARNESS_WITH_FUDGE_JOBS) $(TESTFILES) | |
| # Run a single test | |
| t/*.t t/*/*.t t/*/*/*.t: all Test.pir spectest_checkout | |
| @$(HARNESS_WITH_FUDGE) --verbosity=1 $@ | |
| ## 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 " 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 svn checkout of official test suite." | |
| @echo " spectest_update: Performs svn 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 " testclean: Clean up test results." | |
| @echo "" | |
| @echo "Misc:" | |
| @echo " help: Print this help message." | |
| @echo "" | |
| # Makefile: build/Makefile.in build/PARROT_REVISION $(PARROT) Configure.pl | |
| # @echo "" | |
| # @echo "warning: Makefile is out of date... re-run Configure.pl" | |
| # @echo "" | |
| # | |
| 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 | |
| rm -rf t/spec | |
| svn export "http://svn.pugscode.org/pugs/t/spec" t/spec | |
| find t/spec -type f >>MANIFEST | |
| sort -u -o MANIFEST MANIFEST | |
| release: manifest | |
| [ -n "$(VERSION)" ] || ( echo "\nTry 'make release VERSION=yyyymm'\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_TARGET): $(DYNPMC) $(DYNOPS) | |
| $(CP) $(DYNPMC) $(DYNOPS) $(DYNEXT_DIR) | |
| $(CHMOD) 755 $(DYNEXT_TARGET) | |
| $(CHMOD) 755 $(DYNEXT_DIR)/$(OPS)$(LOAD_EXT) | |
| # (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. | |
| $(DYNPMC): $(PMC_SOURCES) src/binder/bind.c src/binder/bind.h | |
| $(PMC2C) --no-lines --dump $(PMC2C_INCLUDES) src/pmc/objectref.pmc | |
| $(PMC2C) --no-lines --dump $(PMC2C_INCLUDES) $(PMC_SOURCES) | |
| $(PMC2C) --no-lines --c $(PMC2C_INCLUDES) $(PMC_SOURCES) | |
| $(PMC2C) --no-lines --library $(GROUP) --c $(PMC_SOURCES) | |
| $(CC) -c -o $(GROUP)$(O) -I$(PMC_DIR) $(CINCLUDES) $(CFLAGS) $(GROUP).c | |
| cd $(PMC_DIR) && $(CC) -c $(CINCLUDES) $(CFLAGS) *.c | |
| cd src/binder && $(CC) -c -o bind$(O) -I../../$(PMC_DIR) $(CINCLUDES) $(CFLAGS) bind.c | |
| $(LD) -o $(DYNPMC) $(GROUP)$(O) src/pmc/*$(O) src/binder/bind$(O) $(LINKARGS) | |
| $(OPS_DIR)/$(OPS)$(LOAD_EXT): $(OPS_DIR)/$(OPS_SOURCE) src/binder/bind.h $(DYNPMC) | |
| cd $(OPS_DIR) && $(OPS2C) C --dynamic $(OPS_SOURCE) | |
| cd $(OPS_DIR) && $(CC) -c -o $(OPS)$(O) $(CINCLUDES) $(CFLAGS) $(OPS).c | |
| cd $(OPS_DIR) && $(LD) -o $(OPS)$(LOAD_EXT) $(OPS)$(O) $(LINKARGS) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment