Author: coke
Date: Tue Nov 15 11:37:56 2005
New Revision: 9994

Modified:
   trunk/config/gen/makefiles/root.in
   trunk/config/inter/pmc.pm
Log:
Allow "make -j 2" to get closer to completion. Be warned, it still isn't 100%.

Doesn't impact a non -j build.



Modified: trunk/config/gen/makefiles/root.in
==============================================================================
--- trunk/config/gen/makefiles/root.in  (original)
+++ trunk/config/gen/makefiles/root.in  Tue Nov 15 11:37:56 2005
@@ -496,6 +496,9 @@ MAKE_C = ${make_c}
 .c$(O) :
        @$(PERL) tools/dev/cc_flags.pl $(CUR_DIR)/CFLAGS $(CC) "" $(CFLAGS) 
-I$(@D) ${cc_o_out}$@ -c $<
 
+# XXX These obviously require parrot: had trouble adding parrot as a dependency
+# here, though. Ignored on OS X, at least.
+
 .imc.pbc :
        $(PARROT) -o $@ $<
 
@@ -526,6 +529,8 @@ all : \
        compilers \
        $(PBCMERGE)
 
+$(GEN_LIBRARY) : parrot$(EXE)
+
 # constant string support
 .c.str :
        $(PERL) build_tools/c2str.pl $< > $@
@@ -664,32 +669,32 @@ flags_dummy :
        @echo Compiling with:
        @$(PERL) tools/dev/cc_flags.pl $(CUR_DIR)/CFLAGS echo $(CC) $(CFLAGS) 
-I$(@D) ${cc_o_out} xx$(O) -c xx.c
 
-runtime/parrot/include/parrotlib.pbc: runtime/parrot/library/parrotlib.imc 
$(PARROT)
+runtime/parrot/include/parrotlib.pbc: runtime/parrot/library/parrotlib.imc 
parrot$(EXE)
        $(PARROT) -o $@ runtime/parrot/library/parrotlib.imc
 
-runtime/parrot/include/config.fpmc : myconfig config_lib.pasm $(MINIPARROT)
+runtime/parrot/include/config.fpmc : myconfig config_lib.pasm miniparrot$(EXE)
        @echo Invoking Parrot to generate runtime/parrot/include/config.fpmc 
--cross your fingers
        $(MINIPARROT) config_lib.pasm > $@
 
-parrot.def : build_tools\parrotdef.pl
-       perl build_tools/parrotdef.pl
+parrot.def :
+       $(PERL) build_tools/parrotdef.pl
 
-$(PARROT) : $(IMCC_DIR)/main$(O) $(GEN_HEADERS) $(LIBPARROT) \
+parrot$(EXE) : $(IMCC_DIR)/main$(O) $(GEN_HEADERS) $(LIBPARROT) \
        lib/Parrot/OpLib/core.pm $(SRC_DIR)/parrot_config$(O) \
-       $(MINIPARROT) ${parrot_exe_def}
+       miniparrot$(EXE) ${parrot_exe_def}
        $(LINK) ${ld_out}$(PARROT) $(LINKFLAGS) $(LINK_DYNAMIC) 
${ld_parrot_exe_def} \
        $(IMCC_DIR)/main$(O) $(ALL_PARROT_LIBS) $(SRC_DIR)/parrot_config$(O)
 #
 # TODO build the real miniparrot
 #
-$(MINIPARROT) : $(IMCC_DIR)/main$(O) $(GEN_HEADERS) $(LIBPARROT) \
+miniparrot$(EXE) : $(IMCC_DIR)/main$(O) $(GEN_HEADERS) $(LIBPARROT) \
        lib/Parrot/OpLib/core.pm $(SRC_DIR)/null_config$(O)
        $(LINK) ${ld_out}$(MINIPARROT) $(LINKFLAGS) $(IMCC_DIR)/main$(O) \
        $(ALL_PARROT_LIBS) $(SRC_DIR)/null_config$(O)
 
 $(INSTALLABLEPARROT) : $(IMCC_DIR)/main$(O) $(GEN_HEADERS) $(LIBPARROT) \
        lib/Parrot/OpLib/core.pm $(SRC_DIR)/install_config$(O) \
-       $(PARROT)
+       parrot$(EXE)
        $(LINK) ${ld_out}$(INSTALLABLEPARROT) $(LINKFLAGS) \
        $(IMCC_DIR)/main$(O) \
        $(ALL_PARROT_LIBS) $(SRC_DIR)/install_config$(O)
@@ -708,7 +713,7 @@ $(SRC_DIR)/null_config.c : myconfig $(BU
        $(PERL) $(BUILD_TOOLS_DIR)/parrot_config_c.pl --mini > \
        $(SRC_DIR)/null_config.c
 
-install_config.fpmc : myconfig config_lib.pasm $(PARROT)
+install_config.fpmc : myconfig config_lib.pasm parrot$(EXE)
        @echo Invoking Parrot to generate install_config.fpmc
        $(PARROT) config_lib.pasm --install > $@
 
@@ -1152,7 +1157,8 @@ html-clean :
 
 dynclasses : dynclasses.dummy
 
-dynclasses.dummy :
+# XXX this dependancy is too broad, and should be narrowed down
+dynclasses.dummy : parrot$(EXE)
        $(MAKE_C) dynclasses
 
 dynclasses-test :
@@ -1169,7 +1175,7 @@ dynclasses-clean :
 
 compilers : compilers.dummy
 
-compilers.dummy :
+compilers.dummy : parrot$(EXE)
        $(MAKE_C) compilers/pge
 
 languages : languages.dummy

Modified: trunk/config/inter/pmc.pm
==============================================================================
--- trunk/config/inter/pmc.pm   (original)
+++ trunk/config/inter/pmc.pm   Tue Nov 15 11:37:56 2005
@@ -3,7 +3,7 @@
 
 =head1 NAME
 
-config/inter/pmc.pl - PMC Files
+config/inter/pmc.pm - PMC Files
 
 =head1 DESCRIPTION
 
@@ -118,7 +118,7 @@ END
   # calls to pmc2c.pl for classes/Makefile
   my $TEMP_pmc_build = <<"E_NOTE";
 
-# the following part of the Makefile was built by 'config/inter/pmc.pl'
+# the following part of the Makefile was built by 'config/inter/pmc.pm'
 
 E_NOTE
 
@@ -138,9 +138,9 @@ E_NOTE
       $parent_headers = "classes/pmc_perlhash.h $parent_headers"
                if ($pmc eq 'orderedhash');
       $TEMP_pmc_build .= <<END
-classes/$pmc.c classes/pmc_$pmc.h: \\
-         vtable.dump classes/$pmc.pmc \\
-       $parent_dumps classes/$pmc.dump
+classes/$pmc.c classes/pmc_$pmc.h : classes/$pmc.dump
+
+classes/$pmc.dump : vtable.dump $parent_dumps 
 
 classes/pmc_$pmc.h: classes/$pmc.pmc
        \$(PMC2CC) classes/$pmc.pmc
@@ -154,9 +154,9 @@ END
 
   # build list of libraries for link line in Makefile
   my $slash = Parrot::Configure::Data->get('slash');
-  (my $TEMP_pmc_classes_o   = $TEMP_pmc_o   ) =~ s/^| / classes${slash}/g;
-  (my $TEMP_pmc_classes_str = $TEMP_pmc_str ) =~ s/^| / classes${slash}/g;
-  (my $TEMP_pmc_classes_pmc = $pmc_list) =~ s/^| / classes${slash}/g;
+  (my $TEMP_pmc_classes_o    = $TEMP_pmc_o   )  =~ s/^| / classes${slash}/g;
+  (my $TEMP_pmc_classes_str  = $TEMP_pmc_str )  =~ s/^| / classes${slash}/g;
+  (my $TEMP_pmc_classes_pmc  = $pmc_list) =~ s/^| / classes${slash}/g;
 
   # Gather the actual names (with MixedCase) of all of the
   # non-abstract built-in PMCs.
@@ -187,13 +187,13 @@ END
   }
 
   Parrot::Configure::Data->set(
-    pmc             => $pmc_list,
-    pmc_names       => join(" ", @names),
-    TEMP_pmc_o           => $TEMP_pmc_o,
-    TEMP_pmc_build       => $TEMP_pmc_build,
-    TEMP_pmc_classes_o   => $TEMP_pmc_classes_o,
-    TEMP_pmc_classes_str => $TEMP_pmc_classes_str,
-    TEMP_pmc_classes_pmc => $TEMP_pmc_classes_pmc,
+    pmc                   => $pmc_list,
+    pmc_names             => join(" ", @names),
+    TEMP_pmc_o            => $TEMP_pmc_o,
+    TEMP_pmc_build        => $TEMP_pmc_build,
+    TEMP_pmc_classes_o    => $TEMP_pmc_classes_o,
+    TEMP_pmc_classes_str  => $TEMP_pmc_classes_str,
+    TEMP_pmc_classes_pmc  => $TEMP_pmc_classes_pmc,
   );
 }
 

Reply via email to