[svn:parrot] r45054 - in branches/rm_dynpmc_make: . config/gen config/gen/makefiles src/dynpmc

coke at svn.parrot.org coke at svn.parrot.org
Fri Mar 19 06:51:57 UTC 2010


Author: coke
Date: Fri Mar 19 06:51:56 2010
New Revision: 45054
URL: https://trac.parrot.org/parrot/changeset/45054

Log:
Get most of the way towards eliminating this recursive make step.
See XXX comment in src/dynpmc/Rules.in for the last bit.

Added:
   branches/rm_dynpmc_make/src/dynpmc/Defines.in
   branches/rm_dynpmc_make/src/dynpmc/Rules.in
      - copied, changed from r45053, branches/rm_dynpmc_make/config/gen/makefiles/dynpmc.in
Deleted:
   branches/rm_dynpmc_make/config/gen/makefiles/dynpmc.in
Modified:
   branches/rm_dynpmc_make/MANIFEST
   branches/rm_dynpmc_make/MANIFEST.SKIP
   branches/rm_dynpmc_make/config/gen/makefiles.pm
   branches/rm_dynpmc_make/config/gen/makefiles/root.in
   branches/rm_dynpmc_make/src/dynpmc/   (props changed)

Modified: branches/rm_dynpmc_make/MANIFEST
==============================================================================
--- branches/rm_dynpmc_make/MANIFEST	Fri Mar 19 06:02:59 2010	(r45053)
+++ branches/rm_dynpmc_make/MANIFEST	Fri Mar 19 06:51:56 2010	(r45054)
@@ -1,7 +1,7 @@
 # ex: set ro:
 # $Id$
 #
-# generated by tools/dev/mk_manifest_and_skip.pl Fri Mar 19 05:33:57 2010 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Fri Mar 19 06:32:47 2010 UT
 #
 # See below for documentation on the format of this file.
 #
@@ -318,7 +318,6 @@
 config/gen/crypto/digest_t.in                               []
 config/gen/makefiles.pm                                     []
 config/gen/makefiles/docs.in                                []
-config/gen/makefiles/dynpmc.in                              []
 config/gen/makefiles/editor.in                              []
 config/gen/makefiles/ext.in                                 []
 config/gen/makefiles/parrot_embed_pl.in                     []
@@ -1311,7 +1310,9 @@
 src/dynoplibs/Rules.in                                      []
 src/dynoplibs/math.ops                                      []
 src/dynoplibs/obscure.ops                                   []
+src/dynpmc/Defines.in                                       []
 src/dynpmc/README.pod                                       []doc
+src/dynpmc/Rules.in                                         []
 src/dynpmc/dynlexpad.pmc                                    [devel]src
 src/dynpmc/ext.pir                                          []
 src/dynpmc/foo.pmc                                          [devel]src

Modified: branches/rm_dynpmc_make/MANIFEST.SKIP
==============================================================================
--- branches/rm_dynpmc_make/MANIFEST.SKIP	Fri Mar 19 06:02:59 2010	(r45053)
+++ branches/rm_dynpmc_make/MANIFEST.SKIP	Fri Mar 19 06:51:56 2010	(r45054)
@@ -1,6 +1,6 @@
 # ex: set ro:
 # $Id$
-# generated by tools/dev/mk_manifest_and_skip.pl Mon Mar  8 22:07:22 2010 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Fri Mar 19 06:32:47 2010 UT
 #
 # This file should contain a transcript of the svn:ignore properties
 # of the directories in the Parrot subversion repository. (Needed for
@@ -746,8 +746,10 @@
 ^src/dynpmc/.*\.pdb/
 ^src/dynpmc/.*\.so$
 ^src/dynpmc/.*\.so/
-^src/dynpmc/Makefile$
-^src/dynpmc/Makefile/
+^src/dynpmc/Defines\.mak$
+^src/dynpmc/Defines\.mak/
+^src/dynpmc/Rules\.mak$
+^src/dynpmc/Rules\.mak/
 ^src/dynpmc/md2\.pmc$
 ^src/dynpmc/md2\.pmc/
 ^src/dynpmc/md4\.pmc$

Modified: branches/rm_dynpmc_make/config/gen/makefiles.pm
==============================================================================
--- branches/rm_dynpmc_make/config/gen/makefiles.pm	Fri Mar 19 06:02:59 2010	(r45053)
+++ branches/rm_dynpmc_make/config/gen/makefiles.pm	Fri Mar 19 06:51:56 2010	(r45054)
@@ -42,6 +42,12 @@
         'src/dynoplibs/Defines.mak' => {
              SOURCE => 'src/dynoplibs/Defines.in',
         },
+        'src/dynpmc/Rules.mak' => {
+             SOURCE => 'src/dynpmc/Rules.in',
+        },
+        'src/dynpmc/Defines.mak' => {
+             SOURCE => 'src/dynpmc/Defines.in',
+        },
 
         'ext/Parrot-Embed/Makefile.PL' => {
             SOURCE            => 'config/gen/makefiles/parrot_embed_pl.in',
@@ -50,8 +56,6 @@
 
         'compilers/ncigen/Makefile'  =>
             { SOURCE => 'compilers/ncigen/config/makefiles/ncigen.in' },
-        'src/dynpmc/Makefile'        =>
-            { SOURCE => 'config/gen/makefiles/dynpmc.in' },
         'editor/Makefile'            =>
             { SOURCE => 'config/gen/makefiles/editor.in' },
 

Deleted: branches/rm_dynpmc_make/config/gen/makefiles/dynpmc.in
==============================================================================
--- branches/rm_dynpmc_make/config/gen/makefiles/dynpmc.in	Fri Mar 19 06:51:56 2010	(r45053)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,307 +0,0 @@
-# Copyright (C) 2003-2009, Parrot Foundation.
-# $Id$
-
-PERL          = @perl@
-RM_F          = @rm_f@
-CP            = @cp@
-CHMOD         = @chmod@
-LOAD_EXT      = @load_ext@
-BUILD_DIR     = @build_dir@
-RECONFIGURE   = $(PERL) $(BUILD_DIR)/tools/dev/reconfigure.pl
-INSTALL_DIR   = $(BUILD_DIR)/runtime/parrot/dynext
-O             = @o@
-CC            = @cc@
-LD            = @ld@
-LDFLAGS       = @ldflags@ @ld_debug@ @rpath_blib@
-LD_LOAD_FLAGS = @ld_load_flags@
-CFLAGS        = @ccflags@ @cc_shared@ @cc_debug@ @ccwarn@ @cc_hasjit@ @cg_flag@ @gc_flag@ @optimize@
-LIBPARROT     = @libparrot_ldflags@
-
-BUILD_TOOLS_DIR = $(BUILD_DIR)/tools/build
-BUILD_LIB_DIR   = $(BUILD_DIR)/blib/lib
-PMC2C           = $(PERL) $(BUILD_TOOLS_DIR)/pmc2c.pl
-INCLUDES        = -I$(BUILD_DIR)/include -I at build_dir@/include/pmc
-LINKARGS        = $(LDFLAGS) $(LD_LOAD_FLAGS) $(LIBPARROT) @icu_shared@ @libs@
-
-PMC2CD = $(PERL) $(BUILD_TOOLS_DIR)/pmc2c.pl --dump
-PMC2CC = $(PERL) $(BUILD_TOOLS_DIR)/pmc2c.pl --c
-
-# add your dynamic pmcs here
-PMC_TARGETS = \
-  dynlexpad$(LOAD_EXT) \
-  foo_group$(LOAD_EXT) \
-  pccmethod_test$(LOAD_EXT) \
-  rotest$(LOAD_EXT) \
-#IF(has_gdbm):  gdbmhash$(LOAD_EXT) \
-  rational$(LOAD_EXT) \
-#IF(has_crypto):  digest_group$(LOAD_EXT) \
-  subproxy$(LOAD_EXT)
-
-PMCS_DIGEST = \
-  md2.pmc \
-  md4.pmc \
-  md5.pmc \
-  ripemd160.pmc \
-  sha.pmc \
-  sha1.pmc \
-  sha256.pmc \
-  sha512.pmc
-
-OBJS_DIGEST = \
-  md2$(O) \
-  md4$(O) \
-  md5$(O) \
-  ripemd160$(O) \
-  sha$(O) \
-  sha1$(O) \
-  sha256$(O) \
-  sha512$(O)
-
-PMCS_FOO = \
-  foo.pmc \
-  foo2.pmc
-
-OBJS_FOO = \
-  foo$(O) \
-  foo2$(O)
-
-#IF(win32 and cc==gcc):LIB_GDBM = -llibgdbm
-#ELSIF(win32):LIB_GDBM = libgdbm.lib
-#ELSE:LIB_GDBM = -lgdbm
-
-#IF(win32 and cc==gcc):LIB_CRYPTO = -lcrypto
-#ELSIF(win32):LIB_CRYPTO = libcrypto.lib
-#ELSE:LIB_CRYPTO = -lcrypto
-
-CLEANUPS = \
-  "*.c" \
-  "pmc_*.h" \
-  "*_group.h" \
-  "*.dump" \
-#IF(o):  "*@o@" \
-#IF(win32):  "*.lib" \
-#IF(win32):  "*.pdb" \
-#IF(win32):  "*.ilk" \
-#IF(win32):  "*.exp" \
-#IF(win32):  "*.def" \
-#IF(win32):  "*.manifest" \
-#IF(load_ext):  "*@load_ext@"
-
-
-all : install
-
-install : $(PMC_TARGETS)
-#IF(cygwin or hpux):	$(CHMOD) 0775 *$(LOAD_EXT)
-	$(CP) *$(LOAD_EXT) $(INSTALL_DIR)
-#IF(cygwin or hpux):	$(CHMOD) 0775 $(INSTALL_DIR)/*$(LOAD_EXT)
-
-Makefile: ../../config/gen/makefiles/dynpmc.in
-	cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::makefiles --target=src/dynpmc/Makefile
-
-dynlexpad$(LOAD_EXT): dynlexpad$(O)
-	$(LD) @ld_out at dynlexpad$(LOAD_EXT) dynlexpad$(O) $(LINKARGS)
-#IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
-
-dynlexpad$(O): dynlexpad.c
-	$(CC) -c @cc_o_out at dynlexpad$(O) $(INCLUDES) $(CFLAGS) dynlexpad.c
-
-dynlexpad.c: dynlexpad.dump
-	$(PMC2CC) dynlexpad.pmc
-
-dynlexpad.dump: dynlexpad.pmc
-	$(PMC2CD) dynlexpad.pmc
-
-foo_group$(LOAD_EXT): $(OBJS_FOO) lib-foo_group$(O)
-	$(LD) @ld_out at foo_group$(LOAD_EXT) lib-foo_group$(O) $(OBJS_FOO) $(LINKARGS)
-#IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
-
-lib-foo_group$(O): foo_group.c
-	$(CC) -c @cc_o_out at lib-foo_group$(O) $(INCLUDES) $(CFLAGS) foo_group.c
-
-foo_group.c: $(OBJS_FOO)
-	$(PMC2C) --library foo_group --c $(PMCS_FOO)
-
-foo$(O): foo.c
-	$(CC) -c @cc_o_out at foo$(O) $(INCLUDES) $(CFLAGS) foo.c
-
-foo.c: foo.dump
-	$(PMC2CC) foo.pmc
-
-foo.dump: foo.pmc
-	$(PMC2CD) foo.pmc
-
-foo2$(O): foo.c foo2.c
-	$(CC) -c @cc_o_out at foo2$(O) $(INCLUDES) $(CFLAGS) foo2.c
-
-foo2.c: foo2.dump foo.pmc
-	$(PMC2CC) foo2.pmc
-
-foo2.dump: foo2.pmc foo.dump
-	$(PMC2CD) foo2.pmc
-
-pccmethod_test$(LOAD_EXT): pccmethod_test$(O)
-	$(LD) @ld_out at pccmethod_test$(LOAD_EXT) pccmethod_test$(O) $(LINKARGS)
-#IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
-
-pccmethod_test$(O): pccmethod_test.c
-	$(CC) -c @cc_o_out at pccmethod_test$(O) $(INCLUDES) $(CFLAGS) pccmethod_test.c
-
-pccmethod_test.c: pccmethod_test.dump
-	$(PMC2CC) pccmethod_test.pmc
-
-pccmethod_test.dump: pccmethod_test.pmc
-	$(PMC2CD) pccmethod_test.pmc
-
-rotest$(LOAD_EXT): rotest$(O)
-	$(LD) @ld_out at rotest$(LOAD_EXT) rotest$(O) $(LINKARGS)
-#IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
-
-rotest$(O): rotest.c
-	$(CC) -c @cc_o_out at rotest$(O) $(INCLUDES) $(CFLAGS) rotest.c
-
-rotest.c: rotest.dump
-	$(PMC2CC) rotest.pmc
-
-rotest.dump: rotest.pmc
-	$(PMC2CD) rotest.pmc
-
-gdbmhash$(LOAD_EXT): gdbmhash$(O)
-	$(LD) @ld_out at gdbmhash$(LOAD_EXT) gdbmhash$(O) $(LINKARGS) $(LIB_GDBM)
-#IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
-
-gdbmhash$(O): gdbmhash.c
-	$(CC) -c @cc_o_out at gdbmhash$(O) $(INCLUDES) $(CFLAGS) gdbmhash.c
-
-gdbmhash.c: gdbmhash.dump
-	$(PMC2CC) gdbmhash.pmc
-
-gdbmhash.dump: gdbmhash.pmc
-	$(PMC2CD) gdbmhash.pmc
-
-rational$(LOAD_EXT): rational$(O)
-	$(LD) @ld_out at rational$(LOAD_EXT) rational$(O) $(LINKARGS)
-#IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
-
-rational$(O): rational.c
-	$(CC) -c @cc_o_out at rational$(O) $(INCLUDES) $(CFLAGS) rational.c
-
-rational.c: rational.dump
-	$(PMC2CC) rational.pmc
-
-rational.dump: rational.pmc
-	$(PMC2CD) rational.pmc
-
-digest_group$(LOAD_EXT): $(OBJS_DIGEST) lib-digest_group$(O)
-	$(LD) @ld_out at digest_group$(LOAD_EXT) lib-digest_group$(O) $(OBJS_DIGEST) $(LINKARGS) $(LIB_CRYPTO)
-#IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
-
-lib-digest_group$(O): digest_group.c
-	$(CC) -c @cc_o_out at lib-digest_group$(O) $(INCLUDES) $(CFLAGS) digest_group.c
-
-digest_group.c: $(OBJS_DIGEST)
-	$(PMC2C) --library digest_group --c $(PMCS_DIGEST)
-
-md2$(O): md2.c
-	$(CC) -c @cc_o_out at md2$(O) $(INCLUDES) $(CFLAGS) md2.c
-
-md2.c: md2.dump
-	$(PMC2CC) md2.pmc
-
-md2.dump: md2.pmc
-	$(PMC2CD) md2.pmc
-
-md4$(O): md4.c
-	$(CC) -c @cc_o_out at md4$(O) $(INCLUDES) $(CFLAGS) md4.c
-
-md4.c: md4.dump
-	$(PMC2CC) md4.pmc
-
-md4.dump: md4.pmc
-	$(PMC2CD) md4.pmc
-
-md5$(O): md5.c
-	$(CC) -c @cc_o_out at md5$(O) $(INCLUDES) $(CFLAGS) md5.c
-
-md5.c: md5.dump
-	$(PMC2CC) md5.pmc
-
-md5.dump: md5.pmc
-	$(PMC2CD) md5.pmc
-
-ripemd160$(O): ripemd160.c
-	$(CC) -c @cc_o_out at ripemd160$(O) $(INCLUDES) $(CFLAGS) ripemd160.c
-
-ripemd160.c: ripemd160.dump
-	$(PMC2CC) ripemd160.pmc
-
-ripemd160.dump: ripemd160.pmc
-	$(PMC2CD) ripemd160.pmc
-
-sha$(O): sha.c
-	$(CC) -c @cc_o_out at sha$(O) $(INCLUDES) $(CFLAGS) sha.c
-
-sha.c: sha.dump
-	$(PMC2CC) sha.pmc
-
-sha.dump: sha.pmc
-	$(PMC2CD) sha.pmc
-
-sha1$(O): sha1.c
-	$(CC) -c @cc_o_out at sha1$(O) $(INCLUDES) $(CFLAGS) sha1.c
-
-sha1.c: sha1.dump
-	$(PMC2CC) sha1.pmc
-
-sha1.dump: sha1.pmc
-	$(PMC2CD) sha1.pmc
-
-sha256$(O): sha256.c
-	$(CC) -c @cc_o_out at sha256$(O) $(INCLUDES) $(CFLAGS) sha256.c
-
-sha256.c: sha256.dump
-	$(PMC2CC) sha256.pmc
-
-sha256.dump: sha256.pmc
-	$(PMC2CD) sha256.pmc
-
-sha512$(O): sha512.c
-	$(CC) -c @cc_o_out at sha512$(O) $(INCLUDES) $(CFLAGS) sha512.c
-
-sha512.c: sha512.dump
-	$(PMC2CC) sha512.pmc
-
-sha512.dump: sha512.pmc
-	$(PMC2CD) sha512.pmc
-
-subproxy$(LOAD_EXT): subproxy$(O)
-	$(LD) @ld_out at subproxy$(LOAD_EXT) subproxy$(O) $(LINKARGS)
-#IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
-
-subproxy$(O): subproxy.c
-	$(CC) -c @cc_o_out at subproxy$(O) $(INCLUDES) $(CFLAGS) subproxy.c
-
-subproxy.c: subproxy.dump
-	$(PMC2CC) subproxy.pmc
-
-subproxy.dump: subproxy.pmc
-	$(PMC2CD) subproxy.pmc
-
-
-test : all
-	cd ../.. && $(PERL) -Ilib t/harness t/dynpmc/*.t
-
-testclean :
-	$(RM_F) "../../t/dynpmc/*.pir"
-
-clean :
-	$(RM_F) $(CLEANUPS)
-
-realclean:
-	$(RM_F) $(CLEANUPS) Makefile
-
-distclean: realclean
-
-# Local variables:
-#   mode: makefile
-# End:
-# vim: ft=make:

Modified: branches/rm_dynpmc_make/config/gen/makefiles/root.in
==============================================================================
--- branches/rm_dynpmc_make/config/gen/makefiles/root.in	Fri Mar 19 06:02:59 2010	(r45053)
+++ branches/rm_dynpmc_make/config/gen/makefiles/root.in	Fri Mar 19 06:51:56 2010	(r45054)
@@ -114,6 +114,7 @@
 # generated by config/init/headers.pm
 NONGEN_HEADERS   = @TEMP_nongen_headers@
 
+include src/dynpmc/Defines.mak
 include src/dynoplibs/Defines.mak
 include compilers/imcc/Defines.mak
 include compilers/pirc/Defines.mak
@@ -145,7 +146,6 @@
     ext/Makefile \
     src/dynoplibs/Rules.mak \
     src/dynoplibs/Defines.mak \
-    src/dynpmc/Makefile \
     compilers/imcc/Rules.mak
 
 GEN_CONFIGS = \
@@ -631,7 +631,7 @@
     runtime/parrot/include/parrotlib.pbc \
     runtime/parrot/include/config.fpmc \
     $(LIBRARY_DIR)/Test/More.pbc \
-    dynpmc \
+    $(DYNPMC_TARGETS) \
     $(DYNOPLIBS_TARGETS)
 
 $(GEN_LIBRARY) : $(PARROT) $(GEN_PASM_INCLUDES)
@@ -769,11 +769,6 @@
 	@echo "  svnclobber:        *Dangerous*: remove everything not in svn."
 	@echo "  reconfig:          'clean' and redo configuration."
 	@echo ""
-	@echo "Dynamic PMCs:"
-	@echo "  dynpmc:            Proxy for default target of src/dynpmc/Makefile"
-	@echo "  dynpmc-test:       Proxy for target 'test' of src/dynpmc/Makefile"
-	@echo "  dynpmc-clean:      Proxy for target 'clean' of src/dynpmc/Makefile"
-	@echo ""
 	@echo "Fetch from source repository:"
 	@echo "  update:            svn update."
 	@echo "  status:            svn status."
@@ -1448,12 +1443,6 @@
 
 src/io/filehandle$(O) : $(PARROT_H_HEADERS) include/pmc/pmc_filehandle.h src/io/io_private.h
 
-src/dynpmc/subproxy$(O) : $(PARROT_H_HEADERS) $(INC_DIR)/extend.h \
-  $(INC_DIR)/dynext.h include/pmc/pmc_subproxy.h \
-  include/pmc/pmc_sub.h include/pmc_default.h \
-  include/pmc/pmc_continuation.h include/pmc/pmc_callcontext.h \
-  include/pmc/pmc_default.h
-
 src/gc/malloc_trace$(O) : src/gc/malloc.c
 
 src/packfile/pf_items$(O) : $(PARROT_H_HEADERS)
@@ -1571,24 +1560,6 @@
 
 ###############################################################################
 #
-# dynamic PMC targets:
-#
-###############################################################################
-
-dynpmc : dynpmc.dummy
-
-# XXX this dependancy is too broad, and should be narrowed down
-dynpmc.dummy : $(PARROT) $(INC_DIR)/parrot.h $(INC_DIR)/extend.h $(INC_DIR)/dynext.h $(PMC2C_FILES)
-	$(MAKE) src/dynpmc
-
-dynpmc-test : $(PARROT) $(INC_DIR)/parrot.h $(INC_DIR)/extend.h $(INC_DIR)/dynext.h
-	$(MAKE) src/dynpmc test
-
-dynpmc-clean :
-	$(MAKE) src/dynpmc clean
-
-###############################################################################
-#
 # compiler implementation targets:
 #
 ###############################################################################
@@ -1818,7 +1789,6 @@
     dynext-clean \
 #IF(has_perldoc):    docs-clean \
 #IF(has_perldoc):    html-clean \
-    dynpmc-clean \
     examples-clean \
     ext-clean \
 #UNLESS(win32):    cover-clean \
@@ -1875,7 +1845,7 @@
     src/string/private_cstring.h "src/pmc/*.c" "include/pmc/pmc_*.h" \
     "src/pmc/*.dump" vtable.dump "*.def" "*.lib" "*.exp"
 
-archclean: dynpmc-clean dynext-clean
+archclean: dynext-clean
 	$(RM_F) \
     $(O_FILES) \
     $(GEN_CONFIGS) \
@@ -2530,6 +2500,7 @@
 malloclist: src/core_pmcs.c
 	$(PERL) $(BUILD_TOOLS_DIR)/headerizer.pl --macro=PARROT_MALLOC $(HEADERIZER_O_FILES)
 
+include src/dynpmc/Rules.mak
 include src/dynoplibs/Rules.mak
 include runtime/parrot/library/Rules.mak
 include compilers/imcc/Rules.mak

Added: branches/rm_dynpmc_make/src/dynpmc/Defines.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/rm_dynpmc_make/src/dynpmc/Defines.in	Fri Mar 19 06:51:56 2010	(r45054)
@@ -0,0 +1,45 @@
+DYNPMC_TARGETS = \
+    $(DYNEXT_DIR)/dynlexpad$(LOAD_EXT) \
+    $(DYNEXT_DIR)/foo_group$(LOAD_EXT) \
+    $(DYNEXT_DIR)/pccmethod_test$(LOAD_EXT) \
+    $(DYNEXT_DIR)/rotest$(LOAD_EXT) \
+#IF(has_gdbm):    $(DYNEXT_DIR)/gdbmhash$(LOAD_EXT) \
+    $(DYNEXT_DIR)/rational$(LOAD_EXT) \
+#IF(has_crypto):    $(DYNEXT_DIR)/digest_group$(LOAD_EXT) \
+    $(DYNEXT_DIR)/subproxy$(LOAD_EXT)
+
+DYNPMC_DIGEST = \
+    src/dynpmc/md2.pmc \
+    src/dynpmc/md4.pmc \
+    src/dynpmc/md5.pmc \
+    src/dynpmc/ripemd160.pmc \
+    src/dynpmc/sha.pmc \
+    src/dynpmc/sha1.pmc \
+    src/dynpmc/sha256.pmc \
+    src/dynpmc/sha512.pmc
+
+DYNPMC_DIGEST_OBJS = \
+    src/dynpmc/md2$(O) \
+    src/dynpmc/md4$(O) \
+    src/dynpmc/md5$(O) \
+    src/dynpmc/ripemd160$(O) \
+    src/dynpmc/sha$(O) \
+    src/dynpmc/sha1$(O) \
+    src/dynpmc/sha256$(O) \
+    src/dynpmc/sha512$(O)
+
+DYNPMC_FOO = \
+    src/dynpmc/foo.pmc \
+    src/dynpmc/foo2.pmc
+
+DYNPMC_FOO_OBJS = \
+    src/dynpmc/foo$(O) \
+    src/dynpmc/foo2$(O)
+
+#IF(win32 and cc==gcc):LIB_GDBM = -llibgdbm
+#ELSIF(win32):LIB_GDBM = libgdbm.lib
+#ELSE:LIB_GDBM = -lgdbm
+
+#IF(win32 and cc==gcc):LIB_CRYPTO = -lcrypto
+#ELSIF(win32):LIB_CRYPTO = libcrypto.lib
+#ELSE:LIB_CRYPTO = -lcrypto

Copied and modified: branches/rm_dynpmc_make/src/dynpmc/Rules.in (from r45053, branches/rm_dynpmc_make/config/gen/makefiles/dynpmc.in)
==============================================================================
--- branches/rm_dynpmc_make/config/gen/makefiles/dynpmc.in	Fri Mar 19 06:02:59 2010	(r45053, copy source)
+++ branches/rm_dynpmc_make/src/dynpmc/Rules.in	Fri Mar 19 06:51:56 2010	(r45054)
@@ -1,307 +1,146 @@
-# Copyright (C) 2003-2009, Parrot Foundation.
-# $Id$
+# XXX
+# Build is currently broken - the pmcs here depend on static PMCs and their
+# deps; the static PMCS have the advantage of having their deps calculated
+# automatically when the root makefile is constructed. This file should
+# probably have the same benefit, as maintaining it by hand is a pain.
 
-PERL          = @perl@
-RM_F          = @rm_f@
-CP            = @cp@
-CHMOD         = @chmod@
-LOAD_EXT      = @load_ext@
-BUILD_DIR     = @build_dir@
-RECONFIGURE   = $(PERL) $(BUILD_DIR)/tools/dev/reconfigure.pl
-INSTALL_DIR   = $(BUILD_DIR)/runtime/parrot/dynext
-O             = @o@
-CC            = @cc@
-LD            = @ld@
-LDFLAGS       = @ldflags@ @ld_debug@ @rpath_blib@
-LD_LOAD_FLAGS = @ld_load_flags@
-CFLAGS        = @ccflags@ @cc_shared@ @cc_debug@ @ccwarn@ @cc_hasjit@ @cg_flag@ @gc_flag@ @optimize@
-LIBPARROT     = @libparrot_ldflags@
-
-BUILD_TOOLS_DIR = $(BUILD_DIR)/tools/build
-BUILD_LIB_DIR   = $(BUILD_DIR)/blib/lib
-PMC2C           = $(PERL) $(BUILD_TOOLS_DIR)/pmc2c.pl
-INCLUDES        = -I$(BUILD_DIR)/include -I at build_dir@/include/pmc
-LINKARGS        = $(LDFLAGS) $(LD_LOAD_FLAGS) $(LIBPARROT) @icu_shared@ @libs@
-
-PMC2CD = $(PERL) $(BUILD_TOOLS_DIR)/pmc2c.pl --dump
-PMC2CC = $(PERL) $(BUILD_TOOLS_DIR)/pmc2c.pl --c
-
-# add your dynamic pmcs here
-PMC_TARGETS = \
-  dynlexpad$(LOAD_EXT) \
-  foo_group$(LOAD_EXT) \
-  pccmethod_test$(LOAD_EXT) \
-  rotest$(LOAD_EXT) \
-#IF(has_gdbm):  gdbmhash$(LOAD_EXT) \
-  rational$(LOAD_EXT) \
-#IF(has_crypto):  digest_group$(LOAD_EXT) \
-  subproxy$(LOAD_EXT)
-
-PMCS_DIGEST = \
-  md2.pmc \
-  md4.pmc \
-  md5.pmc \
-  ripemd160.pmc \
-  sha.pmc \
-  sha1.pmc \
-  sha256.pmc \
-  sha512.pmc
-
-OBJS_DIGEST = \
-  md2$(O) \
-  md4$(O) \
-  md5$(O) \
-  ripemd160$(O) \
-  sha$(O) \
-  sha1$(O) \
-  sha256$(O) \
-  sha512$(O)
-
-PMCS_FOO = \
-  foo.pmc \
-  foo2.pmc
-
-OBJS_FOO = \
-  foo$(O) \
-  foo2$(O)
-
-#IF(win32 and cc==gcc):LIB_GDBM = -llibgdbm
-#ELSIF(win32):LIB_GDBM = libgdbm.lib
-#ELSE:LIB_GDBM = -lgdbm
-
-#IF(win32 and cc==gcc):LIB_CRYPTO = -lcrypto
-#ELSIF(win32):LIB_CRYPTO = libcrypto.lib
-#ELSE:LIB_CRYPTO = -lcrypto
-
-CLEANUPS = \
-  "*.c" \
-  "pmc_*.h" \
-  "*_group.h" \
-  "*.dump" \
-#IF(o):  "*@o@" \
-#IF(win32):  "*.lib" \
-#IF(win32):  "*.pdb" \
-#IF(win32):  "*.ilk" \
-#IF(win32):  "*.exp" \
-#IF(win32):  "*.def" \
-#IF(win32):  "*.manifest" \
-#IF(load_ext):  "*@load_ext@"
-
-
-all : install
-
-install : $(PMC_TARGETS)
-#IF(cygwin or hpux):	$(CHMOD) 0775 *$(LOAD_EXT)
-	$(CP) *$(LOAD_EXT) $(INSTALL_DIR)
-#IF(cygwin or hpux):	$(CHMOD) 0775 $(INSTALL_DIR)/*$(LOAD_EXT)
-
-Makefile: ../../config/gen/makefiles/dynpmc.in
-	cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::makefiles --target=src/dynpmc/Makefile
-
-dynlexpad$(LOAD_EXT): dynlexpad$(O)
-	$(LD) @ld_out at dynlexpad$(LOAD_EXT) dynlexpad$(O) $(LINKARGS)
+$(DYNEXT_DIR)/dynlexpad$(LOAD_EXT): src/dynpmc/dynlexpad$(O)
+	$(LD) @ld_out@$(DYNEXT_DIR)/dynlexpad$(LOAD_EXT) src/dynpmc/dynlexpad$(O) $(LINKARGS)
 #IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
+#IF(cygwin or hpux):	$(CHMOD) 0775 $@
 
-dynlexpad$(O): dynlexpad.c
-	$(CC) -c @cc_o_out at dynlexpad$(O) $(INCLUDES) $(CFLAGS) dynlexpad.c
+src/dynpmc/dynlexpad.c: src/dynpmc/dynlexpad.dump
+	$(PMC2CC) src/dynpmc/dynlexpad.pmc
 
-dynlexpad.c: dynlexpad.dump
-	$(PMC2CC) dynlexpad.pmc
+src/dynpmc/dynlexpad.dump: src/dynpmc/dynlexpad.pmc vtable.dump
+	$(PMC2CD) src/dynpmc/dynlexpad.pmc
 
-dynlexpad.dump: dynlexpad.pmc
-	$(PMC2CD) dynlexpad.pmc
-
-foo_group$(LOAD_EXT): $(OBJS_FOO) lib-foo_group$(O)
-	$(LD) @ld_out at foo_group$(LOAD_EXT) lib-foo_group$(O) $(OBJS_FOO) $(LINKARGS)
+$(DYNEXT_DIR)/foo_group$(LOAD_EXT): $(DYNPMC_FOO_OBJS) src/dynpmc/lib-foo_group$(O)
+	$(LD) @ld_out@$(DYNEXT_DIR)/foo_group$(LOAD_EXT) src/dynpmc/lib-foo_group$(O) $(DYNPMC_FOO_OBJS) $(LINKARGS)
 #IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
+#IF(cygwin or hpux):	$(CHMOD) 0775 $@
 
-lib-foo_group$(O): foo_group.c
-	$(CC) -c @cc_o_out at lib-foo_group$(O) $(INCLUDES) $(CFLAGS) foo_group.c
-
-foo_group.c: $(OBJS_FOO)
-	$(PMC2C) --library foo_group --c $(PMCS_FOO)
+src/dynpmc/foo_group.c: $(DYNPMC_FOO_OBJ)
+	$(PMC2C) --library foo_group --c $(DYNPMC_FOO)
 
-foo$(O): foo.c
-	$(CC) -c @cc_o_out at foo$(O) $(INCLUDES) $(CFLAGS) foo.c
+src/dynpmc/foo.c: src/dynpmc/foo.dump vtable.dump
+	$(PMC2CC) src/dynpmc/foo.pmc
 
-foo.c: foo.dump
-	$(PMC2CC) foo.pmc
+src/dynpmc/foo.dump: src/dynpmc/foo.pmc vtable.dump
+	$(PMC2CD) src/dynpmc/foo.pmc
 
-foo.dump: foo.pmc
-	$(PMC2CD) foo.pmc
+src/dynpmc/foo2.c: src/dynpmc/foo2.dump src/dynpmc/foo.pmc
+	$(PMC2CC) src/dynpmc/foo2.pmc
 
-foo2$(O): foo.c foo2.c
-	$(CC) -c @cc_o_out at foo2$(O) $(INCLUDES) $(CFLAGS) foo2.c
+src/dynpmc/foo2.dump: src/dynpmc/foo2.pmc src/dynpmc/foo.dump vtable.dump
+	$(PMC2CD) src/dynpmc/foo2.pmc
 
-foo2.c: foo2.dump foo.pmc
-	$(PMC2CC) foo2.pmc
-
-foo2.dump: foo2.pmc foo.dump
-	$(PMC2CD) foo2.pmc
-
-pccmethod_test$(LOAD_EXT): pccmethod_test$(O)
-	$(LD) @ld_out at pccmethod_test$(LOAD_EXT) pccmethod_test$(O) $(LINKARGS)
+$(DYNEXT_DIR)/pccmethod_test$(LOAD_EXT): src/dynpmc/pccmethod_test$(O)
+	$(LD) @ld_out@$(DYNEXT_DIR)/pccmethod_test$(LOAD_EXT) src/dynpmc/pccmethod_test$(O) $(LINKARGS)
 #IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
+#IF(cygwin or hpux):	$(CHMOD) 0775 $@
 
-pccmethod_test$(O): pccmethod_test.c
-	$(CC) -c @cc_o_out at pccmethod_test$(O) $(INCLUDES) $(CFLAGS) pccmethod_test.c
-
-pccmethod_test.c: pccmethod_test.dump
-	$(PMC2CC) pccmethod_test.pmc
+src/dynpmc/pccmethod_test.c: src/dynpmc/pccmethod_test.dump
+	$(PMC2CC) src/dynpmc/pccmethod_test.pmc
 
-pccmethod_test.dump: pccmethod_test.pmc
-	$(PMC2CD) pccmethod_test.pmc
+src/dynpmc/pccmethod_test.dump: src/dynpmc/pccmethod_test.pmc vtable.dump
+	$(PMC2CD) src/dynpmc/pccmethod_test.pmc
 
-rotest$(LOAD_EXT): rotest$(O)
-	$(LD) @ld_out at rotest$(LOAD_EXT) rotest$(O) $(LINKARGS)
+$(DYNEXT_DIR)/rotest$(LOAD_EXT): src/dynpmc/rotest$(O)
+	$(LD) @ld_out@$(DYNEXT_DIR)/rotest$(LOAD_EXT) src/dynpmc/rotest$(O) $(LINKARGS)
 #IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
 
-rotest$(O): rotest.c
-	$(CC) -c @cc_o_out at rotest$(O) $(INCLUDES) $(CFLAGS) rotest.c
+src/dynpmc/rotest.c: src/dynpmc/rotest.dump
+	$(PMC2CC) src/dynpmc/rotest.pmc
 
-rotest.c: rotest.dump
-	$(PMC2CC) rotest.pmc
-
-rotest.dump: rotest.pmc
+src/dynpmc/rotest.dump: src/dynpmc/rotest.pmc vtable.dump
 	$(PMC2CD) rotest.pmc
 
-gdbmhash$(LOAD_EXT): gdbmhash$(O)
-	$(LD) @ld_out at gdbmhash$(LOAD_EXT) gdbmhash$(O) $(LINKARGS) $(LIB_GDBM)
+$(DYNEXT_DIR)/gdbmhash$(LOAD_EXT): gdbmhash$(O)
+	$(LD) @ld_out@$(DYNEXT_DIR)/gdbmhash$(LOAD_EXT) src/dynpmc/gdbmhash$(O) $(LINKARGS) $(LIB_GDBM)
 #IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
+#IF(cygwin or hpux):	$(CHMOD) 0775 $@
 
-gdbmhash$(O): gdbmhash.c
-	$(CC) -c @cc_o_out at gdbmhash$(O) $(INCLUDES) $(CFLAGS) gdbmhash.c
-
-gdbmhash.c: gdbmhash.dump
-	$(PMC2CC) gdbmhash.pmc
+src/dynpmc/gdbmhash.c: src/dynpmc/gdbmhash.dump
+	$(PMC2CC) src/dynpmc/gdbmhash.pmc
 
-gdbmhash.dump: gdbmhash.pmc
-	$(PMC2CD) gdbmhash.pmc
+src/dynpmc/gdbmhash.dump: src/dynpmc/gdbmhash.pmc vtable.dump
+	$(PMC2CD) src/dynpmc/gdbmhash.pmc
 
-rational$(LOAD_EXT): rational$(O)
-	$(LD) @ld_out at rational$(LOAD_EXT) rational$(O) $(LINKARGS)
+$(DYNEXT_DIR)/rational$(LOAD_EXT): src/dynpmc/rational$(O)
+	$(LD) @ld_out@$(DYNEXT_DIR)/rational$(LOAD_EXT) src/dynpmc/rational$(O) $(LINKARGS)
 #IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
+#IF(cygwin or hpux):	$(CHMOD) 0775 $@
 
-rational$(O): rational.c
-	$(CC) -c @cc_o_out at rational$(O) $(INCLUDES) $(CFLAGS) rational.c
+src/dynpmc/rational.c: src/dynpmc/rational.dump
+	$(PMC2CC) src/dynpmc/rational.pmc
 
-rational.c: rational.dump
-	$(PMC2CC) rational.pmc
+src/dynpmc/rational.dump: src/dynpmc/rational.pmc vtable.dump
+	$(PMC2CD) src/dynpmc/rational.pmc
 
-rational.dump: rational.pmc
-	$(PMC2CD) rational.pmc
-
-digest_group$(LOAD_EXT): $(OBJS_DIGEST) lib-digest_group$(O)
-	$(LD) @ld_out at digest_group$(LOAD_EXT) lib-digest_group$(O) $(OBJS_DIGEST) $(LINKARGS) $(LIB_CRYPTO)
+$(DYNEXT_DIR)/digest_group$(LOAD_EXT): $(DYNPMC_DIGEST_OBJS) src/dynpmc/lib-digest_group$(O)
+	$(LD) @ld_out@$(DYNEXT_DIR)/digest_group$(LOAD_EXT) src/dynpmc/lib-digest_group$(O) $(DYNPMC_DIGEST_OBJS) $(LINKARGS) $(LIB_CRYPTO)
 #IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
+#IF(cygwin or hpux):	$(CHMOD) 0775 $@
 
-lib-digest_group$(O): digest_group.c
-	$(CC) -c @cc_o_out at lib-digest_group$(O) $(INCLUDES) $(CFLAGS) digest_group.c
-
-digest_group.c: $(OBJS_DIGEST)
-	$(PMC2C) --library digest_group --c $(PMCS_DIGEST)
-
-md2$(O): md2.c
-	$(CC) -c @cc_o_out at md2$(O) $(INCLUDES) $(CFLAGS) md2.c
-
-md2.c: md2.dump
-	$(PMC2CC) md2.pmc
-
-md2.dump: md2.pmc
-	$(PMC2CD) md2.pmc
+src/dynpmc/digest_group.c: $(DYNPMC_DIGEST_OBJS)
+	$(PMC2C) --library digest_group --c $(DYNPMC_DIGEST)
 
-md4$(O): md4.c
-	$(CC) -c @cc_o_out at md4$(O) $(INCLUDES) $(CFLAGS) md4.c
+src/dynpmc/md2.c: src/dynpmc/md2.dump
+	$(PMC2CC) src/dynpmc/md2.pmc
 
-md4.c: md4.dump
-	$(PMC2CC) md4.pmc
+src/dynpmc/md2.dump: src/dynpmc/md2.pmc vtable.dump
+	$(PMC2CD) src/dynpmc/md2.pmc
 
-md4.dump: md4.pmc
-	$(PMC2CD) md4.pmc
+src/dynpmc/md4.c: src/dynpmc/md4.dump
+	$(PMC2CC) src/dynpmc/md4.pmc
 
-md5$(O): md5.c
-	$(CC) -c @cc_o_out at md5$(O) $(INCLUDES) $(CFLAGS) md5.c
+src/dynpmc/md4.dump: src/dynpmc/md4.pmc vtable.dump
+	$(PMC2CD) src/dynpmc/md4.pmc
 
-md5.c: md5.dump
-	$(PMC2CC) md5.pmc
+src/dynpmc/md5.c: src/dynpmc/md5.dump
+	$(PMC2CC) src/dynpmc/md5.pmc
 
-md5.dump: md5.pmc
-	$(PMC2CD) md5.pmc
+src/dynpmc/md5.dump: src/dynpmc/md5.pmc vtable.dump
+	$(PMC2CD) src/dynpmc/md5.pmc
 
-ripemd160$(O): ripemd160.c
-	$(CC) -c @cc_o_out at ripemd160$(O) $(INCLUDES) $(CFLAGS) ripemd160.c
+src/dynpmc/ripemd160.c: src/dynpmc/ripemd160.dump
+	$(PMC2CC) src/dynpmc/ripemd160.pmc
 
-ripemd160.c: ripemd160.dump
-	$(PMC2CC) ripemd160.pmc
+src/dynpmc/ripemd160.dump: src/dynpmc/ripemd160.pmc vtable.dump
+	$(PMC2CD) src/dynpmc/ripemd160.pmc
 
-ripemd160.dump: ripemd160.pmc
-	$(PMC2CD) ripemd160.pmc
+src/dynpmc/sha.c: src/dynpmc/sha.dump
+	$(PMC2CC) src/dynpmc/sha.pmc
 
-sha$(O): sha.c
-	$(CC) -c @cc_o_out at sha$(O) $(INCLUDES) $(CFLAGS) sha.c
+src/dynpmc/sha.dump: src/dynpmc/sha.pmc vtable.dump
+	$(PMC2CD) src/dynpmc/sha.pmc
 
-sha.c: sha.dump
-	$(PMC2CC) sha.pmc
+src/dynpmc/sha1.c: src/dynpmc/sha1.dump
+	$(PMC2CC) src/dynpmc/sha1.pmc
 
-sha.dump: sha.pmc
-	$(PMC2CD) sha.pmc
+src/dynpmc/sha1.dump: src/dynpmc/sha1.pmc vtable.dump
+	$(PMC2CD) src/dynpmc/sha1.pmc
 
-sha1$(O): sha1.c
-	$(CC) -c @cc_o_out at sha1$(O) $(INCLUDES) $(CFLAGS) sha1.c
+src/dynpmc/sha256.c: src/dynpmc/sha256.dump
+	$(PMC2CC) src/dynpmc/sha256.pmc
 
-sha1.c: sha1.dump
-	$(PMC2CC) sha1.pmc
+src/dynpmc/sha256.dump: src/dynpmc/sha256.pmc vtable.dump
+	$(PMC2CD) src/dynpmc/sha256.pmc
 
-sha1.dump: sha1.pmc
-	$(PMC2CD) sha1.pmc
+src/dynpmc/sha512.c: src/dynpmc/sha512.dump
+	$(PMC2CC) src/dynpmc/sha512.pmc
 
-sha256$(O): sha256.c
-	$(CC) -c @cc_o_out at sha256$(O) $(INCLUDES) $(CFLAGS) sha256.c
+src/dynpmc/sha512.dump: src/dynpmc/sha512.pmc vtable.dump
+	$(PMC2CD) src/dynpmc/sha512.pmc
 
-sha256.c: sha256.dump
-	$(PMC2CC) sha256.pmc
-
-sha256.dump: sha256.pmc
-	$(PMC2CD) sha256.pmc
-
-sha512$(O): sha512.c
-	$(CC) -c @cc_o_out at sha512$(O) $(INCLUDES) $(CFLAGS) sha512.c
-
-sha512.c: sha512.dump
-	$(PMC2CC) sha512.pmc
-
-sha512.dump: sha512.pmc
-	$(PMC2CD) sha512.pmc
-
-subproxy$(LOAD_EXT): subproxy$(O)
-	$(LD) @ld_out at subproxy$(LOAD_EXT) subproxy$(O) $(LINKARGS)
+$(DYNEXT_DIR)/subproxy$(LOAD_EXT): src/dynpmc/subproxy$(O)
+	$(LD) @ld_out@$(DYNEXT_DIR)/subproxy$(LOAD_EXT) src/dynpmc/subproxy$(O) $(LINKARGS)
 #IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
+#IF(cygwin or hpux):	$(CHMOD) 0775 $@
 
-subproxy$(O): subproxy.c
-	$(CC) -c @cc_o_out at subproxy$(O) $(INCLUDES) $(CFLAGS) subproxy.c
-
-subproxy.c: subproxy.dump
-	$(PMC2CC) subproxy.pmc
-
-subproxy.dump: subproxy.pmc
-	$(PMC2CD) subproxy.pmc
-
-
-test : all
-	cd ../.. && $(PERL) -Ilib t/harness t/dynpmc/*.t
-
-testclean :
-	$(RM_F) "../../t/dynpmc/*.pir"
-
-clean :
-	$(RM_F) $(CLEANUPS)
-
-realclean:
-	$(RM_F) $(CLEANUPS) Makefile
-
-distclean: realclean
+src/dynpmc/subproxy.c: src/dynpmc/subproxy.dump
+	$(PMC2CC) src/dynpmc/subproxy.pmc
 
-# Local variables:
-#   mode: makefile
-# End:
-# vim: ft=make:
+src/dynpmc/subproxy.dump: src/dynpmc/subproxy.pmc vtable.dump
+	$(PMC2CD) src/dynpmc/subproxy.pmc


More information about the parrot-commits mailing list