Dependencies in the Makefile are currently too broad brush.
I don't enjoy waiting for everything to recompile every time I try to tweak
the jit. The only file that #includes jit_struct.h is jit.c, so I feel
that the Makefile dependencies should reflect this, and not cause a
gratuitous recompile of everything.
There are probably other auto-generated header files that world+dog should
not depend on.

Nicholas Clark
-- 
EMCFT http://www.ccl4.org/~nick/CV.html

--- Makefile.in~        Wed Jan 30 10:31:28 2002
+++ Makefile.in Thu Jan 31 18:54:57 2002
@@ -57,13 +57,14 @@
 #
 ###############################################################################
 
-H_FILES = $(INC)/config.h $(INC)/exceptions.h $(INC)/io.h $(INC)/op.h \
+GENERAL_H_FILES = $(INC)/config.h $(INC)/exceptions.h $(INC)/io.h $(INC)/op.h \
 $(INC)/register.h $(INC)/string.h $(INC)/events.h $(INC)/interpreter.h \
 $(INC)/memory.h $(INC)/parrot.h $(INC)/stacks.h $(INC)/packfile.h \
 $(INC)/global_setup.h $(INC)/vtable.h $(INC)/oplib/core_ops.h 
$(INC)/oplib/core_ops_prederef.h \
 $(INC)/runops_cores.h $(INC)/trace.h \
 $(INC)/pmc.h $(INC)/key.h $(INC)/resources.h $(INC)/platform.h \
-$(INC)/interp_guts.h ${jit_h} ${jit_struct_h} $(INC)/rx.h $(INC)/rxstacks.h 
$(INC)/embed.h
+$(INC)/interp_guts.h ${jit_h} $(INC)/rx.h $(INC)/rxstacks.h $(INC)/embed.h
+ALL_H_FILES = $(GENERAL_H_FILES) ${jit_struct_h}
 
 CLASS_O_FILES = classes/default$(O) classes/array$(O) \
 classes/perlint$(O) classes/perlstring$(O) classes/perlnum$(O) \
@@ -207,7 +208,7 @@
 #
 ###############################################################################
 
-test_main$(O): test_main.c $(H_FILES)
+test_main$(O): test_main.c $(GENERAL_H_FILES)
 
 lib/Parrot/Jit.pm: lib/Parrot/Jit/${jitarchname}.pm 
lib/Parrot/Jit/${jitcpuarch}Generic.pm
        $(PERL) -MFile::Copy=cp -e ${PQ}cp q|lib/Parrot/Jit/${jitarchname}.pm|, 
q|lib/Parrot/Jit.pm|${PQ}
@@ -261,70 +262,70 @@
 #
 ###############################################################################
 
-global_setup$(O): $(H_FILES)
+global_setup$(O): $(GENERAL_H_FILES)
 
-pmc$(O): $(H_FILES)
+pmc$(O): $(GENERAL_H_FILES)
 
-jit$(O): $(H_FILES)
+jit$(O): $(GENERAL_H_FILES) ${jit_struct_h}
 
-key$(O): $(H_FILES)
+key$(O): $(GENERAL_H_FILES)
 
-resources$(O): $(H_FILES)
+resources$(O): $(GENERAL_H_FILES)
 
-platform$(O): $(H_FILES)
+platform$(O): $(GENERAL_H_FILES)
 
-string$(O): $(H_FILES)
+string$(O): $(GENERAL_H_FILES)
 
-chartype$(O): $(H_FILES)
+chartype$(O): $(GENERAL_H_FILES)
 
-encoding$(O): $(H_FILES)
+encoding$(O): $(GENERAL_H_FILES)
 
-chartype/usascii$(O): $(H_FILES)
+chartype/usascii$(O): $(GENERAL_H_FILES)
 
-chartype/unicode$(O): $(H_FILES)
+chartype/unicode$(O): $(GENERAL_H_FILES)
 
-exceptions$(O): $(H_FILES)
+exceptions$(O): $(GENERAL_H_FILES)
 
-encoding/singlebyte$(O): $(H_FILES)
+encoding/singlebyte$(O): $(GENERAL_H_FILES)
 
-encoding/utf8$(O): $(H_FILES)
+encoding/utf8$(O): $(GENERAL_H_FILES)
 
-encoding/utf16$(O): $(H_FILES)
+encoding/utf16$(O): $(GENERAL_H_FILES)
 
-encoding/utf32$(O): $(H_FILES)
+encoding/utf32$(O): $(GENERAL_H_FILES)
 
-interpreter$(O): interpreter.c $(H_FILES)
+interpreter$(O): interpreter.c $(GENERAL_H_FILES)
 
-io/io$(O): $(H_FILES)
+io/io$(O): $(GENERAL_H_FILES)
 
-io/io_stdio$(O): $(H_FILES)
+io/io_stdio$(O): $(GENERAL_H_FILES)
 
-io/io_unix$(O): $(H_FILES)
+io/io_unix$(O): $(GENERAL_H_FILES)
 
-io/io_win32$(O): $(H_FILES)
+io/io_win32$(O): $(GENERAL_H_FILES)
 
-memory$(O): $(H_FILES)
+memory$(O): $(GENERAL_H_FILES)
 
-packfile$(O): $(H_FILES)
+packfile$(O): $(GENERAL_H_FILES)
 
-parrot$(O): $(H_FILES)
+parrot$(O): $(GENERAL_H_FILES)
 
-register$(O): $(H_FILES)
+register$(O): $(GENERAL_H_FILES)
 
-rx$(O): $(H_FILES)
+rx$(O): $(GENERAL_H_FILES)
 
-rxstacks$(O): $(H_FILES)
+rxstacks$(O): $(GENERAL_H_FILES)
 
-stacks$(O): $(H_FILES)
+stacks$(O): $(GENERAL_H_FILES)
 
-embed$(O): $(H_FILES)
+embed$(O): $(GENERAL_H_FILES)
 
-core_ops$(O): $(H_FILES) core_ops.c
+core_ops$(O): $(GENERAL_H_FILES) core_ops.c
 
 core_ops.c $(INC)/oplib/core_ops.h: $(OPS_FILES) ops2c.pl lib/Parrot/OpsFile.pm 
lib/Parrot/Op.pm
        $(PERL) ops2c.pl C $(OPS_FILES)
 
-core_ops_prederef$(O): $(H_FILES) core_ops_prederef.c
+core_ops_prederef$(O): $(GENERAL_H_FILES) core_ops_prederef.c
 
 core_ops_prederef.c $(INC)/oplib/core_ops_prederef.h: $(OPS_FILES) ops2c.pl 
lib/Parrot/OpsFile.pm lib/Parrot/Op.pm
        $(PERL) ops2c.pl CPrederef $(OPS_FILES)

Reply via email to