[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