Ticket #338: convert_dynpmc_to_makefile.patch

File convert_dynpmc_to_makefile.patch, 5.9 KB (added by allison, 6 years ago)

Replacement makefile template for dynpmc.

  • config/gen/makefiles/dynpmc.in

     
    11# Copyright (C) 2003-2009, The Perl Foundation. 
    22# $Id$ 
    33 
    4 PERL        = @perl@ 
    5 RM_F        = @rm_f@ 
    6 LOAD_EXT    = @load_ext@ 
    7 RUNTIME_DIR = @build_dir@/runtime/parrot/dynext 
    8 O           = @o@ 
     4PERL          = @perl@ 
     5RM_F          = @rm_f@ 
     6CP            = @cp@ 
     7CHMOD         = @chmod@ 
     8LOAD_EXT      = @load_ext@ 
     9BUILD_DIR     = @build_dir@ 
     10INSTALL_DIR   = $(BUILD_DIR)@slash@runtime@slash@parrot@slash@dynext 
     11O             = @o@ 
     12CC            = @cc@ -c 
     13LD            = @ld@ 
     14LDFLAGS       = @ldflags@ @ld_debug@ @rpath_blib@ 
     15LD_LOAD_FLAGS = @ld_load_flags@ 
     16CFLAGS        = @ccflags@ @cc_shared@ @cc_debug@ @ccwarn@ @cc_hasjit@ @cg_flag@ @gc_flag@ 
     17CC_OUT        = @cc_o_out@ 
     18LD_OUT        = @ld_out@ 
     19#IF(parrot_is_shared):LIBPARROT = @libparrot_ldflags@ 
     20#ELSE:LIBPARROT = 
    921 
     22BUILD_TOOLS_DIR = $(BUILD_DIR)@slash@tools@slash@build 
     23BUILD_LIB_DIR   = $(BUILD_DIR)@slash@blib@slash@lib 
     24PMC2C           = $(PERL) $(BUILD_TOOLS_DIR)@slash@pmc2c.pl 
     25INCLUDES        = -I$(BUILD_DIR)@slash@include -I@build_dir@@slash@src@slash@pmc 
     26#IF(win32):LINKARGS         = @libs@ @icu_shared@ $(LDFLAGS) $(LD_LOAD_FLAGS) $(LIBPARROT) 
     27#ELSIF(cc==gcc):LINKARGS       = -Wl,-L $(BUILD_LIB) $(LDFLAGS) $(LD_LOAD_FLAGS) $(LIBPARROT) 
     28#ELSE:LINKARGS         = $(LDFLAGS) $(LD_LOAD_FLAGS) $(LIBPARROT) 
     29 
    1030# add your dynamic pmcs here 
    1131# 
    1232# gdbmhash is only built when 'libgdbm.so' is available 
    1333# 
    14 PMCS = \ 
    15   dynlexpad \ 
    16   foo \ 
    17   pair \ 
    18   rotest \ 
    19 #IF(has_gdbm):  gdbmhash \ 
    20   rational \ 
    21 #IF(has_crypto):  md2 \ 
    22 #IF(has_crypto):  md4 \ 
    23 #IF(has_crypto):  md5 \ 
    24 #IF(has_crypto):  ripemd160 \ 
    25 #IF(has_crypto):  sha \ 
    26 #IF(has_crypto):  sha1 \ 
    27 #IF(has_crypto):  sha256 \ 
    28 #IF(has_crypto):  sha512 \ 
    29   subproxy 
     34PMC_FILES = \ 
     35  dynlexpad.pmc \ 
     36  foo.pmc \ 
     37  pair.pmc \ 
     38  rotest.pmc \ 
     39#IF(has_gdbm):  gdbmhash.pmc \ 
     40  rational.pmc \ 
     41#IF(has_crypto):  md2.pmc \ 
     42#IF(has_crypto):  md4.pmc \ 
     43#IF(has_crypto):  md5.pmc \ 
     44#IF(has_crypto):  ripemd160.pmc \ 
     45#IF(has_crypto):  sha.pmc \ 
     46#IF(has_crypto):  sha1.pmc \ 
     47#IF(has_crypto):  sha256.pmc \ 
     48#IF(has_crypto):  sha512.pmc \ 
     49  subproxy.pmc 
    3050 
    31 BUILD = $(PERL) @build_dir@/tools/build/dynpmc.pl 
    32  
    3351# some *.pmc file are generated 
    3452GEN_PMC_DEFINITIONS = \ 
    3553#IF(has_crypto):  md2.pmc \ 
     
    4159#IF(has_crypto):  sha256.pmc \ 
    4260#IF(has_crypto):  sha512.pmc 
    4361 
    44 all : 
    45         @$(BUILD) generate $(PMCS) 
    46         @$(BUILD) compile $(PMCS) 
    47         @$(BUILD) linklibs $(PMCS) 
    48         @$(BUILD) copy --destination=$(RUNTIME_DIR) $(PMCS) 
     62PMC2CD = $(PERL) $(BUILD_TOOLS_DIR)/pmc2c.pl --dump 
     63PMC2CC = $(PERL) $(BUILD_TOOLS_DIR)/pmc2c.pl --c 
    4964 
     65all : install 
     66 
     67generate : $(PMC_FILES) 
     68        $(PMC2CD) dynlexpad.pmc 
     69        $(PMC2CC) dynlexpad.pmc 
     70        $(PMC2CD) foo.pmc 
     71        $(PMC2CC) foo.pmc 
     72        $(PMC2CD) pair.pmc 
     73        $(PMC2CC) pair.pmc 
     74        $(PMC2CD) rotest.pmc 
     75        $(PMC2CC) rotest.pmc 
     76#IF(has_gdbm):  $(PMC2CD) gdbmhash.pmc 
     77#IF(has_gdbm):  $(PMC2CC) gdbmhash.pmc 
     78        $(PMC2CD) rational.pmc 
     79        $(PMC2CC) rational.pmc 
     80#IF(has_crypto):        $(PMC2CD) md2.pmc 
     81#IF(has_crypto):        $(PMC2CC) md2.pmc 
     82#IF(has_crypto):        $(PMC2CD) md4.pmc 
     83#IF(has_crypto):        $(PMC2CC) md4.pmc 
     84#IF(has_crypto):        $(PMC2CD) md5.pmc 
     85#IF(has_crypto):        $(PMC2CC) md5.pmc 
     86#IF(has_crypto):        $(PMC2CD) ripemd160.pmc 
     87#IF(has_crypto):        $(PMC2CC) ripemd160.pmc 
     88#IF(has_crypto):        $(PMC2CD) sha.pmc 
     89#IF(has_crypto):        $(PMC2CC) sha.pmc 
     90#IF(has_crypto):        $(PMC2CD) sha1.pmc 
     91#IF(has_crypto):        $(PMC2CC) sha1.pmc 
     92#IF(has_crypto):        $(PMC2CD) sha256.pmc 
     93#IF(has_crypto):        $(PMC2CC) sha256.pmc 
     94#IF(has_crypto):        $(PMC2CD) sha512.pmc 
     95#IF(has_crypto):        $(PMC2CC) sha512.pmc 
     96        $(PMC2CD) subproxy.pmc 
     97        $(PMC2CC) subproxy.pmc 
     98 
     99compile : generate 
     100        $(CC) $(CC_OUT) dynlexpad$(O) $(INCLUDES) $(CFLAGS) dynlexpad.c 
     101        $(CC) $(CC_OUT) foo$(O) $(INCLUDES) $(CFLAGS) foo.c 
     102        $(CC) $(CC_OUT) pair$(O) $(INCLUDES) $(CFLAGS) pair.c 
     103        $(CC) $(CC_OUT) rotest$(O) $(INCLUDES) $(CFLAGS) rotest.c 
     104#IF(has_gdbm):  $(CC) $(CC_OUT) gdbmhash$(O) $(INCLUDES) $(CFLAGS) gdbmhash.c 
     105        $(CC) $(CC_OUT) rational$(O) $(INCLUDES) $(CFLAGS) rational.c 
     106#IF(has_crypto):        $(CC) $(CC_OUT) md2$(O) $(INCLUDES) $(CFLAGS) md2.c 
     107#IF(has_crypto):        $(CC) $(CC_OUT) md4$(O) $(INCLUDES) $(CFLAGS) md4.c 
     108#IF(has_crypto):        $(CC) $(CC_OUT) md5$(O) $(INCLUDES) $(CFLAGS) md5.c 
     109#IF(has_crypto):        $(CC) $(CC_OUT) ripemd160$(O) $(INCLUDES) $(CFLAGS) ripemd160.c 
     110#IF(has_crypto):        $(CC) $(CC_OUT) sha$(O) $(INCLUDES) $(CFLAGS) sha.c 
     111#IF(has_crypto):        $(CC) $(CC_OUT) sha1$(O) $(INCLUDES) $(CFLAGS) sha1.c 
     112#IF(has_crypto):        $(CC) $(CC_OUT) sha256$(O) $(INCLUDES) $(CFLAGS) sha256.c 
     113#IF(has_crypto):        $(CC) $(CC_OUT) sha512$(O) $(INCLUDES) $(CFLAGS) sha512.c 
     114        $(CC) $(CC_OUT) subproxy$(O) $(INCLUDES) $(CFLAGS) subproxy.c 
     115 
     116linklibs : compile 
     117        $(LD) $(LD_OUT) dynlexpad$(LOAD_EXT) dynlexpad$(O) $(LINKARGS) 
     118        $(LD) $(LD_OUT) foo$(LOAD_EXT) foo$(O) $(LINKARGS) 
     119        $(LD) $(LD_OUT) pair$(LOAD_EXT) pair$(O) $(LINKARGS) 
     120        $(LD) $(LD_OUT) rotest$(LOAD_EXT) rotest$(O) $(LINKARGS) 
     121#IF(has_gdbm):  $(LD) $(LD_OUT) gdbmhash$(LOAD_EXT) gdbmhash$(O) $(LINKARGS) 
     122        $(LD) $(LD_OUT) rational$(LOAD_EXT) rational$(O) $(LINKARGS) 
     123#IF(has_crypto):        $(LD) $(LD_OUT) md2$(LOAD_EXT) md2$(O) $(LINKARGS) 
     124#IF(has_crypto):        $(LD) $(LD_OUT) md4$(LOAD_EXT) md4$(O) $(LINKARGS) 
     125#IF(has_crypto):        $(LD) $(LD_OUT) md5$(LOAD_EXT) md5$(O) $(LINKARGS) 
     126#IF(has_crypto):        $(LD) $(LD_OUT) ripemd160$(LOAD_EXT) ripemd160$(O) $(LINKARGS) 
     127#IF(has_crypto):        $(LD) $(LD_OUT) sha$(LOAD_EXT) sha$(O) $(LINKARGS) 
     128#IF(has_crypto):        $(LD) $(LD_OUT) sha1$(LOAD_EXT) sha1$(O) $(LINKARGS) 
     129#IF(has_crypto):        $(LD) $(LD_OUT) sha256$(LOAD_EXT) sha256$(O) $(LINKARGS) 
     130#IF(has_crypto):        $(LD) $(LD_OUT) sha512$(LOAD_EXT) sha512$(O) $(LINKARGS) 
     131        $(LD) $(LD_OUT) subproxy$(LOAD_EXT) subproxy$(O) $(LINKARGS) 
     132 
     133install : linklibs 
     134#IF(cygwin or hpux):    CHMOD 0775 "*$(LOAD_EXT)" 
     135        $(CP) "*$(LOAD_EXT)" $(INSTALL_DIR) 
     136 
    50137test : all 
    51138        cd ../.. && $(PERL) -Ilib t/harness t/dynpmc/*.t 
    52139