develooper Front page | perl.cvs.parrot | Postings from December 2008

[svn:parrot] r34716 - in branches/pdd30install_stage3: . config/auto config/auto/cpu/i386 config/auto/cpu/ppc config/auto/cpu/sun4 config/gen config/gen/makefiles lib/Parrot lib/Parrot/Configure lib/Parrot/Docs lib/Parrot/Ops2c t/tools tools/build tools/d

From:
rurban
Date:
December 31, 2008 10:42
Subject:
[svn:parrot] r34716 - in branches/pdd30install_stage3: . config/auto config/auto/cpu/i386 config/auto/cpu/ppc config/auto/cpu/sun4 config/gen config/gen/makefiles lib/Parrot lib/Parrot/Configure lib/Parrot/Docs lib/Parrot/Ops2c t/tools tools/build tools/d
Message ID:
20081231184144.1E0F6CB9FA@x12.develooper.com
Author: rurban
Date: Wed Dec 31 10:41:41 2008
New Revision: 34716

Added:
   branches/pdd30install_stage3/MANIFEST.generated.in   (contents, props changed)
   branches/pdd30install_stage3/tools/build/addgenerated.pl
Modified:
   branches/pdd30install_stage3/Configure.pl
   branches/pdd30install_stage3/config/auto/cpu/i386/auto.pm
   branches/pdd30install_stage3/config/auto/cpu/ppc/auto.pm
   branches/pdd30install_stage3/config/auto/cpu/sun4/auto.pm
   branches/pdd30install_stage3/config/auto/pod2man.pm   (contents, props changed)
   branches/pdd30install_stage3/config/auto/signal.pm
   branches/pdd30install_stage3/config/gen/call_list.pm
   branches/pdd30install_stage3/config/gen/config_h.pm
   branches/pdd30install_stage3/config/gen/config_pm.pm
   branches/pdd30install_stage3/config/gen/core_pmcs.pm
   branches/pdd30install_stage3/config/gen/makefiles.pm
   branches/pdd30install_stage3/config/gen/makefiles/docs.in
   branches/pdd30install_stage3/config/gen/makefiles/dynoplibs.in
   branches/pdd30install_stage3/config/gen/makefiles/dynoplibs_pl.in
   branches/pdd30install_stage3/config/gen/makefiles/dynpmc.in
   branches/pdd30install_stage3/config/gen/makefiles/dynpmc_pl.in
   branches/pdd30install_stage3/config/gen/makefiles/editor.in
   branches/pdd30install_stage3/config/gen/makefiles/ext.in
   branches/pdd30install_stage3/config/gen/makefiles/json.in
   branches/pdd30install_stage3/config/gen/makefiles/nqp.in
   branches/pdd30install_stage3/config/gen/makefiles/root.in
   branches/pdd30install_stage3/config/gen/makefiles/tge.in
   branches/pdd30install_stage3/config/gen/opengl.pm
   branches/pdd30install_stage3/config/gen/parrot_include.pm
   branches/pdd30install_stage3/config/gen/platform.pm
   branches/pdd30install_stage3/lib/Parrot/BuildUtil.pm
   branches/pdd30install_stage3/lib/Parrot/Configure/Compiler.pm
   branches/pdd30install_stage3/lib/Parrot/Docs/POD2HTML.pm
   branches/pdd30install_stage3/lib/Parrot/Ops2c/Utils.pm
   branches/pdd30install_stage3/lib/Parrot/Ops2pm.pm
   branches/pdd30install_stage3/t/tools/parrot_config.t   (contents, props changed)
   branches/pdd30install_stage3/t/tools/pbc_disassemble.t   (contents, props changed)
   branches/pdd30install_stage3/t/tools/pbc_info.t   (contents, props changed)
   branches/pdd30install_stage3/t/tools/pdump.t   (contents, props changed)
   branches/pdd30install_stage3/tools/build/c2str.pl
   branches/pdd30install_stage3/tools/build/headerizer.pl
   branches/pdd30install_stage3/tools/build/jit2c.pl
   branches/pdd30install_stage3/tools/build/vtable_extend.pl
   branches/pdd30install_stage3/tools/build/vtable_h.pl
   branches/pdd30install_stage3/tools/dev/install_files.pl
   branches/pdd30install_stage3/tools/docs/ops_summary.pl

Log:
There are some files not yet tracked, but I leave them as it is.
Tested ok on cygwin, debian and freebsd.

Track all make generated files in MANIFEST.generated,
those to be installed, and those generated src files not
tracked by make clean wildcards.
replaces MANIFEST.generated by MANIFEST.generated.in
added tools/build/addgenerated.pl
use addgenerated and Parrot::BuildUtil::add_to_generated()



Modified: branches/pdd30install_stage3/Configure.pl
==============================================================================
--- branches/pdd30install_stage3/Configure.pl	(original)
+++ branches/pdd30install_stage3/Configure.pl	Wed Dec 31 10:41:41 2008
@@ -69,6 +69,8 @@
 # Log files created by Configure.pl in MANIFEST.configure.generated
 $conf->{active_configuration} = 1;
 unlink 'MANIFEST.configure.generated';
+use File::Copy;
+copy('MANIFEST.generated.in', 'MANIFEST.generated');
 
 # Run the actual steps from Parrot::Configure
 $conf->runsteps or exit(1);

Added: branches/pdd30install_stage3/MANIFEST.generated.in
==============================================================================
--- (empty file)
+++ branches/pdd30install_stage3/MANIFEST.generated.in	Wed Dec 31 10:41:41 2008
@@ -0,0 +1,22 @@
+# $Id$
+# See tools/dev/install_files.pl for documentation on the
+# format of this file.
+# The first part is still hand-picked, the rest autogenerated.
+# Please re-sort this file after *EVERY* modification
+compilers/tge/tgc.pir                             [main]
+# TODO: these config/* belong to MANIFEST.configure.generated
+config/gen/platform/ansi/dl.c                     [main]
+config/gen/platform/ansi/time.c                   [main]
+config/gen/platform/darwin/memalign.c             [main]
+config/gen/platform/generic/stat.c                [main]
+config/gen/platform/win32/stat.c                  [main]
+include/parrot/exec_dep.h                         [main]include
+parrot.pc                                         [main]pkgconfig
+runtime/parrot/dynext/libglutcb.bundle            [library]
+runtime/parrot/dynext/libglutcb.dll               [library]
+runtime/parrot/dynext/libglutcb.dylib             [library]
+runtime/parrot/dynext/libglutcb.so                [library]
+src/glut_callbacks.c                              [main]
+src/jit_emit.h                                    [main]include
+tools/build/dynpmc.pl                             [devel]
+# pre-built stuff ends here

Modified: branches/pdd30install_stage3/config/auto/cpu/i386/auto.pm
==============================================================================
--- branches/pdd30install_stage3/config/auto/cpu/i386/auto.pm	(original)
+++ branches/pdd30install_stage3/config/auto/cpu/i386/auto.pm	Wed Dec 31 10:41:41 2008
@@ -70,6 +70,7 @@
     );
     print " (\U$suffix) " if ($verbose);
     $conf->data->add( ' ', TEMP_generated => $path_f );
+    $conf->append_configure_log($path_f);
 }
 
 1;

Modified: branches/pdd30install_stage3/config/auto/cpu/ppc/auto.pm
==============================================================================
--- branches/pdd30install_stage3/config/auto/cpu/ppc/auto.pm	(original)
+++ branches/pdd30install_stage3/config/auto/cpu/ppc/auto.pm	Wed Dec 31 10:41:41 2008
@@ -39,6 +39,7 @@
                 );
                 print " (\U$suffix) " if ($verbose);
                 $conf->data->add( ' ', TEMP_generated => $f );
+                $conf->append_configure_log($f);
             }
         }
         $conf->cc_clean();

Modified: branches/pdd30install_stage3/config/auto/cpu/sun4/auto.pm
==============================================================================
--- branches/pdd30install_stage3/config/auto/cpu/sun4/auto.pm	(original)
+++ branches/pdd30install_stage3/config/auto/cpu/sun4/auto.pm	Wed Dec 31 10:41:41 2008
@@ -62,6 +62,7 @@
                 );
                 print " (\U$suffix) " if ($verbose);
                 $conf->data->add( ' ', TEMP_atomic_o => 'src/atomic/sparc_v9.o' );
+                $conf->append_configure_log($f);
             }
         }
         $conf->cc_clean();

Modified: branches/pdd30install_stage3/config/auto/pod2man.pm
==============================================================================
--- branches/pdd30install_stage3/config/auto/pod2man.pm	(original)
+++ branches/pdd30install_stage3/config/auto/pod2man.pm	Wed Dec 31 10:41:41 2008
@@ -1,5 +1,5 @@
 # Copyright (C) 2008, The Perl Foundation.
-# $Id: pod2man.pm 30367 2008-08-20 02:21:59Z rurban $
+# $Id$
 
 =head1 NAME
 

Modified: branches/pdd30install_stage3/config/auto/signal.pm
==============================================================================
--- branches/pdd30install_stage3/config/auto/signal.pm	(original)
+++ branches/pdd30install_stage3/config/auto/signal.pm	Wed Dec 31 10:41:41 2008
@@ -19,7 +19,7 @@
 use base qw(Parrot::Configure::Step);
 
 use Parrot::Configure::Utils ':auto';
-
+use Parrot::BuildUtil;
 
 sub _init {
     my $self = shift;
@@ -65,6 +65,7 @@
     # now generate signal constants
     my $signalpasm = "runtime/parrot/include/signal.pasm";
     _print_signalpasm($conf, $signalpasm);
+    add_to_generated($signalpasm, "[main]");
 
     return 1;
 }

Modified: branches/pdd30install_stage3/config/gen/call_list.pm
==============================================================================
--- branches/pdd30install_stage3/config/gen/call_list.pm	(original)
+++ branches/pdd30install_stage3/config/gen/call_list.pm	Wed Dec 31 10:41:41 2008
@@ -27,7 +27,7 @@
 use base qw(Parrot::Configure::Step);
 
 use Parrot::Configure::Utils '_slurp';
-
+use Parrot::BuildUtil;
 
 sub _init {
     my $self = shift;
@@ -66,7 +66,7 @@
     print {$combined} $text_file_coda;
 
     $conf->append_configure_log($combined_file);
-
+    add_to_generated($combined_file, "[devel]", "doc");
     return 1;
 }
 

Modified: branches/pdd30install_stage3/config/gen/config_h.pm
==============================================================================
--- branches/pdd30install_stage3/config/gen/config_h.pm	(original)
+++ branches/pdd30install_stage3/config/gen/config_h.pm	Wed Dec 31 10:41:41 2008
@@ -22,7 +22,7 @@
 use base qw(Parrot::Configure::Step);
 
 use Parrot::Configure::Utils ':gen';
-
+use Parrot::BuildUtil;
 
 sub _init {
     my $self = shift;
@@ -43,14 +43,16 @@
         ignore_pattern    => 'PARROT_CONFIG_DATE',
         conditioned_lines => 1
     );
-
+    add_to_generated('include/parrot/config.h', "[main]", "include");
     $conf->genfile($self->{templates}->{feature_h}, 'include/parrot/feature.h',
         ignore_pattern => 'PARROT_CONFIG_DATE',
         feature_file   => 1
     );
+    add_to_generated('include/parrot/feature.h', "[main]", "include");
 
     my $hh = "include/parrot/has_header.h";
     $conf->append_configure_log($hh);
+    add_to_generated($hh, "[main]", "include");
     open( my $HH, ">", "$hh.tmp" )
         or die "Can't open has_header.h: $!";
 

Modified: branches/pdd30install_stage3/config/gen/config_pm.pm
==============================================================================
--- branches/pdd30install_stage3/config/gen/config_pm.pm	(original)
+++ branches/pdd30install_stage3/config/gen/config_pm.pm	Wed Dec 31 10:41:41 2008
@@ -20,6 +20,7 @@
 
 use base qw(Parrot::Configure::Step);
 use Parrot::Configure::Utils ':gen';
+use Parrot::BuildUtil;
 
 use Cwd qw(cwd);
 use File::Spec::Functions qw(catdir);
@@ -43,6 +44,7 @@
     $conf->data->clean;
 
     $conf->genfile($self->{templates}->{myconfig}, 'myconfig' );
+    add_to_generated('myconfig', "[main]", "lib");
 
     open( my $IN, "<", $self->{templates}->{Config_pm} )
         or die "Can't open Config_pm.in: $!";
@@ -72,6 +74,7 @@
     open( $IN,  "<", $template ) or die "Can't open '$template': $!";
     my $c_l_pasm = q{config_lib.pasm};
     $conf->append_configure_log($c_l_pasm);
+    add_to_generated($c_l_pasm, "[main]", "lib");
     open( $OUT, ">", $c_l_pasm ) or die "Can't open $c_l_pasm: $!";
 
     print {$OUT} <<"END";

Modified: branches/pdd30install_stage3/config/gen/core_pmcs.pm
==============================================================================
--- branches/pdd30install_stage3/config/gen/core_pmcs.pm	(original)
+++ branches/pdd30install_stage3/config/gen/core_pmcs.pm	Wed Dec 31 10:41:41 2008
@@ -20,6 +20,7 @@
 use base qw(Parrot::Configure::Step);
 
 use Parrot::Configure::Utils ':gen';
+use Parrot::BuildUtil;
 
 sub _init {
     my $self = shift;
@@ -44,6 +45,7 @@
 
     my $file = "include/parrot/core_pmcs.h";
     $conf->append_configure_log($file);
+    add_to_generated($file, "[main]", "include");
     open( my $OUT, ">", "$file.tmp" );
 
     print {$OUT} <<"END_H";

Modified: branches/pdd30install_stage3/config/gen/makefiles.pm
==============================================================================
--- branches/pdd30install_stage3/config/gen/makefiles.pm	(original)
+++ branches/pdd30install_stage3/config/gen/makefiles.pm	Wed Dec 31 10:41:41 2008
@@ -160,12 +160,14 @@
                     if ( $new_perldoc == 1 ) {
                         print {$MAKEFILE} "\t\$(PERLDOC) -ud ops${slash}$pod"
                             . " ..${slash}src${slash}ops${slash}$ops\n";
-                        print {$MAKEFILE} "\t\$(CHMOD) 0644 ops${slash}$pod\n\n";
+                        print {$MAKEFILE} "\t\$(CHMOD) 0644 ops${slash}$pod\n";
+                        print {$MAKEFILE} "\t\$(ADDGENERATED) \"docs${slash}ops${slash}$pod\" \"[main]\" doc\n\n";
                     }
                     else {
                         print {$MAKEFILE} "\t\$(PERLDOC) -u ..${slash}ops${slash}$ops"
                             . " > ops${slash}$pod\n";
                         print {$MAKEFILE} "\t\$(CHMOD) 0644 ..${slash}ops${slash}$pod\n\n";
+                        print {$MAKEFILE} "\t\$(ADDGENERATED) \"docs${slash}ops${slash}$pod\" \"[main]\" doc\n\n";
                     }
                 }
 

Modified: branches/pdd30install_stage3/config/gen/makefiles/docs.in
==============================================================================
--- branches/pdd30install_stage3/config/gen/makefiles/docs.in	(original)
+++ branches/pdd30install_stage3/config/gen/makefiles/docs.in	Wed Dec 31 10:41:41 2008
@@ -9,6 +9,7 @@
 PERLDOC   = @perldoc@
 BUILD_DIR = @build_dir@
 RECONFIGURE = $(PERL) tools/dev/reconfigure.pl
+ADDGENERATED= cd $(BUILD_DIR) && $(PERL) $(BUILD_DIR)/tools/build/addgenerated.pl
 
 # long list of .pod files
 POD = @pod@
@@ -43,6 +44,7 @@
 packfile-c.pod: ../src/packfile.c
 #IF(new_perldoc):	$(PERLDOC) -ud packfile-c.pod ../src/packfile.c
 #ELSE:	$(PERLDOC) -u ../src/packfile.c > packfile-c.pod
+	$(ADDGENERATED) "docs/packfile-c.pod" "[main]" doc
 
 clean:
 	$(RM_F) packfile-c.pod $(POD)
@@ -53,8 +55,3 @@
 html-clean:
 	$(PERL) -I../lib -MParrot::Distribution -e "Parrot::Distribution->new()->delete_html_docs()"
 
-#
-# Local variables:
-# mode: makefile
-# ex: ft=make
-# End:

Modified: branches/pdd30install_stage3/config/gen/makefiles/dynoplibs.in
==============================================================================
--- branches/pdd30install_stage3/config/gen/makefiles/dynoplibs.in	(original)
+++ branches/pdd30install_stage3/config/gen/makefiles/dynoplibs.in	Wed Dec 31 10:41:41 2008
@@ -3,6 +3,7 @@
 PERL = @perl@
 RM_F = @rm_f@
 LOAD_EXT = @load_ext@
+RECONFIGURE   = $(PERL) @build_dir@/tools/dev/reconfigure.pl
 RUNTIME_DIR = @build_dir@/runtime/parrot/dynext
 O = @o@
 
@@ -14,12 +15,19 @@
 
 BUILD = $(PERL) @build_dir@/tools/build/dynoplibs.pl
 
-all :
+all : Makefile ../../tools/build/dynoplibs.pl
 	@$(BUILD) generate $(OPLIBS)
 	@$(BUILD) compile $(OPLIBS)
 	@$(BUILD) linklibs $(OPLIBS)
 	@$(BUILD) copy --destination=$(RUNTIME_DIR) $(OPLIBS)
 
+# regenerate the Makefile
+Makefile: ../../config/gen/makefiles/dynoplibs.in
+	cd @build_dir@ && $(RECONFIGURE) --step=gen::makefiles --target=src/dynoplibs/Makefile
+
+../../tools/build/dynoplibs.pl: ../../config/gen/makefiles/dynoplibs_pl.in
+	cd @build_dir@ && $(RECONFIGURE) --step=gen::makefiles --target=tools/build/dynoplibs.pl
+
 test : all
 	 cd ../.. ; perl -Ilib t/harness t/dynoplibs/*.t
 
@@ -34,8 +42,9 @@
 dynext-clean :
 	$(RM_F) "*.lib" "*.pdb" "*.ilk" "*.exp" "*.def" "*.manifest"
 
-clean : testclean dynext-clean
+clean : testclean
 	$(RM_F) "*.h" "*.c" "*$(LOAD_EXT)" "*$(O)"
+#IF(win32):	$(RM_F) "*.lib" "*.pdb" "*.ilk" "*.exp" "*.def" "*.manifest"
 
 archclean :
 	$(RM_F) "*$(LOAD_EXT)" "*$(O)" Makefile
@@ -46,3 +55,9 @@
 distclean: realclean
 
 svnclean: realclean
+
+#
+# Local variables:
+# mode: makefile
+# ex: ft=make
+# End:

Modified: branches/pdd30install_stage3/config/gen/makefiles/dynoplibs_pl.in
==============================================================================
--- branches/pdd30install_stage3/config/gen/makefiles/dynoplibs_pl.in	(original)
+++ branches/pdd30install_stage3/config/gen/makefiles/dynoplibs_pl.in	Wed Dec 31 10:41:41 2008
@@ -17,6 +17,12 @@
 use warnings;
 
 use File::Copy qw(copy);
+use FindBin;
+use lib "$FindBin::Bin/../..";
+use lib "$FindBin::Bin/../../lib";
+use Cwd;
+use Parrot::BuildUtil;
+use File::Spec;
 
 # qq[] isn't guaranteed to work, but it's safer than "" as some platforms
 # (eg FreeBSD) have ""s embedded in their substution values. q[] is used in
@@ -41,20 +47,20 @@
     $PATHQUOTE = q["];
 
     unless ($CC =~ /gcc/i) {
-        $LIBPARROT = '@build_dir@/libparrot@a@';
+        $LIBPARROT = '@build_dir@/libparrot.lib';
     }
 }
 
 # OPS2C Config
-our $OPS2C = "$PERL -I $PATHQUOTE" .
+our $OPS2C = "$PERL -I $PATHQUOTE" . 
              q[@build_dir@@slash@lib] .
              "$PATHQUOTE $PATHQUOTE" .
              q[@build_dir@@slash@tools@slash@build@slash@ops2c.pl] .
              $PATHQUOTE;
 our %cores = (
     C       => q[],
-#IF(cg_flag):   CGP     => '_cgp',
-#IF(cg_flag):   CGoto   => '_cg',
+#IF(cg_flag):    CGP     => '_cgp',
+#IF(cg_flag):    CGoto   => '_cg',
     CSwitch => '_switch'
 );
 
@@ -132,6 +138,7 @@
     my $dest = $1;
 
     my $core_suffix;
+    my $pwd = cwd();
     foreach $core_suffix (values %cores) {
         foreach (@oplibs) {
             my $src = $_ . "_ops$core_suffix$LOAD_EXT";
@@ -143,6 +150,9 @@
             if ($^O eq 'hpux' or $^O eq 'cygwin') {
                 chmod 0755, "$dest@slash@$src";
             }
+	    chdir "@build_dir@";
+	    add_to_generated("$dest@slash@$src", "[library]");
+	    chdir $pwd;
         }
     }
 }

Modified: branches/pdd30install_stage3/config/gen/makefiles/dynpmc.in
==============================================================================
--- branches/pdd30install_stage3/config/gen/makefiles/dynpmc.in	(original)
+++ branches/pdd30install_stage3/config/gen/makefiles/dynpmc.in	Wed Dec 31 10:41:41 2008
@@ -3,6 +3,8 @@
 PERL        = @perl@
 RM_F        = @rm_f@
 LOAD_EXT    = @load_ext@
+RECONFIGURE = $(PERL) @build_dir@/tools/dev/reconfigure.pl
+ADDGENERATED= $(PERL) ../../tools/build/addgenerated.pl
 RUNTIME_DIR = @build_dir@/runtime/parrot/dynext
 O           = @o@
 
@@ -39,12 +41,19 @@
 #IF(has_crypto):  sha256.pmc \
 #IF(has_crypto):  sha512.pmc
 
-all :
+all : Makefile ../../tools/build/dynpmc.pl
 	@$(BUILD) generate $(PMCS)
 	@$(BUILD) compile $(PMCS)
 	@$(BUILD) linklibs $(PMCS)
 	@$(BUILD) copy --destination=$(RUNTIME_DIR) $(PMCS)
 
+# regenerate the Makefile
+Makefile: ../../config/gen/makefiles/dynpmc.in
+	cd @build_dir@ && $(RECONFIGURE) --step=gen::makefiles --target=src/dynoplibs/Makefile
+
+../../tools/build/dynpmc.pl: ../../config/gen/makefiles/dynpmc_pl.in
+	cd @build_dir@ && $(RECONFIGURE) --step=gen::makefiles --target=tools/build/dynpmc.pl
+
 test : all
 	cd ../.. ; perl -Ilib t/harness t/dynpmc/*.t
 
@@ -60,8 +69,9 @@
 dynext-clean :
 	$(RM_F) "*.lib" "*.pdb" "*.ilk" "*.exp" "*.def" "*.manifest"
 
-clean : testclean dynext-clean
+clean : testclean
 	$(RM_F) "*.c" "pmc_*.h" "*_group.h" "*$(LOAD_EXT)" "*.dump" "lib-*" "*$(O)"
+#IF(win32):	$(RM_F) "*.lib" "*.pdb" "*.ilk" "*.exp" "*.def" "*.manifest"
 
 archclean :
 	$(RM_F) "*$(LOAD_EXT)" "*$(O)" Makefile
@@ -72,3 +82,9 @@
 distclean: realclean
 
 svnclean: realclean
+
+#
+# Local variables:
+# mode: makefile
+# ex: ft=make
+# End:

Modified: branches/pdd30install_stage3/config/gen/makefiles/dynpmc_pl.in
==============================================================================
--- branches/pdd30install_stage3/config/gen/makefiles/dynpmc_pl.in	(original)
+++ branches/pdd30install_stage3/config/gen/makefiles/dynpmc_pl.in	Wed Dec 31 10:41:41 2008
@@ -21,6 +21,9 @@
 use lib "$FindBin::Bin/../..";
 use lib "$FindBin::Bin/../../lib";
 use Storable;
+use Cwd;
+use Parrot::BuildUtil;
+use File::Spec;
 
 # q[] isn't guaranteed to work, but it's safer than "" as some platforms
 # (eg FreeBSD) have ""s embedded in their substution values. q[] is used
@@ -45,7 +48,7 @@
     $PATHQUOTE = '"';
 
     unless ($CC =~ /gcc/i) {
-        $LIBPARROT = '@build_dir@/libparrot@a@';
+        $LIBPARROT = '@build_dir@/libparrot.lib';
     }
 }
 
@@ -181,6 +184,7 @@
 
     die "nothing found to copy" unless @list_to_process;
 
+    my $pwd = cwd();
     foreach (@list_to_process) {
         copy("$_$LOAD_EXT", $dest) or die "Copy $_$LOAD_EXT failed ($?)\n";
 
@@ -189,6 +193,10 @@
         if ($^O eq 'hpux' or $^O eq 'cygwin') {
             chmod 0755, "$dest@slash@$_$LOAD_EXT";
         }
+	chdir "@build_dir@";
+        # FIXME: strip build_dir
+	add_to_generated("$dest@slash@$_$LOAD_EXT", "[library]");
+	chdir $pwd;
 
     }
 }

Modified: branches/pdd30install_stage3/config/gen/makefiles/editor.in
==============================================================================
--- branches/pdd30install_stage3/config/gen/makefiles/editor.in	(original)
+++ branches/pdd30install_stage3/config/gen/makefiles/editor.in	Wed Dec 31 10:41:41 2008
@@ -66,3 +66,9 @@
 
 realclean: clean
 	$(RM_F) Makefile
+
+#
+# Local variables:
+# mode: makefile
+# ex: ft=make
+# End:

Modified: branches/pdd30install_stage3/config/gen/makefiles/ext.in
==============================================================================
--- branches/pdd30install_stage3/config/gen/makefiles/ext.in	(original)
+++ branches/pdd30install_stage3/config/gen/makefiles/ext.in	Wed Dec 31 10:41:41 2008
@@ -12,7 +12,13 @@
     Parrot-Embed
 
 # the default target
-all: $(EXT)
+build: $(EXT)
+
+all: build Makefile 
+
+# regenerate the Makefile
+Makefile: @build_dir@/config/gen/makefiles/json.in
+	cd @build_dir@ && $(RECONFIGURE) --step=gen::makefiles --target=compilers/json/Makefile
 
 # hard-code these for now
 test: Parrot-Embed
@@ -66,3 +72,8 @@
 #IF(win32):	- cd Parrot-Embed && nmake clean
 #UNLESS(win32):	- cd Parrot-Embed && $(MAKE) clean
 
+#
+# Local variables:
+# mode: makefile
+# ex: ft=make
+# End:

Modified: branches/pdd30install_stage3/config/gen/makefiles/json.in
==============================================================================
--- branches/pdd30install_stage3/config/gen/makefiles/json.in	(original)
+++ branches/pdd30install_stage3/config/gen/makefiles/json.in	Wed Dec 31 10:41:41 2008
@@ -4,11 +4,14 @@
 RM_F     = @rm_f@
 PARROT   = ../../parrot@exe@
 RECONFIGURE   = $(PERL) @build_dir@/tools/dev/reconfigure.pl
+ADDGENERATED  = $(PERL) ../../tools/build/addgenerated.pl
 #IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
 
 TOOL_DIR = ../..
 PGE_DIR  = ../../compilers/pge
 TGE_DIR  = ../../compilers/tge
+PARROT_LIB = @build_dir@/runtime/parrot/library
+LIBS = JSON/grammar.pbc JSON/pge2pir.pbc
 
 # the default target
 build: JSON.pbc
@@ -26,6 +29,8 @@
 	@echo ""
 	@echo "  all:               JSON.pbc"
 	@echo "                     This is the default."
+	@echo "  install:           copy pbc's to runtime/parrot/library"
+	@echo ""
 	@echo "Testing:"
 	@echo "  test:              Run the test suite."
 	@echo "  testclean:         Clean up test results and temporary files."
@@ -45,19 +50,29 @@
 
 JSON.pbc : JSON/grammar.pbc JSON/pge2pir.pbc JSON.pir
 	$(PARROT) --output=JSON.pbc JSON.pir
+	$(ADDGENERATED) "compilers/json/$@"
 
 JSON/grammar.pbc : JSON/grammar.pir
 	$(PARROT) --output=JSON/grammar.pbc JSON/grammar.pir
+	$(ADDGENERATED) "compilers/json/$@"
 
 JSON/grammar.pir : JSON/grammar.pg
 	$(PARROT) $(TOOL_DIR)/runtime/parrot/library/PGE/Perl6Grammar.pbc --output=JSON/grammar.pir JSON/grammar.pg
 
 JSON/pge2pir.pbc : JSON/pge2pir.pir
 	$(PARROT) --output=JSON/pge2pir.pbc JSON/pge2pir.pir
+	$(ADDGENERATED) "compilers/json/$@"
 
 JSON/pge2pir.pir : JSON/pge2pir.tg
 	$(PARROT) $(TGE_DIR)/tgc.pir --output=JSON/pge2pir.pir JSON/pge2pir.tg
 
+# into runtime
+install : build
+	-$(MKPATH) $(DESTDIR)$(LIB_DIR)/parrot/library
+	-$(MKPATH) $(DESTDIR)$(LIB_DIR)/parrot/library/JSON
+	$(CP) JSON.pbc $(DESTDIR)$(LIB_DIR)/parrot/library
+	$(CP) $(LIBS) $(DESTDIR)$(LIB_DIR)/parrot/library/JSON
+
 clean : testclean
 	@rm_f@ "JSON/*.pbc" "JSON/*.pir" JSON.pbc
 

Modified: branches/pdd30install_stage3/config/gen/makefiles/nqp.in
==============================================================================
--- branches/pdd30install_stage3/config/gen/makefiles/nqp.in	(original)
+++ branches/pdd30install_stage3/config/gen/makefiles/nqp.in	Wed Dec 31 10:41:41 2008
@@ -3,12 +3,15 @@
 # Setup some commands
 PERL     = @perl@
 RM_F     = @rm_f@
+CP       = @cp@
+MKPATH   = @mkpath@
 PARROT   = ../../parrot@exe@
 RECONFIGURE   = $(PERL) @build_dir@/tools/dev/reconfigure.pl
+ADDGENERATED  = $(PERL) ../../tools/build/addgenerated.pl
 #IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
 
-PARROT_LIBRARY = @build_dir@/runtime/parrot/library
-PGE_LIBRARY    = @build_dir@/runtime/parrot/library/PGE
+PARROT_LIB    = @build_dir@/runtime/parrot/library
+PGE_LIBRARY   = @build_dir@/runtime/parrot/library/PGE
 
 build: nqp.pbc
 
@@ -27,6 +30,8 @@
 	$(PARROT) $(PARROT_ARGS) $(PGE_LIBRARY)/Perl6Grammar.pir \
 	    --output=src/Grammar_gen.pir src/Grammar.pg
 	$(PARROT) -o nqp.pbc nqp.pir
+	$(CP) nqp.pbc $(PARROT_LIB)/nqp.pbc
+	$(ADDGENERATED) "runtime/parrot/library/nqp.pbc"
 
 boot: $(BOOTSRC)
 	$(PARROT) nqp.pbc \
@@ -42,6 +47,8 @@
 	@echo ""
 	@echo "  all:               nqp.pbc"
 	@echo "                     This is the default."
+	@echo "  install:           nqp.pbc only"
+	@echo ""
 	@echo "Testing:"
 	@echo "  test:              Run the test suite."
 	@echo "  testclean:         Clean up test results."
@@ -58,6 +65,10 @@
 test: all
 	$(PERL) t/harness t
 
+install: build
+	-$(MKPATH) $(DESTDIR)$(LIB_DIR)/parrot/library
+	$(CP) nqp.pbc $(DESTDIR)$(LIB_DIR)/parrot/library
+
 # this target has nothing to do
 testclean:
 

Modified: branches/pdd30install_stage3/config/gen/makefiles/root.in
==============================================================================
--- branches/pdd30install_stage3/config/gen/makefiles/root.in	(original)
+++ branches/pdd30install_stage3/config/gen/makefiles/root.in	Wed Dec 31 10:41:41 2008
@@ -106,6 +106,7 @@
 RECONFIGURE      = $(PERL) tools/dev/reconfigure.pl
 INNO_SETUP       = iscc
 JIT_BUILD_TOOL   = $(BUILD_TOOLS_DIR)/jit2c.pl
+ADDGENERATED     = $(PERL) $(BUILD_TOOLS_DIR)/addgenerated.pl
 #IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
 
 ###############################################################################
@@ -196,6 +197,7 @@
     myconfig  \
     $(GEN_PASM_INCLUDES) \
     $(SRC_DIR)/call_list.txt \
+    MANIFEST.generated \
     MANIFEST.configure.generated \
     .configure_trace.sto \
     .parrot_current_rev
@@ -543,6 +545,7 @@
 
 .pir.pbc :
 	$(PARROT) -o $@ $<
+	@$(ADDGENERATED) "$@"
 
 .pbc$(O) :
 	$(PARROT) -o $@ $<
@@ -565,7 +568,7 @@
     docs \
     $(LIBNCI_TEST_SO) \
 #IF(has_glut):    $(LIBGLUTCB_SO) \
-    $(GEN_LIBRARY) \
+    gen_library \
     dynpmc \
     dynoplibs \
     compilers \
@@ -576,7 +579,7 @@
 
 all : build parrot_utils installable $(PERL6) languages
 
-$(GEN_LIBRARY) : $(PARROT)
+gen_library : $(GEN_LIBRARY) $(PARROT)
 
 # constant string support
 .c.str :
@@ -782,17 +785,20 @@
 
 runtime/parrot/include/parrotlib.pbc: runtime/parrot/library/parrotlib.pir $(PARROT)
 	$(PARROT) -o $@ runtime/parrot/library/parrotlib.pir
+	$(ADDGENERATED) "$@"
 
 runtime/parrot/include/config.fpmc : myconfig config_lib.pasm $(MINIPARROT)
-	@echo Invoking Parrot to generate runtime/parrot/include/config.fpmc --cross your fingers
+	@echo "Invoking Parrot to generate runtime/parrot/include/config.fpmc --cross your fingers"
 	$(MINIPARROT) config_lib.pasm > $@
+	$(ADDGENERATED) "$@"
 
 $(PARROT) : $(SRC_DIR)/main$(O) $(GEN_HEADERS) $(LIBPARROT) CFLAGS \
     lib/Parrot/OpLib/core.pm $(SRC_DIR)/parrot_config$(O) \
     $(MINIPARROT)
 	$(LINK) @ld_out@$@ \
-	$(SRC_DIR)/main$(O) $(SRC_DIR)/parrot_config$(O) \
-	@rpath_blib@ $(ALL_PARROT_LIBS) $(LINKFLAGS) $(LINK_DYNAMIC)
+    $(SRC_DIR)/main$(O) $(SRC_DIR)/parrot_config$(O) \
+    @rpath_blib@ $(ALL_PARROT_LIBS) $(LINKFLAGS) $(LINK_DYNAMIC)
+	$(ADDGENERATED) "$@" "[main]" bin
 #IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
 
 pbc_to_exe.pir : $(PARROT) tools/dev/pbc_to_exe_gen.pl
@@ -802,14 +808,17 @@
 $(PBC_TO_EXE) : pbc_to_exe.pir $(PARROT)
 	$(PARROT) -o pbc_to_exe.pbc pbc_to_exe.pir
 	$(PARROT) pbc_to_exe.pir pbc_to_exe.pbc
+	$(ADDGENERATED) "$@" "[main]" bin
 
 $(PARROT_CONFIG) : tools/util/parrot-config.pir $(PARROT) $(PBC_TO_EXE)
 	$(PARROT) -o parrot_config.pbc tools/util/parrot-config.pir
 	$(PARROT) pbc_to_exe.pir parrot_config.pbc
+	$(ADDGENERATED) "$@" "[main]" bin
 
 $(INSTALLABLECONFIG) : $(SRC_DIR)/install_config$(O) $(PARROT_CONFIG) $(PBC_TO_EXE)
 	$(PARROT) -o parrot_config.pbc tools/util/parrot-config.pir
 	$(PBC_TO_EXE) parrot_config.pbc --install
+	$(ADDGENERATED) "$@" "[main]" bin
 
 # HLL Executable targets
 #IF(win32 or cygwin):perl6 : $(PERL6)
@@ -817,6 +826,7 @@
 $(PERL6) : compilers $(PBC_TO_EXE)
 	$(MAKE) languages/perl6 perl6$(EXE)
 	$(CP) languages/perl6/perl6$(EXE) $(PERL6)
+	$(ADDGENERATED) "$@" "[main]" bin
 	$(CHMOD) 0755 $(PERL6)
 	$(PERL6) -e"say 'Hello, world.'"
 
@@ -826,16 +836,20 @@
     lib/Parrot/OpLib/core.pm $(SRC_DIR)/null_config$(O)
 	$(LINK) @ld_out@$@ $(SRC_DIR)/main$(O) $(SRC_DIR)/null_config$(O) \
 	@rpath_blib@ $(ALL_PARROT_LIBS) $(LINKFLAGS)
+	$(ADDGENERATED) "# $@" "[main]" bin
 #IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
 
+
 $(INSTALLABLEPARROT) : $(SRC_DIR)/main$(O) $(GEN_HEADERS) $(LIBPARROT) \
     lib/Parrot/OpLib/core.pm $(SRC_DIR)/install_config$(O) \
     $(PARROT)
 	$(LINK) @ld_out@$@ \
     $(SRC_DIR)/main$(O) $(SRC_DIR)/install_config$(O) \
     $(ALL_PARROT_LIBS) $(LINKFLAGS)
+	$(ADDGENERATED) "$@" "[main]" bin
 #IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
 
+
 $(INC_DIR)/parrot.h : $(INC_DIR)/pbcversion.h $(INC_DIR)/vtable.h
 
 $(INC_DIR)/extend.h : $(INC_DIR)/extend_vtable.h
@@ -847,19 +861,23 @@
     $(BUILD_TOOLS_DIR)/parrot_config_c.pl
 	$(PERL) $(BUILD_TOOLS_DIR)/parrot_config_c.pl > \
     $(SRC_DIR)/parrot_config.c
+	$(ADDGENERATED) "$@" "[main]"
 
 $(SRC_DIR)/install_config.c :  install_config.fpmc \
     $(BUILD_TOOLS_DIR)/parrot_config_c.pl
 	$(PERL) $(BUILD_TOOLS_DIR)/parrot_config_c.pl --install > \
     $(SRC_DIR)/install_config.c
+	$(ADDGENERATED) "$@" "[main]"
 
 $(SRC_DIR)/null_config.c : myconfig $(BUILD_TOOLS_DIR)/parrot_config_c.pl
 	$(PERL) $(BUILD_TOOLS_DIR)/parrot_config_c.pl --mini > \
     $(SRC_DIR)/null_config.c
+	$(ADDGENERATED) "$@" "[main]"
 
 install_config.fpmc : myconfig config_lib.pasm $(PARROT)
 	@echo "Invoking Parrot to generate install_config.fpmc"
 	$(PARROT) config_lib.pasm --install > $@
+	$(ADDGENERATED) "$@" "[main]"
 
 $(SRC_DIR)/parrot_config$(O) : $(SRC_DIR)/parrot_config.c
 
@@ -900,6 +918,7 @@
 	$(AR_CR) @ar_out@$@ @ar_extra@ $(O_FILES)
 #IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
 	$(RANLIB) $@
+	$(ADDGENERATED) "$@" "[main]" lib
 
 $(LIBPARROT_SHARED) : $(O_FILES)
 	$(MKPATH) @blib_dir@
@@ -908,6 +927,9 @@
 		$(O_FILES) $(C_LIBS) $(ICU_SHARED)
 #IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
 #IF(libparrot_shared_alias):	( cd @blib_dir@ ; ln -sf @libparrot_shared@ @libparrot_shared_alias@ )
+#IF(libparrot_shared_alias):	$(ADDGENERATED) "@blib_dir@/@libparrot_shared_alias@" "[main]" lib
+	$(ADDGENERATED) "$@" "[main]" lib
+#IF(cygwin or msys or mingw):	$(ADDGENERATED) "libparrot.dll.a" "[main]" lib
 
 
 #
@@ -921,6 +943,7 @@
     $(SRC_DIR)/parrot_debugger$(O) \
     $(SRC_DIR)/parrot_config$(O) \
     @rpath_blib@ $(ALL_PARROT_LIBS) $(LINKFLAGS)
+	$(ADDGENERATED) "$@" "[main]" bin
 #IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
 
 $(INSTALLABLEPDB) : $(SRC_DIR)/parrot_debugger$(O) $(LIBPARROT)
@@ -928,6 +951,7 @@
     $(SRC_DIR)/parrot_debugger$(O) \
     $(SRC_DIR)/parrot_config$(O) \
     $(ALL_PARROT_LIBS) $(LINKFLAGS)
+	$(ADDGENERATED) "$@" "[main]" bin
 #IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
 
 #
@@ -940,12 +964,14 @@
 	$(LINK) @ld_out@$@ \
     $(SRC_DIR)/pbc_disassemble$(O) \
     @rpath_blib@ $(ALL_PARROT_LIBS) $(LINKFLAGS)
+	$(ADDGENERATED) "$@" "[main]" bin
 #IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
 
 $(INSTALLABLEDIS) : $(SRC_DIR)/pbc_disassemble$(O) $(LIBPARROT)
 	$(LINK) @ld_out@$@ \
     $(SRC_DIR)/pbc_disassemble$(O) \
     $(ALL_PARROT_LIBS) $(LINKFLAGS)
+	$(ADDGENERATED) "$@" "[main]" bin
 #IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
 
 #
@@ -956,6 +982,7 @@
 	$(LINK) @ld_out@$@ \
     $(SRC_DIR)/pdump$(O) \
     $(SRC_DIR)/packdump$(O) @rpath_blib@ $(ALL_PARROT_LIBS) $(LINKFLAGS)
+	$(ADDGENERATED) "$@" "[main]" bin
 #IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
 
 $(SRC_DIR)/pdump$(O) : $(GEN_HEADERS)
@@ -964,14 +991,15 @@
 	$(LINK) @ld_out@$@ \
     $(SRC_DIR)/pdump$(O) \
     $(SRC_DIR)/packdump$(O) $(ALL_PARROT_LIBS) $(LINKFLAGS)
+	$(ADDGENERATED) "$@" "[main]" bin
 #IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
 
-
 # pbc_info
 $(PINFO) : $(SRC_DIR)/pbc_info$(O) $(LIBPARROT)
 	$(LINK) @ld_out@$@ \
     $(SRC_DIR)/pbc_info$(O) \
     @rpath_blib@ $(ALL_PARROT_LIBS) $(LINKFLAGS)
+	$(ADDGENERATED) "$@" "[main]" bin
 #IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
 
 $(SRC_DIR)/pbc_info$(O) : $(GEN_HEADERS)
@@ -980,6 +1008,7 @@
 	$(LINK) @ld_out@$@ \
     $(SRC_DIR)/pbc_info$(O) \
     $(ALL_PARROT_LIBS) $(LINKFLAGS)
+	$(ADDGENERATED) "$@" "[main]" bin
 #IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
 
 #
@@ -991,6 +1020,7 @@
     $(SRC_DIR)/pbc_merge$(O) \
     $(SRC_DIR)/parrot_config$(O) \
     @rpath_blib@ $(ALL_PARROT_LIBS) $(LINK_DYNAMIC) $(LINKFLAGS)
+	$(ADDGENERATED) "$@" "[main]" bin
 #IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
 
 $(INSTALLABLEPBCMERGE) : $(SRC_DIR)/pbc_merge$(O) $(LIBPARROT) $(INSTALLABLECONFIG)
@@ -998,6 +1028,7 @@
     $(SRC_DIR)/pbc_merge$(O) \
     $(SRC_DIR)/install_config$(O) \
     $(ALL_PARROT_LIBS) $(LINKFLAGS)
+	$(ADDGENERATED) "$@" "[main]" bin
 #IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
 
 
@@ -1012,6 +1043,7 @@
 $(INC_DIR)/oplib/ops.h lib/Parrot/OpLib/core.pm : $(OPS_FILES) $(BUILD_TOOLS_DIR)/ops2pm.pl \
     lib/Parrot/OpsFile.pm lib/Parrot/Op.pm $(OPS_DIR)/ops.num $(OPS_DIR)/ops.skip
 	$(PERL) $(BUILD_TOOLS_DIR)/ops2pm.pl $(OPS_FILES)
+	$(ADDGENERATED) "$@" "[main]" include
 
 Makefile : config/gen/makefiles/root.in
 	$(PERL) tools/dev/reconfigure.pl --step=gen::makefiles --target=Makefile
@@ -1210,6 +1242,7 @@
 
 $(SRC_DIR)/nci.c : $(SRC_DIR)/call_list.txt $(BUILD_TOOLS_DIR)/nativecall.pl
 	$(PERL) $(BUILD_TOOLS_DIR)/nativecall.pl $(SRC_DIR)/call_list.txt
+	$(ADDGENERATED) "$@" "[main]"
 
 $(SRC_DIR)/warnings$(O) : $(GENERAL_H_FILES)
 
@@ -1265,14 +1298,18 @@
 
 $(SRC_DIR)/jit_emit.h : $(SRC_DIR)/jit/@jitcpuarch@/jit_emit.h
 	$(CP) $(SRC_DIR)/jit/@jitcpuarch@/jit_emit.h $(SRC_DIR)/jit_emit.h
+	$(ADDGENERATED) "$@" "[main]" "include"
 $(SRC_DIR)/exec_dep.h : $(SRC_DIR)/jit/@jitcpuarch@/exec_dep.h
 	$(CP) $(SRC_DIR)/jit/@jitcpuarch@/exec_dep.h $(SRC_DIR)/exec_dep.h
+	$(ADDGENERATED) "$@" "[main]" "include"
 $(SRC_DIR)/jit_cpu.c : lib/Parrot/OpLib/core.pm $(SRC_DIR)/jit_emit.h \
     $(SRC_DIR)/jit/@jitcpuarch@/core.jit $(JIT_BUILD_TOOL)
 	$(PERL) $(JIT_BUILD_TOOL) @jitcpuarch@ $(SRC_DIR)/jit_cpu.c
+	$(ADDGENERATED) "$@" "[main]"
 $(SRC_DIR)/exec_cpu.c : lib/Parrot/OpLib/core.pm $(SRC_DIR)/jit_emit.h \
     $(SRC_DIR)/jit/@jitcpuarch@/core.jit @TEMP_exec_h@ $(SRC_DIR)/exec_dep.h $(JIT_BUILD_TOOL)
 	$(PERL) $(JIT_BUILD_TOOL) @jitcpuarch@ $(SRC_DIR)/exec_cpu.c
+	$(ADDGENERATED) "$@" "[main]"
 @TEMP_exec_dep@
 
 # imcc file dependencies
@@ -1287,10 +1324,13 @@
 	$(PERL) $(BUILD_TOOLS_DIR)/fixup_gen_file.pl -noheaderizer $(IMCC_DIR)/imcparser.c $(IMCC_DIR)/imcc.y
 	$(PERL) $(BUILD_TOOLS_DIR)/fixup_gen_file.pl -noheaderizer $(IMCC_DIR)/imcparser.h $(IMCC_DIR)/imcc.y
 	$(TOUCH) $(IMCC_DIR)/imcc.y.flag $(IMCC_DIR)/imcparser.c $(IMCC_DIR)/imcparser.h
+	$(PERL) tools/build/addgenerated.pl $(IMCC_DIR)/imcparser.c "[main]"
+	$(PERL) tools/build/addgenerated.pl $(IMCC_DIR)/imcparser.h "[main]"
 
 $(IMCC_DIR)/imcc.l.flag $(IMCC_DIR)/imclexer.c : $(IMCC_DIR)/imcc.l
 	$(LEX) -o$(IMCC_DIR)/imclexer.c $(IMCC_DIR)/imcc.l
 	$(TOUCH) $(IMCC_DIR)/imcc.l.flag $(IMCC_DIR)/imclexer.c
+	$(PERL) tools/build/addgenerated.pl $(IMCC_DIR)/imclexer.c "[main]"
 
 $(IMCC_O_FILES) : $(IMCC_H_FILES) $(ALL_H_FILES)
 
@@ -1368,7 +1408,7 @@
 
 compilers : compilers.dummy
 
-compilers.dummy : $(PARROT) $(GEN_LIBRARY)
+compilers.dummy : $(PARROT)
 	$(MAKE) compilers/pct
 	$(MAKE) compilers/pge
 	$(MAKE) compilers/tge
@@ -2170,15 +2210,7 @@
 #
 ###############################################################################
 
-install:
-	@echo "WARNING:"
-	@echo "  Installing Parrot may interfere with developing Parrot"
-	@echo "  on the same machine.  This is a temporary flaw in the"
-	@echo "  Parrot build system."
-	@echo "  To use the make install target, type: make reallyinstall"
-	$(PERL) -e "exit(1)"
-
-reallyinstall: installable
+install: installable
 	$(PERL) tools/dev/install_files.pl \
     --buildprefix=$(BUILDPREFIX) \
     --prefix=$(PREFIX) \
@@ -2190,6 +2222,10 @@
     --docdir=$(DOC_DIR) \
     MANIFEST MANIFEST.generated
 
+# legacy, to be deprecated
+reallyinstall: install
+	@echo "make reallyinstall is deprecated. Use make install now"
+
 ###############################################################################
 #
 # release targets
@@ -2230,11 +2266,13 @@
 $(LIBNCI_TEST_SO): $(SRC_DIR)/nci_test$(O)
 	$(LD) $(LD_LOAD_FLAGS) @ncilib_link_extra@ $(LDFLAGS) \
     @ld_out@$@ $(SRC_DIR)/nci_test$(O) $(C_LIBS)
+	$(ADDGENERATED) "$@"
 
 # for use by runtime/parrot/library/OpenGL.pir
 $(LIBGLUTCB_SO): $(LIBPARROT) $(SRC_DIR)/glut_callbacks$(O)
 	$(LD) $(LD_LOAD_FLAGS) $(LDFLAGS) \
     @ld_out@$@ $(SRC_DIR)/glut_callbacks$(O) $(ALL_PARROT_LIBS)
+	$(ADDGENERATED) "$@"
 
 # emacs etags
 # this needs exuberant-ctags

Modified: branches/pdd30install_stage3/config/gen/makefiles/tge.in
==============================================================================
--- branches/pdd30install_stage3/config/gen/makefiles/tge.in	(original)
+++ branches/pdd30install_stage3/config/gen/makefiles/tge.in	Wed Dec 31 10:41:41 2008
@@ -3,26 +3,38 @@
 .SUFFIXES : .pir .pbc
 
 # Setup some commands
-PERL     = @perl@
-RM_F     = @rm_f@
-PARROT   = ../../parrot@exe@
+PERL          = @perl@
+RM_F          = @rm_f@
+CP            = @cp@
+MKPATH        = @mkpath@
+PARROT        = ../../parrot@exe@
 RECONFIGURE   = $(PERL) @build_dir@/tools/dev/reconfigure.pl
+ADDGENERATED  = $(PERL) ../../tools/build/addgenerated.pl
 #IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
 
 # Where to put things
-PARROT_LIBRARY    = ../../runtime/parrot/library
-PERL6GRAMMAR      = $(PARROT_LIBRARY)/PGE/Perl6Grammar.pbc
+BIN_DIR       = @bin_dir@
+LIB_DIR       = @lib_dir@
+DOC_DIR       = @doc_dir@
+MANDIR	      = @mandir@
+PARROT_LIB    = ../../runtime/parrot/library
+PERL6GRAMMAR  = $(PARROT_LIB)/PGE/Perl6Grammar.pbc
+LIBS = TGE/Rule.pbc TGE/Parser.pbc TGE/Grammar.pbc TGE/Compiler.pbc TGE/Tree.pbc
 
 # the default target
-build: $(PARROT_LIBRARY)/TGE.pbc
+build: $(PARROT_LIB)/TGE.pbc
 
-all: $(PARROT_LIBRARY)/TGE.pbc Makefile
+all: build Makefile
 
-$(PARROT_LIBRARY)/TGE.pbc: TGE.pir TGE/Rule.pbc TGE/Parser.pbc TGE/Grammar.pbc TGE/Compiler.pbc TGE/Tree.pbc
-	$(PARROT) -o $(PARROT_LIBRARY)/TGE.pbc --output-pbc TGE.pir
+$(PARROT_LIB)/TGE.pbc: TGE.pir $(LIBS)
+	$(PARROT) -o $(PARROT_LIB)/TGE.pbc --output-pbc TGE.pir
+	$(ADDGENERATED) "runtime/parrot/library/TGE.pbc"
 
 .pir.pbc :
 	$(PARROT) -o $@ --output-pbc $<
+	-$(MKPATH) $(PARROT_LIB)/TGE
+	$(CP) $@ $(PARROT_LIB)/TGE/$@
+	$(ADDGENERATED) "runtime/parrot/library/TGE/$@"
 
 TGE/Parser.pir: TGE/Parser.pg
 	$(PARROT) $(PERL6GRAMMAR) --output=TGE/Parser.pir TGE/Parser.pg
@@ -38,6 +50,8 @@
 	@echo ""
 	@echo "  all:               TGE.pbc"
 	@echo "                     This is the default."
+	@echo "  install:           copy pbc's to runtime/parrot/library"
+	@echo ""
 	@echo "Testing:"
 	@echo "  test:              Run the test suite."
 	@echo "  testclean:         Clean up test results."
@@ -54,6 +68,17 @@
 test: all
 	prove -r ../../t/compilers/tge
 
+install: build
+	-$(MKPATH) $(DESTDIR)$(LIB_DIR)/parrot/library
+	-$(MKPATH) $(DESTDIR)$(LIB_DIR)/parrot/library/TGE
+	$(CP) TGE.pbc $(DESTDIR)$(LIB_DIR)/parrot/library
+	$(CP) $(LIBS) $(DESTDIR)$(LIB_DIR)/parrot/library/TGE
+	$(CP) tgc.pir $(DESTDIR)$(LIB_DIR)/parrot/library/tgc.pir
+
+install-tgc:
+	$(CP) tgc.pir $(PARROT_LIB)/TGE/tgc.pir
+	$(ADDGENERATED) runtime/parrot/library/TGE/tgc.pir
+
 testclean:
 	$(RM_F) "../../t/compilers/tge/*.pir"
 
@@ -64,7 +89,7 @@
 	TGE/Tree.pbc \
 	TGE/Grammar.pbc \
 	TGE/Compiler.pbc \
-	$(PARROT_LIBRARY)/TGE.pbc
+	$(PARROT_LIB)/TGE.pbc
 
 realclean: clean
 	$(RM_F) Makefile

Modified: branches/pdd30install_stage3/config/gen/opengl.pm
==============================================================================
--- branches/pdd30install_stage3/config/gen/opengl.pm	(original)
+++ branches/pdd30install_stage3/config/gen/opengl.pm	Wed Dec 31 10:41:41 2008
@@ -549,6 +549,7 @@
     }
 
     $conf->append_configure_log($MACRO_FILE);
+    add_to_generated($MACRO_FILE, "[main]");
 
     return 1;
 }
@@ -827,6 +828,7 @@
 
     close $funcs;
     $conf->append_configure_log($FUNCS_FILE);
+    add_to_generated($FUNCS_FILE, "[main]");
 
     # PHASE 4: Print statistical info on parse results if verbose
     if ($verbose) {

Modified: branches/pdd30install_stage3/config/gen/parrot_include.pm
==============================================================================
--- branches/pdd30install_stage3/config/gen/parrot_include.pm	(original)
+++ branches/pdd30install_stage3/config/gen/parrot_include.pm	Wed Dec 31 10:41:41 2008
@@ -19,7 +19,7 @@
 use base qw(Parrot::Configure::Step);
 
 use Parrot::Configure::Utils ':gen';
-
+use Parrot::BuildUtil;
 
 sub _init {
     my $self = shift;
@@ -217,6 +217,7 @@
                 $target =~ m[/] or $target = "$self->{destdir}/$target";
                 move_if_diff( $target_tmp, $target );
                 push @generated, $target;
+                add_to_generated($target, "[main]");
             }
         }
     }

Modified: branches/pdd30install_stage3/config/gen/platform.pm
==============================================================================
--- branches/pdd30install_stage3/config/gen/platform.pm	(original)
+++ branches/pdd30install_stage3/config/gen/platform.pm	Wed Dec 31 10:41:41 2008
@@ -19,6 +19,7 @@
 use base qw(Parrot::Configure::Step);
 
 use Parrot::Configure::Utils ':gen';
+use Parrot::BuildUtil;
 
 sub _init {
     my $self = shift;
@@ -56,6 +57,7 @@
     # interface is the same for all platforms
     copy_if_diff( $self->{platform_interface},
         "include/parrot/platform_interface.h" );
+    add_to_generated("include/parrot/platform_interface.h", "[main]", "include");
 
     $self->_set_limits($conf, $verbose, $platform);
 
@@ -106,6 +108,8 @@
 
     my $plat_h = q{include/parrot/platform.h};
     $conf->append_configure_log($plat_h);
+    add_to_generated($plat_h, "[main]", "include");
+
     open my $PLATFORM_H, ">", $plat_h
         or die "Can't open $plat_h: $!";
 
@@ -154,6 +158,7 @@
 END_HERE
             print {$PLATFORM_H} $in_h, "\n\n";
             close $IN_H;
+            add_to_generated($header_file, "[main]", "include");
         }
 
         # just fall through if file is missing; means neither this platform nor
@@ -178,6 +183,7 @@
 END_HERE
             print {$PLATFORM_H} <$IN_H>, "\n\n";
             close $IN_H;
+            add_to_generated($h, "[main]", "include");
         }
         else {
             warn("Header file '$h' listed in TEMP_generated but not found\n");
@@ -204,6 +210,7 @@
         $limits = "config/gen/platform/$platform/platform_limits.h";
     }
     copy_if_diff( $limits, "include/parrot/platform_limits.h" );
+    add_to_generated("include/parrot/platform_limits.h", "[main]", "include");
 
     return;
 }
@@ -244,7 +251,7 @@
 END_HERE
 
     # We need to put things from begin.c before the parrot.h include.
-    $self->_handle_begin_c($platform, $PLATFORM_C);
+    $self->_handle_begin_c($conf, $platform, $PLATFORM_C);
 
     # Copy the rest.
     print {$PLATFORM_C} <<'END_HERE';
@@ -277,6 +284,7 @@
 END_HERE
             print {$PLATFORM_C} $in_c, "\n\n";
             close $IN_C;
+            $conf->append_configure_log($impl_file);
         }
     }
 
@@ -295,6 +303,7 @@
 END_HERE
             print {$PLATFORM_C} <$IN_C>, "\n\n";
             close $IN_C;
+            $conf->append_configure_log($im);
         }
     }
 
@@ -310,10 +319,11 @@
 
 sub _handle_begin_c {
     my $self = shift;
-    my ($platform, $PLATFORM_C) = @_;
-    if ( -e "config/gen/platform/$platform/begin.c" ) {
+    my ($conf, $platform, $PLATFORM_C) = @_;
+    my $f = "config/gen/platform/$platform/begin.c";
+    if ( -e $f ) {
         local $/ = undef;
-        open my $IN_C, "<", "config/gen/platform/$platform/begin.c" or die "Can't open begin.c: $!";
+        open my $IN_C, "<", $f or die "Can't open $f: $!";
 
         # slurp in the C file
         my $in_c = <$IN_C>;
@@ -325,10 +335,11 @@
 /*
 ** begin.c
 */
-#line 1 "config/gen/platform/$platform/begin.c"
+#line 1 "$f"
 END_HERE
         print {$PLATFORM_C} $in_c, "\n\n";
         close $IN_C;
+        $conf->append_configure_log($f);
     }
 
     return;
@@ -341,6 +352,7 @@
         my $asm_file = "config/gen/platform/$platform/asm.s";
         if ( -e $asm_file ) {
             copy_if_diff( $asm_file, "src/platform_asm.s" );
+            $conf->append_configure_log("src/platform_asm.s");
         }
     }
 

Modified: branches/pdd30install_stage3/lib/Parrot/BuildUtil.pm
==============================================================================
--- branches/pdd30install_stage3/lib/Parrot/BuildUtil.pm	(original)
+++ branches/pdd30install_stage3/lib/Parrot/BuildUtil.pm	Wed Dec 31 10:41:41 2008
@@ -7,15 +7,24 @@
 
 =head1 DESCRIPTION
 
-This package holds three subroutines:  C<parrot_version()>, C<slurp_file>,
-and C<generated_file_header>. Subroutines are not exported--each must be
-requested by using a fully qualified name.
+This package holds five subroutines:  C<parrot_version()>, C<slurp_file>,
+C<generated_file_header> and C<add_to_generated>, C<add_list_to_generated>.
+
+Only C<add_to_generated()> is exported, the other subroutines are not exported,
+they must be requested by using a fully qualified name.
 
 =cut
 
 package Parrot::BuildUtil;
 use strict;
 use warnings;
+use vars qw( @ISA @EXPORT );
+use Exporter;
+@ISA = qw( Exporter );
+@EXPORT = qw( add_to_generated );
+
+use File::Basename qw/basename/;
+use File::Spec;
 
 =head1 SUBROUTINES
 
@@ -101,7 +110,6 @@
     die "unknown style '$style'"
         if $style !~ m/\A(perl|c)\z/;
 
-    require File::Spec;
     my $script = File::Spec->abs2rel($0);
     $script =~ s/\\/\//g;
 
@@ -126,13 +134,75 @@
     return $header;
 }
 
+=item C<add_to_generated($filename, $section, $dir)>
+
+Adds the filename to MANIFEST.generated into the given section.
+$dir is optional.
+
+Note that Parrot::Config might not be generated yet (TBD), so
+we must assure thet the current directory is the the build_dir.
+This is the job of F<tools/build/addgenerated.pl>, but
+within some perl5 modules you must take care.
+
+=cut
+
+sub add_to_generated {
+    my ($filename, $section, $dir) = @_;
+
+    # Support quirky Makefile invocation as
+    #   $(PERL) -Ilib -MParrot::BuildUtil -e add_to_generated "$@",'[main]','lib'
+    ($filename, $section, $dir) = @ARGV unless $filename;
+    if ($filename =~ /,/ and !$section) { # split it here, when the shell is fooled
+        ($filename, $section, $dir) = split /,/, $filename;
+    }
+
+    my $path = File::Spec->abs2rel($filename);
+    $path =~ s/\\/\//g;
+    $section = "[library]" unless $section;
+    $dir = "" unless $dir;
+
+    open( my $M, '>>', "MANIFEST.generated" ) or die "open 'MANIFEST.generated': $!";
+    printf $M "%-49s %s%s\n", $path, $section, $dir;
+
+    # Additional .manifest logic on windows and [main]bin
+    if ($section eq '[main]' and $dir eq 'bin' and $^O =~ /cygwin|MSWin32/) {
+        my $base = basename($filename,'.exe');
+        if (-e "$base.manifest") {
+            my $mpath = File::Spec->abs2rel($base) . ".manifest";
+            $mpath =~ s/\\/\//g;
+            printf $M "%-49s %s%s\n", $mpath, $section, $dir;
+        }
+    }
+    close $M;
+    ''
+}
+
+=item C<add_list_to_generated( [$section,] @files)>
+
+Adds the list of filenames to MANIFEST.generated into $section,
+Default: '[library]'.
+
+$section is optional.
+
+=cut
+
+sub add_list_to_generated {
+    @_ = @ARGV unless @_;
+    my $section = '';
+    $section = shift @_ if $_[0] =~ /^\[/;
+    add_to_generated($_, $section) for @_;
+}
+
+
 1;
 
 =back
 
 =head1 AUTHOR
 
-Gregor N. Purdy.  Revised by James E Keenan.
+Gregor N. Purdy
+James E Keenan
+Reini Urban
 
 =cut
 

Modified: branches/pdd30install_stage3/lib/Parrot/Configure/Compiler.pm
==============================================================================
--- branches/pdd30install_stage3/lib/Parrot/Configure/Compiler.pm	(original)
+++ branches/pdd30install_stage3/lib/Parrot/Configure/Compiler.pm	Wed Dec 31 10:41:41 2008
@@ -689,6 +689,14 @@
     cond_eval_single($conf, $expr);
 }
 
+=item C<append_configure_log()>
+
+    $conf->append_configure_log($target)
+
+Adds $target to MANIFEST.configure.generated.
+
+=cut
+
 sub append_configure_log {
     my $conf = shift;
     my $target = shift;

Modified: branches/pdd30install_stage3/lib/Parrot/Docs/POD2HTML.pm
==============================================================================
--- branches/pdd30install_stage3/lib/Parrot/Docs/POD2HTML.pm	(original)
+++ branches/pdd30install_stage3/lib/Parrot/Docs/POD2HTML.pm	Wed Dec 31 10:41:41 2008
@@ -33,6 +33,8 @@
 our $VERSION = '1.0';
 
 use Parrot::Docs::HTMLPage;
+use Parrot::BuildUtil;
+use Parrot::Config;
 
 =item C<do_beginning()>
 
@@ -589,6 +591,11 @@
     $self->{RESOURCES_URL} = "$rel_path/resources";
 
     $docs_file->write( $self->html_for_file($file) );
+    my $path = File::Spec->abs2rel(
+       File::Spec->catfile($docs_file->{PATH}), $PConfig{build_dir});
+    chdir "..";
+    add_to_generated($path, "[main]", "html");
+    chdir "docs";
 }
 
 =item C<append_html_suffix($path)>

Modified: branches/pdd30install_stage3/lib/Parrot/Ops2c/Utils.pm
==============================================================================
--- branches/pdd30install_stage3/lib/Parrot/Ops2c/Utils.pm	(original)
+++ branches/pdd30install_stage3/lib/Parrot/Ops2c/Utils.pm	Wed Dec 31 10:41:41 2008
@@ -8,6 +8,7 @@
 use Parrot::OpsFile;
 use File::Spec;
 use IO::File;
+use Parrot::BuildUtil;
 
 =head1 NAME
 
@@ -249,6 +250,7 @@
 
     open my $HEADER, '>', $self->{header}
         or die "ops2c.pl: Cannot open header file '$self->{header}' for writing: $!!\n";
+    add_to_generated($self->{header},'[main]','include') if $self->{flag}->{core};
 
     $self->_print_guard_prefix($HEADER);
 
@@ -298,6 +300,7 @@
 
     my $source = IO::File->new('>' . $self->{source})
         or die "ops2c.pl: Cannot open source file '$self->{source}' for writing: $!!\n";
+
     $self->print_c_source_top($source);
 
     $self->_reset_line_number($source);
@@ -307,6 +310,7 @@
     $source->close() or die "Unable to close handle to $self->{source}: $!";
 
     my $c_source_final = $self->_rename_source();
+    add_to_generated($c_source_final,'[main]') if $self->{flag}->{core};
     return $c_source_final;
 }
 

Modified: branches/pdd30install_stage3/lib/Parrot/Ops2pm.pm
==============================================================================
--- branches/pdd30install_stage3/lib/Parrot/Ops2pm.pm	(original)
+++ branches/pdd30install_stage3/lib/Parrot/Ops2pm.pm	Wed Dec 31 10:41:41 2008
@@ -10,6 +10,7 @@
 use lib qw ( lib );
 use base qw( Parrot::Ops2pm::Base );
 use Parrot::OpsFile;
+use Parrot::BuildUtil;
 
 =head1 NAME
 
@@ -291,6 +292,7 @@
     open my $MODULE, '>', $fullpath
         or die "$self->{script}: Could not open module file '$fullpath' for writing: $!!\n";
 
+    add_to_generated(File::Spec->catfile( $self->{moddir}, $self->{module} ), '[main]');
     my $version = $self->{real_ops}->version();
     ( my $pod = <<"END_POD") =~ s/^    //osmg;
     =head1 NAME
@@ -379,6 +381,7 @@
     my $fullpath = File::Spec->catfile( ($fulldir), $self->{inc_f} );
     open my $OUT, '>', $fullpath
         or die "$self->{script}: Could not open module file '$fullpath' for writing: $!!\n";
+    add_to_generated($fullpath, '[main]', 'include');
 
     print $OUT <<END_C;
 /* ex: set ro:

Modified: branches/pdd30install_stage3/t/tools/parrot_config.t
==============================================================================
--- branches/pdd30install_stage3/t/tools/parrot_config.t	(original)
+++ branches/pdd30install_stage3/t/tools/parrot_config.t	Wed Dec 31 10:41:41 2008
@@ -1,6 +1,6 @@
 #! perl
 # Copyright (C) 2008, The Perl Foundation.
-# $Id: parrot_config.t 30553 2008-08-26 01:31:47Z chromatic $
+# $Id$
 
 =head1 NAME
 

Modified: branches/pdd30install_stage3/t/tools/pbc_disassemble.t
==============================================================================
--- branches/pdd30install_stage3/t/tools/pbc_disassemble.t	(original)
+++ branches/pdd30install_stage3/t/tools/pbc_disassemble.t	Wed Dec 31 10:41:41 2008
@@ -1,6 +1,6 @@
 #! perl
 # Copyright (C) 2007-2008, The Perl Foundation.
-# $Id: pbc_disassemble.t 34223 2008-12-22 03:24:34Z petdance $
+# $Id$
 
 =head1 NAME
 

Modified: branches/pdd30install_stage3/t/tools/pbc_info.t
==============================================================================
--- branches/pdd30install_stage3/t/tools/pbc_info.t	(original)
+++ branches/pdd30install_stage3/t/tools/pbc_info.t	Wed Dec 31 10:41:41 2008
@@ -1,6 +1,6 @@
 #! perl
 # Copyright (C) 2007-2008, The Perl Foundation.
-# $Id: pbc_info.t 34223 2008-12-22 03:24:34Z petdance $
+# $Id$
 
 =head1 NAME
 

Modified: branches/pdd30install_stage3/t/tools/pdump.t
==============================================================================
--- branches/pdd30install_stage3/t/tools/pdump.t	(original)
+++ branches/pdd30install_stage3/t/tools/pdump.t	Wed Dec 31 10:41:41 2008
@@ -1,6 +1,6 @@
 #! perl
 # Copyright (C) 2007-2008, The Perl Foundation.
-# $Id: pdump.t 34223 2008-12-22 03:24:34Z petdance $
+# $Id$
 
 =head1 NAME
 

Added: branches/pdd30install_stage3/tools/build/addgenerated.pl
==============================================================================
--- (empty file)
+++ branches/pdd30install_stage3/tools/build/addgenerated.pl	Wed Dec 31 10:41:41 2008
@@ -0,0 +1,81 @@
+#! perl
+# Copyright (C) 2008, The Perl Foundation.
+# $Id$
+use warnings;
+use strict;
+use lib qw(lib ../../lib);
+use Parrot::BuildUtil;
+use Parrot::Config;
+use Cwd;
+
+my $pwd = cwd();
+my $build_dir = $PConfig{'build_dir'};
+if ($build_dir and ($pwd ne $build_dir)) {
+    chdir $build_dir;
+}
+if ($ARGV[0] eq '-l' or $ARGV[0] eq '--list') {
+    shift;
+    Parrot::BuildUtil::add_list_to_generated(@ARGV);
+} else {
+    Parrot::BuildUtil::add_to_generated(@ARGV);
+}
+if ($pwd ne $build_dir) {
+    chdir $pwd;
+}
+exit 0;
+
+#################### DOCUMENTATION ####################
+
+=head1 NAME
+
+tools/build/addgenerated.pl - Helper for build-time MANIFEST.generated
+
+=head1 SYNOPSIS
+
+    % perl tools/build/addgenerated.pl file [section] dir
+    % perl tools/build/addgenerated.pl file1 file2 ...
+    % perl tools/build/addgenerated.pl -l [section] file1 file2 ...
+
+=head1 DESCRIPTION
+
+This script is a simple front-end for C<Parrot::BuildUtil>
+
+=over
+
+=back
+
+=head2 Options
+
+=over 4
+
+=item C<-l> or C<--list>
+
+There's no dir argument, but a list of filenames instead
+
+=item C<--help>
+
+Print synopsis.
+
+=back
+
+=head1 AUTHORS
+
+rurban
+
+=head1 SEE ALSO
+
+=over 4
+
+=item C<Parrot::BuildUtil>
+
+=back
+
+=cut
+
+# Local Variables:
+#   mode: cperl
+#   cperl-indent-level: 4
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:
+

Modified: branches/pdd30install_stage3/tools/build/c2str.pl
==============================================================================
--- branches/pdd30install_stage3/tools/build/c2str.pl	(original)
+++ branches/pdd30install_stage3/tools/build/c2str.pl	Wed Dec 31 10:41:41 2008
@@ -18,6 +18,7 @@
 use Math::BigInt ();
 use Getopt::Long ();
 use IO::File;
+use Parrot::BuildUtil;
 
 my $outfile          = 'all_cstring.str';
 my $string_private_h = 'src/string_private_cstring.h';
@@ -180,6 +181,8 @@
 sub create_c_include {
     open my $OUT, '>', $string_private_h
         or die "Can't write '$string_private_h': $!";
+    add_to_generated($string_private_h,'[main]','include');
+
     print $OUT <<"HEADER";
 /* ex: set ro:
  * !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!

Modified: branches/pdd30install_stage3/tools/build/headerizer.pl
==============================================================================
--- branches/pdd30install_stage3/tools/build/headerizer.pl	(original)
+++ branches/pdd30install_stage3/tools/build/headerizer.pl	Wed Dec 31 10:41:41 2008
@@ -65,6 +65,9 @@
 use Getopt::Long;
 use lib qw( lib );
 use Parrot::Config;
+use Parrot::BuildUtil;
+use File::Spec;
+use File::Basename;
 
 my %warnings;
 my %opt;
@@ -177,6 +180,7 @@
     open( my $fhout, '>', $cfile_name ) or die "Can't create $cfile_name: $!";
     print {$fhout} $text;
     close $fhout;
+    add_to_generated($cfile_name,'[main]','headerizer');
 
     return @func_declarations;
 }
@@ -506,6 +510,7 @@
             }
 
             write_file( $hfile, $header );
+            add_to_generated($hfile, '[main]', 'include-headerizer');
         }
 
         # Update all the .c files in place
@@ -517,6 +522,7 @@
             $source = replace_headerized_declarations( $source, 'static', $cfile, @funcs );
 
             write_file( $cfile, $source );
+            add_to_generated($cfile, '[main]', 'c-headerizer');
         }
         print "Headerization complete.\n";
     }

Modified: branches/pdd30install_stage3/tools/build/jit2c.pl
==============================================================================
--- branches/pdd30install_stage3/tools/build/jit2c.pl	(original)
+++ branches/pdd30install_stage3/tools/build/jit2c.pl	Wed Dec 31 10:41:41 2008
@@ -24,6 +24,7 @@
 use Parrot::OpLib::core;
 use Parrot::Op;
 use Parrot::OpTrans::C;
+use Parrot::BuildUtil;
 
 my $trans = Parrot::OpTrans::C->new;
 
@@ -513,6 +514,7 @@
  */
 EOC
 
+add_to_generated($genfile, "[main]");
 print("jit2c: JITed $njit (+ $vjit vtable) of $core_numops ops\n");
 
 sub make_subs {

Modified: branches/pdd30install_stage3/tools/build/vtable_extend.pl
==============================================================================
--- branches/pdd30install_stage3/tools/build/vtable_extend.pl	(original)
+++ branches/pdd30install_stage3/tools/build/vtable_extend.pl	Wed Dec 31 10:41:41 2008
@@ -6,6 +6,7 @@
 
 use lib 'lib';
 use Parrot::Vtable;
+use Parrot::BuildUtil;
 
 my $vtable = parse_vtable('src/vtable.tbl');
 
@@ -21,6 +22,7 @@
 EOH
 
 open my $OUT, '>', 'include/parrot/extend_vtable.h' or die $!;
+add_to_generated('include/parrot/extend_vtable.h','[main]','include');
 
 print $OUT $header, <<'EOF';
 

Modified: branches/pdd30install_stage3/tools/build/vtable_h.pl
==============================================================================
--- branches/pdd30install_stage3/tools/build/vtable_h.pl	(original)
+++ branches/pdd30install_stage3/tools/build/vtable_h.pl	Wed Dec 31 10:41:41 2008
@@ -30,10 +30,12 @@
 
 use lib 'lib';
 use Parrot::Vtable;
+use Parrot::BuildUtil;
 
 my $vtable = parse_vtable();
-
-open my $OUT, '>', 'include/parrot/vtable.h' or die $!;
+my $filename = 'include/parrot/vtable.h';
+open my $OUT, '>', $filename or die $!;
+add_to_generated($filename,'[main]','include');
 
 print $OUT <<'EOF';
 /* ex: set ro:

Modified: branches/pdd30install_stage3/tools/dev/install_files.pl
==============================================================================
--- branches/pdd30install_stage3/tools/dev/install_files.pl	(original)
+++ branches/pdd30install_stage3/tools/dev/install_files.pl	Wed Dec 31 10:41:41 2008
@@ -208,7 +208,8 @@
         next if $dest =~ /^compilers|config|language|tools/;
         if (/^runtime/) {
             $dest =~ s/^runtime/$options{libdir}/;
-        } else {
+        }
+        else {
             $dest = File::Spec->catdir( $options{prefix}, $dest );
         }
     }

Modified: branches/pdd30install_stage3/tools/docs/ops_summary.pl
==============================================================================
--- branches/pdd30install_stage3/tools/docs/ops_summary.pl	(original)
+++ branches/pdd30install_stage3/tools/docs/ops_summary.pl	Wed Dec 31 10:41:41 2008
@@ -8,6 +8,7 @@
 package OpsSummary;
 
 use base 'Pod::Parser';
+use Parrot::BuildUtil;
 
 my $current_file;
 my $current_op;
@@ -69,6 +70,7 @@
     next if $_ eq 'index.pod';
     $current_file = $_;
     $parser->parse_from_file($_);
+    add_to_generated($_, "[main]", "doc");
 }
 
 print << "EOH";



nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About