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,
);
}