Author: particle
Date: Wed Jan  7 10:06:12 2009
New Revision: 35153

Modified:
   trunk/languages/perl6/config/makefiles/root.in

Log:
[rakudo] rearrange makefile for maintainability

Modified: trunk/languages/perl6/config/makefiles/root.in
==============================================================================
--- trunk/languages/perl6/config/makefiles/root.in      (original)
+++ trunk/languages/perl6/config/makefiles/root.in      Wed Jan  7 10:06:12 2009
@@ -34,10 +34,6 @@
 #CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X 
compilation/linking
 #CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
 
-all: perl6.pbc
-
-xmas: perl6$(EXE)
-
 SOURCES = perl6.pir \
   src/gen_grammar.pir \
   src/gen_actions.pir \
@@ -106,21 +102,66 @@
   src/builtins/system.pir \
   src/builtins/traits.pir \
 
-$(PMC_DIR)/objectref.pmc : $(PMC_DIR)/objectref_pmc.template 
build/gen_objectref_pmc.pl
-       $(PERL) build/gen_objectref_pmc.pl $(PMC_DIR)/objectref_pmc.template \
-               $(PMC_DIR)/objectref.pmc
-
 PMCS        = perl6str objectref perl6scalar mutablevar perl6multisub
+
 PMC_SOURCES = $(PMC_DIR)/perl6str.pmc $(PMC_DIR)/objectref.pmc 
$(PMC_DIR)/perl6scalar.pmc \
               $(PMC_DIR)/mutablevar.pmc $(PMC_DIR)/perl6multisub.pmc
+
 PERL6_GROUP = $(PMC_DIR)/perl6_group$(LOAD_EXT)
 
-# targets for building a standalone perl6.
+CLEANUPS = \
+  perl6.pbc \
+  perl6.c \
+  *.manifest \
+  *.pdb \
+  perl6$(O) \
+  perl6$(EXE) \
+  installable_perl6$(EXE) \
+  Test.pir \
+  src/gen_*.pir \
+  $(PMC_DIR)/*.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 \
+  $(OPSDIR)/*.h \
+  $(OPSDIR)/*.c \
+  $(OPSDIR)/*$(O) \
+  $(OPSDIR)/*$(LOAD_EXT) \
+
+# 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
+HARNESS_WITH_FUDGE_JOBS = $(HARNESS_WITH_FUDGE) --jobs
+
+
+# the default target
+all: perl6.pbc
+
+##  targets for building a standalone perl6.
 # (We're not quite ready to make this a default target.)
 perl6$(EXE): perl6.pbc
        $(PBC_TO_EXE) perl6.pbc
 
-# the default target
+spectest_checkout :
+       svn co http:////svn.pugscode.org//pugs//t//spec t/spec
+
+spectest_update :
+       -cd t/spec && svn up
+
+testable : all Test.pir spectest_checkout spectest_update
+
+xmas: perl6$(EXE)
+
+
+##  supporting targets for perl6
+# the Perl 6 compiler
 perl6.pbc: $(PARROT) $(SOURCES) $(BUILTINS_PIR)
        $(PARROT) $(PARROT_ARGS) -o perl6.pbc perl6.pir
 
@@ -130,6 +171,10 @@
 Test.pir: Test.pm perl6.pbc
        $(PARROT) $(PARROT_ARGS) perl6.pbc --target=pir --output=Test.pir 
Test.pm
 
+$(PMC_DIR)/objectref.pmc : $(PMC_DIR)/objectref_pmc.template 
build/gen_objectref_pmc.pl
+       $(PERL) build/gen_objectref_pmc.pl $(PMC_DIR)/objectref_pmc.template \
+               $(PMC_DIR)/objectref.pmc
+
 src/gen_grammar.pir: $(PERL6GRAMMAR) src/parser/grammar.pg 
src/parser/grammar-oper.pg
        $(PARROT) $(PARROT_ARGS) $(PERL6GRAMMAR) \
            --output=src/gen_grammar.pir \
@@ -160,78 +205,19 @@
        @cd $(OPSDIR) && $(BUILD_DYNOPS) linklibs $(OPSLIB)
        @cd $(OPSDIR) && $(BUILD_DYNOPS) copy "--destination=$(PARROT_DYNEXT)" 
$(OPSLIB)
 
-# regenerate the Makefile
-Makefile: config/makefiles/root.in config/makefiles/utils.in
-       cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages 
--languages=perl6
-
-# This is a listing of all targets, that are 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 "  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 "Testing:"
-       @echo "  test:              Run coretest and codetest."
-       @echo "  coretest:          Run rakudo's core tests."
-       @echo "  codetest:          Run Parrot's code tests."
-       @echo "  testclean:         Clean up test results."
-       @echo "  spectest:          Run the tests of the official test suite 
that are known to pass."
-       @echo "  spectest_full:     Run all tests of the official test suite"
-       @echo "  localtest:         Run the official tests given in 
t/localtest.data."
-       @echo "  fulltest:          Run coretest, spectest, and codetest."
-       @echo ""
-       @echo "Cleaning:"
-       @echo "  clean:             Basic cleaning up."
-       @echo "  realclean:         Removes also files generated by 
'Configure.pl'."
-       @echo "  distclean:         Removes also anything built, in theory."
-       @echo ""
-       @echo "Misc:"
-       @echo "  help:              Print this help message."
-       @echo ""
-
-
-spectest_checkout :
-       svn co http:////svn.pugscode.org//pugs//t//spec t/spec
-
-spectest_update :
-       -cd t/spec && svn up
-
-testable : all Test.pir spectest_checkout spectest_update
+t/localtest.data:
+       $(PERL) -MExtUtils::Command -e test_f $@
 
 
-# test targets
+##  testing targets
 test    : coretest
 
-coretest: all
-       prove t/pmc
-       $(PERL) t/harness t/00-parrot t/01-sanity
-
 codetest:
        $(MAKE) $(BUILD_DIR) codetest
 
-# this target has nothing to do
-testclean:
-
-# 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
-HARNESS_WITH_FUDGE_JOBS = $(HARNESS_WITH_FUDGE) --jobs
-
-spectest_full: testable
-       $(HARNESS_WITH_FUDGE_JOBS) t/spec
-
-# 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
+coretest: all
+       prove t/pmc
+       $(PERL) t/harness t/00-parrot t/01-sanity
 
 fulltest: coretest spectest codetest
 
@@ -243,8 +229,16 @@
 localtest_loud: all Test.pir spectest_checkout t/localtest.data
        @$(HARNESS_WITH_FUDGE) --tests-from-file=t/localtest.data --verbosity=1
 
+# 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
+
 # Run many tests of your choise.
-# make somtests TESTFILES=t/foo/bar
+# make sometests TESTFILES=t/foo/bar
 sometests: all
        @$(HARNESS_WITH_FUDGE_JOBS) $(TESTFILES)
 
@@ -252,40 +246,55 @@
 t/*.t t/*/*.t t/*/*/*.t: all Test.pir
        @$(HARNESS_WITH_FUDGE) --verbosity=1 $@
 
-t/localtest.data:
-       $(PERL) -MExtUtils::Command -e test_f $@
-
-
-CLEANUPS = \
-  perl6.pbc \
-  perl6.c \
-  *.manifest \
-  *.pdb \
-  perl6$(O) \
-  perl6$(EXE) \
-  installable_perl6$(EXE) \
-  Test.pir \
-  src/gen_*.pir \
-  $(PMC_DIR)/*.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 \
-  $(OPSDIR)/*.h \
-  $(OPSDIR)/*.c \
-  $(OPSDIR)/*$(O) \
-  $(OPSDIR)/*$(LOAD_EXT) \
 
+##  cleaning
 clean:
        $(RM_F) $(CLEANUPS)
 
+distclean: realclean
+
 realclean: clean
        $(RM_F) src/utils/Makefile Makefile
 
-distclean: realclean
+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 "  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 "  xmas:              Christmas is when Perl 6 is released. Alias 
of perl6$(EXE)."
+       @echo ""
+       @echo "Testing:"
+       @echo "  test:              Run coretest and codetest."
+       @echo "  codetest:          Run Parrot's code tests."
+       @echo "  coretest:          Run rakudo's core tests."
+       @echo "  fulltest:          Run coretest, spectest, and codetest."
+       @echo "  localtest:         Run the official tests given in 
t/localtest.data."
+       @echo "  spectest:          Run the tests of the official test suite 
that are known to pass."
+       @echo "  spectest_full:     Run all tests of the official test suite"
+       @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:          Regenerate the Makefile."
+       @echo ""
+
+# regenerate the Makefile
+Makefile: config/makefiles/root.in config/makefiles/utils.in
+       cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages 
--languages=perl6
+

Reply via email to