Author: coke
Date: Wed Nov 9 09:46:34 2005
New Revision: 9861
Modified:
trunk/config/gen/makefiles/tcl.in
trunk/languages/tcl/README
trunk/languages/tcl/tcl.pir_template
Log:
Use pbc_merge to generate a single PBC for the tcl library instead of
one per .PIR class.
Modified: trunk/config/gen/makefiles/tcl.in
==============================================================================
--- trunk/config/gen/makefiles/tcl.in (original)
+++ trunk/config/gen/makefiles/tcl.in Wed Nov 9 09:46:34 2005
@@ -1,6 +1,8 @@
RM_F = ${rm_f}
PERL = ${perl}
PARROT = ..${slash}..${slash}parrot${exe}
+PBC_MERGE = ..${slash}..${slash}pbc_merge${exe}
+
LIBPATH = lib
BUILD = $(PERL) ${build_dir}${slash}build_tools${slash}build_dynclasses.pl
DESTDIR = ${build_dir}${slash}runtime${slash}parrot${slash}dynext
@@ -83,23 +85,25 @@ lib${slash}variables.pir \
tcl.pir_template \
tcl.pl
-tcl.pbc: pmcs lib${slash}tcllib.pbc lib${slash}tclbinaryops.pbc
lib${slash}tclcommand.pbc lib${slash}tclcommandlist.pbc lib${slash}tclconst.pbc
lib${slash}tclfunc.pbc lib${slash}tclops.pbc lib${slash}tclvar.pbc
lib${slash}tclword.pbc tcl.pir
+tcl.pbc: pmcs lib/tcllib.pbc tcl.pir
$(PARROT) --output=tcl.pbc tcl.pir
+PBCS = lib${slash}tcllib_temp.pbc lib${slash}tclbinaryops.pbc
lib${slash}tclcommand.pbc lib${slash}tclcommandlist.pbc lib${slash}tclconst.pbc
lib${slash}tclfunc.pbc lib${slash}tclops.pbc lib${slash}tclvar.pbc
lib${slash}tclword.pbc
+
+lib/tcllib.pbc: $(PBCS)
+ $(PBC_MERGE) -o lib/tcllib.pbc $(PBCS)
+
pmcs:
@cd $(CLASSDIR) && $(BUILD) generate $(PMCS)
@cd $(CLASSDIR) && $(BUILD) compile $(PMCS)
@cd $(CLASSDIR) && $(BUILD) linklibs $(PMCS)
@cd $(CLASSDIR) && $(BUILD) copy "--destination=$(DESTDIR)" $(PMCS)
-$(DEPS) :
-
-
lib${slash}tcllib.pir: $(DEPS)
$(PERL) tcl.pl > lib${slash}tcllib.pir
-lib${slash}tcllib.pbc: lib${slash}tcllib.pir
- $(PARROT) --output=$(LIBPATH)${slash}tcllib.pbc
$(LIBPATH)${slash}tcllib.pir
+lib${slash}tcllib_temp.pbc: lib${slash}tcllib.pir
+ $(PARROT) --output=$(LIBPATH)${slash}tcllib_temp.pbc
$(LIBPATH)${slash}tcllib.pir
lib${slash}tclbinaryops.pbc: lib${slash}tclbinaryops.pir
$(PARROT) --output=$(LIBPATH)${slash}tclbinaryops.pbc
$(LIBPATH)${slash}tclbinaryops.pir
@@ -141,7 +145,7 @@ devtest:
cd t && $(PERL) -e 'use Test::Harness qw($$verbose runtests) ;
$$Test::Harness::verbose=1;runtests(glob("*.t"))' && cd ..
clean:
- $(RM_F) lib${slash}tcllib.pir tcl.pbc lib${slash}*.pbc
$(CLASSDIR)${slash}pmc_*.h $(CLASSDIR)${slash}*_group.h
$(CLASSDIR)${slash}*$(LOAD_EXT) $(CLASSDIR)${slash}*.dump
$(CLASSDIR)${slash}*.c $(CLASSDIR)${slash}*$(O)
+ $(RM_F) lib${slash}tcllib.pir $(PBCS) lib${slash}*.pbc
$(CLASSDIR)${slash}pmc_*.h $(CLASSDIR)${slash}*_group.h
$(CLASSDIR)${slash}*$(LOAD_EXT) $(CLASSDIR)${slash}*.dump
$(CLASSDIR)${slash}*.c $(CLASSDIR)${slash}*$(O)
distclean: clean
$(RM_F) Makefile
Modified: trunk/languages/tcl/README
==============================================================================
--- trunk/languages/tcl/README (original)
+++ trunk/languages/tcl/README Wed Nov 9 09:46:34 2005
@@ -5,9 +5,9 @@ A from scratch implementation of Tcl on
To build the tcl compiler, first build parrot and the parrot utilities.
From the top level parrot directory:
- perl Configure.pl && make world
+ perl Configure.pl && make
-Then, type C<make> in this directory. This will
+Then, type C<make> in I<this> directory. This will
generate the file C<tcl.pbc> which can then be used to run tcl programs.
../../parrot tcl.pbc foo.tcl
Modified: trunk/languages/tcl/tcl.pir_template
==============================================================================
--- trunk/languages/tcl/tcl.pir_template (original)
+++ trunk/languages/tcl/tcl.pir_template Wed Nov 9 09:46:34 2005
@@ -81,14 +81,14 @@ providing a compreg-compatible method.
.sub __prepare_lib :load :anon
# Load any dependant libraries.
- load_bytecode "languages/tcl/lib/tclbinaryops.pbc"
- load_bytecode "languages/tcl/lib/tclcommand.pbc"
- load_bytecode "languages/tcl/lib/tclcommandlist.pbc"
- load_bytecode "languages/tcl/lib/tclconst.pbc"
- load_bytecode "languages/tcl/lib/tclfunc.pbc"
- load_bytecode "languages/tcl/lib/tclops.pbc"
- load_bytecode "languages/tcl/lib/tclvar.pbc"
- load_bytecode "languages/tcl/lib/tclword.pbc"
+ #load_bytecode "languages/tcl/lib/tclbinaryops.pbc"
+ #load_bytecode "languages/tcl/lib/tclcommand.pbc"
+ #load_bytecode "languages/tcl/lib/tclcommandlist.pbc"
+ #load_bytecode "languages/tcl/lib/tclconst.pbc"
+ #load_bytecode "languages/tcl/lib/tclfunc.pbc"
+ #load_bytecode "languages/tcl/lib/tclops.pbc"
+ #load_bytecode "languages/tcl/lib/tclvar.pbc"
+ #load_bytecode "languages/tcl/lib/tclword.pbc"
load_bytecode "library/Data/Escape.pbc"
load_bytecode "Getopt/Long.pir"
#load_bytecode "library/PGE.pbc" # XXX Can't load this if Getopt/Long loaded.