Index: config/gen/makefiles/dynpmc.in =================================================================== --- config/gen/makefiles/dynpmc.in (revision 36748) +++ config/gen/makefiles/dynpmc.in (working copy) @@ -1,35 +1,53 @@ # Copyright (C) 2003-2009, The Perl Foundation. # $Id$ -PERL = @perl@ -RM_F = @rm_f@ -LOAD_EXT = @load_ext@ -RUNTIME_DIR = @build_dir@/runtime/parrot/dynext -O = @o@ +PERL = @perl@ +RM_F = @rm_f@ +CP = @cp@ +CHMOD = @chmod@ +LOAD_EXT = @load_ext@ +BUILD_DIR = @build_dir@ +INSTALL_DIR = $(BUILD_DIR)@slash@runtime@slash@parrot@slash@dynext +O = @o@ +CC = @cc@ -c +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@ +CC_OUT = @cc_o_out@ +LD_OUT = @ld_out@ +#IF(parrot_is_shared):LIBPARROT = @libparrot_ldflags@ +#ELSE:LIBPARROT = +BUILD_TOOLS_DIR = $(BUILD_DIR)@slash@tools@slash@build +BUILD_LIB_DIR = $(BUILD_DIR)@slash@blib@slash@lib +PMC2C = $(PERL) $(BUILD_TOOLS_DIR)@slash@pmc2c.pl +INCLUDES = -I$(BUILD_DIR)@slash@include -I@build_dir@@slash@src@slash@pmc +#IF(win32):LINKARGS = @libs@ @icu_shared@ $(LDFLAGS) $(LD_LOAD_FLAGS) $(LIBPARROT) +#ELSIF(cc==gcc):LINKARGS = -Wl,-L $(BUILD_LIB) $(LDFLAGS) $(LD_LOAD_FLAGS) $(LIBPARROT) +#ELSE:LINKARGS = $(LDFLAGS) $(LD_LOAD_FLAGS) $(LIBPARROT) + # add your dynamic pmcs here # # gdbmhash is only built when 'libgdbm.so' is available # -PMCS = \ - dynlexpad \ - foo \ - pair \ - rotest \ -#IF(has_gdbm): gdbmhash \ - rational \ -#IF(has_crypto): md2 \ -#IF(has_crypto): md4 \ -#IF(has_crypto): md5 \ -#IF(has_crypto): ripemd160 \ -#IF(has_crypto): sha \ -#IF(has_crypto): sha1 \ -#IF(has_crypto): sha256 \ -#IF(has_crypto): sha512 \ - subproxy +PMC_FILES = \ + dynlexpad.pmc \ + foo.pmc \ + pair.pmc \ + rotest.pmc \ +#IF(has_gdbm): gdbmhash.pmc \ + rational.pmc \ +#IF(has_crypto): md2.pmc \ +#IF(has_crypto): md4.pmc \ +#IF(has_crypto): md5.pmc \ +#IF(has_crypto): ripemd160.pmc \ +#IF(has_crypto): sha.pmc \ +#IF(has_crypto): sha1.pmc \ +#IF(has_crypto): sha256.pmc \ +#IF(has_crypto): sha512.pmc \ + subproxy.pmc -BUILD = $(PERL) @build_dir@/tools/build/dynpmc.pl - # some *.pmc file are generated GEN_PMC_DEFINITIONS = \ #IF(has_crypto): md2.pmc \ @@ -41,12 +59,81 @@ #IF(has_crypto): sha256.pmc \ #IF(has_crypto): sha512.pmc -all : - @$(BUILD) generate $(PMCS) - @$(BUILD) compile $(PMCS) - @$(BUILD) linklibs $(PMCS) - @$(BUILD) copy --destination=$(RUNTIME_DIR) $(PMCS) +PMC2CD = $(PERL) $(BUILD_TOOLS_DIR)/pmc2c.pl --dump +PMC2CC = $(PERL) $(BUILD_TOOLS_DIR)/pmc2c.pl --c +all : install + +generate : $(PMC_FILES) + $(PMC2CD) dynlexpad.pmc + $(PMC2CC) dynlexpad.pmc + $(PMC2CD) foo.pmc + $(PMC2CC) foo.pmc + $(PMC2CD) pair.pmc + $(PMC2CC) pair.pmc + $(PMC2CD) rotest.pmc + $(PMC2CC) rotest.pmc +#IF(has_gdbm): $(PMC2CD) gdbmhash.pmc +#IF(has_gdbm): $(PMC2CC) gdbmhash.pmc + $(PMC2CD) rational.pmc + $(PMC2CC) rational.pmc +#IF(has_crypto): $(PMC2CD) md2.pmc +#IF(has_crypto): $(PMC2CC) md2.pmc +#IF(has_crypto): $(PMC2CD) md4.pmc +#IF(has_crypto): $(PMC2CC) md4.pmc +#IF(has_crypto): $(PMC2CD) md5.pmc +#IF(has_crypto): $(PMC2CC) md5.pmc +#IF(has_crypto): $(PMC2CD) ripemd160.pmc +#IF(has_crypto): $(PMC2CC) ripemd160.pmc +#IF(has_crypto): $(PMC2CD) sha.pmc +#IF(has_crypto): $(PMC2CC) sha.pmc +#IF(has_crypto): $(PMC2CD) sha1.pmc +#IF(has_crypto): $(PMC2CC) sha1.pmc +#IF(has_crypto): $(PMC2CD) sha256.pmc +#IF(has_crypto): $(PMC2CC) sha256.pmc +#IF(has_crypto): $(PMC2CD) sha512.pmc +#IF(has_crypto): $(PMC2CC) sha512.pmc + $(PMC2CD) subproxy.pmc + $(PMC2CC) subproxy.pmc + +compile : generate + $(CC) $(CC_OUT) dynlexpad$(O) $(INCLUDES) $(CFLAGS) dynlexpad.c + $(CC) $(CC_OUT) foo$(O) $(INCLUDES) $(CFLAGS) foo.c + $(CC) $(CC_OUT) pair$(O) $(INCLUDES) $(CFLAGS) pair.c + $(CC) $(CC_OUT) rotest$(O) $(INCLUDES) $(CFLAGS) rotest.c +#IF(has_gdbm): $(CC) $(CC_OUT) gdbmhash$(O) $(INCLUDES) $(CFLAGS) gdbmhash.c + $(CC) $(CC_OUT) rational$(O) $(INCLUDES) $(CFLAGS) rational.c +#IF(has_crypto): $(CC) $(CC_OUT) md2$(O) $(INCLUDES) $(CFLAGS) md2.c +#IF(has_crypto): $(CC) $(CC_OUT) md4$(O) $(INCLUDES) $(CFLAGS) md4.c +#IF(has_crypto): $(CC) $(CC_OUT) md5$(O) $(INCLUDES) $(CFLAGS) md5.c +#IF(has_crypto): $(CC) $(CC_OUT) ripemd160$(O) $(INCLUDES) $(CFLAGS) ripemd160.c +#IF(has_crypto): $(CC) $(CC_OUT) sha$(O) $(INCLUDES) $(CFLAGS) sha.c +#IF(has_crypto): $(CC) $(CC_OUT) sha1$(O) $(INCLUDES) $(CFLAGS) sha1.c +#IF(has_crypto): $(CC) $(CC_OUT) sha256$(O) $(INCLUDES) $(CFLAGS) sha256.c +#IF(has_crypto): $(CC) $(CC_OUT) sha512$(O) $(INCLUDES) $(CFLAGS) sha512.c + $(CC) $(CC_OUT) subproxy$(O) $(INCLUDES) $(CFLAGS) subproxy.c + +linklibs : compile + $(LD) $(LD_OUT) dynlexpad$(LOAD_EXT) dynlexpad$(O) $(LINKARGS) + $(LD) $(LD_OUT) foo$(LOAD_EXT) foo$(O) $(LINKARGS) + $(LD) $(LD_OUT) pair$(LOAD_EXT) pair$(O) $(LINKARGS) + $(LD) $(LD_OUT) rotest$(LOAD_EXT) rotest$(O) $(LINKARGS) +#IF(has_gdbm): $(LD) $(LD_OUT) gdbmhash$(LOAD_EXT) gdbmhash$(O) $(LINKARGS) + $(LD) $(LD_OUT) rational$(LOAD_EXT) rational$(O) $(LINKARGS) +#IF(has_crypto): $(LD) $(LD_OUT) md2$(LOAD_EXT) md2$(O) $(LINKARGS) +#IF(has_crypto): $(LD) $(LD_OUT) md4$(LOAD_EXT) md4$(O) $(LINKARGS) +#IF(has_crypto): $(LD) $(LD_OUT) md5$(LOAD_EXT) md5$(O) $(LINKARGS) +#IF(has_crypto): $(LD) $(LD_OUT) ripemd160$(LOAD_EXT) ripemd160$(O) $(LINKARGS) +#IF(has_crypto): $(LD) $(LD_OUT) sha$(LOAD_EXT) sha$(O) $(LINKARGS) +#IF(has_crypto): $(LD) $(LD_OUT) sha1$(LOAD_EXT) sha1$(O) $(LINKARGS) +#IF(has_crypto): $(LD) $(LD_OUT) sha256$(LOAD_EXT) sha256$(O) $(LINKARGS) +#IF(has_crypto): $(LD) $(LD_OUT) sha512$(LOAD_EXT) sha512$(O) $(LINKARGS) + $(LD) $(LD_OUT) subproxy$(LOAD_EXT) subproxy$(O) $(LINKARGS) + +install : linklibs +#IF(cygwin or hpux): CHMOD 0775 "*$(LOAD_EXT)" + $(CP) "*$(LOAD_EXT)" $(INSTALL_DIR) + test : all cd ../.. && $(PERL) -Ilib t/harness t/dynpmc/*.t