home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Source Code / C / Applications / MacPerl 5.1.3 / Mac_Perl_513_src / perl5.002 / ext / ExtBuildRules.mk
Encoding:
Text File  |  1997-01-02  |  2.6 KB  |  87 lines  |  [TEXT/MPS ]

  1. #
  2. # Additional build rules for MacPerl extensions
  3. #
  4.  
  5. COpt     += -i $(PERL_SRC) -w nopossible
  6. PERL_LIB = $(PERL_SRC)lib:
  7. PERL_INC = $(PERL_SRC)
  8. PERL_INST= :blib:lib:
  9. PERL     = $(PERL_SRC)miniperl
  10. # Where is the Config.pm that we are using/depend on
  11. CONFIGDEP= $(PERL_LIB)Config.pm
  12. DLSRC    = dl_mac.xs
  13.  
  14. EXPORT_FILE    *= $(BASEEXT).exp
  15. EXPORTS         *= -@export $(EXPORT_FILE)
  16.  
  17. FULLEXT    *=    $(NAME)
  18. BASEEXT *=     $(NAME)
  19. ROOTEXT *=
  20.  
  21. # Where to put things:
  22. INST_LIBDIR    = $(PERL_INST)$(ROOTEXT)
  23. INST_AUTODIR= $(PERL_INST)auto:$(FULLEXT):
  24.  
  25. INST_BOOT    = $(INST_AUTODIR)$(BASEEXT).bs
  26. INST_DYNAMIC = $(INST_AUTODIR)$(BASEEXT)
  27.  
  28. STATIC_LIB_68K = $(BASEEXT).Lib.68K
  29. STATIC_LIB_680 = $(BASEEXT).Lib.680
  30. STATIC_LIB_PPC = $(BASEEXT).Lib.PPC
  31. DYNAMIC_LIB_PPC= $(BASEEXT).shlb
  32.  
  33. AUTOSPLITFILE    = $(PERL) -I$(PERL_LIB) -e 'use AutoSplit; AutoSplit::autosplit($$ARGV[0], $$ARGV[1], 0, 1, 1) ;'
  34. LNS                = $(PERL) -e 'symlink($$ARGV[0], $$ARGV[1])'
  35. MKPATH            = $(PERL) -e 'use File::Path; mkpath(\@ARGV, 1);'
  36. XSUBPP            = $(PERL_LIB)ExtUtils:xsubpp
  37. XSUBPPARGS        = $(TYPEMAPS:^"-typemap ") $(XSPROTOARG)
  38. CP              = Duplicate -y 
  39. RM_RF            = $(PERL_SRC)SafeDel
  40. MV                = Rename -y
  41.  
  42. SOURCE         *= $(BASEEXT).c $(MORE_SRC)
  43. MODULES        *= $(BASEEXT).pm $(MORE_MODS)
  44.  
  45. Objects68K    =  {$(SOURCE)}.68K.o
  46. Objects680    =  {$(SOURCE)}.680.o
  47. ObjectsPPC    =  {$(SOURCE)}.PPC.o
  48.  
  49. %.c .PRECIOUS : %.xs
  50.     Set Echo 1
  51.     $(PERL) -I$(PERL_LIB) $(XSUBPP) $(XSUBPPARGS) $< >xstmp.c && Rename -y xstmp.c $@
  52. %.cp .PRECIOUS : %.xs
  53.     Set Echo 1
  54.     $(PERL) -I$(PERL_LIB) $(XSUBPP) $(XSUBPPARGS) $< >xstmp.cp && Rename -y xstmp.c $@
  55.  
  56. static:  $(STATIC_LIB_68K) $(STATIC_LIB_680) $(STATIC_LIB_PPC)
  57. dynamic: $(DYNAMIC_LIB_PPC)
  58.  
  59. install_static: $(MODULES) $(XS_FILES)
  60.     $(MKPATH) $(INST_LIBDIR) $(INST_LIBDIR){$(PMLIBDIRS)}
  61.     For i in $(MODULES:^"@":s/@://:s/@//) $(XS_FILES:^"@":s/@://:s/@//)
  62.         $(CP) :{{i}} $(INST_LIBDIR){{i}}
  63.     End
  64. install_dynamic: install_static $(DYNAMIC_LIB_PPC)
  65.     $(MKPATH) $(INST_AUTODIR)
  66.     Duplicate -y $(DYNAMIC_LIB_PPC) $(INST_DYNAMIC)
  67. install_dynamic_debug: install_dynamic
  68.     Duplicate -y $(DYNAMIC_LIB_PPC).xSYM $(INST_DYNAMIC).xSYM
  69.     
  70.  
  71. DYNAMIC_STDLIBS_PPC    *= $(PERL_SRC)Perl {{MWPPCLibraries}}InterfaceLib {{MWPPCLibraries}}ShLibRuntime.Lib
  72.  
  73. $(STATIC_LIB_68K) : Objects68K
  74.     $(Lib68K) -o $(STATIC_LIB_68K) :Obj:{$(Objects68K)}
  75. $(STATIC_LIB_680) : Objects680
  76.     $(Lib68K) -o $(STATIC_LIB_680) :Obj:{$(Objects680)}
  77. $(STATIC_LIB_PPC) : ObjectsPPC
  78.     $(LibPPC) -o $(STATIC_LIB_PPC) :Obj:{$(ObjectsPPC)}
  79. $(DYNAMIC_LIB_PPC) : ObjectsPPC $(EXPORT_FILE)
  80.     $(SharedLibPPC) $(EXPORTS) -name $(BASEEXT) -o $(DYNAMIC_LIB_PPC) :Obj:{$(ObjectsPPC)} $(DYNAMIC_STDLIBS_PPC) $(LDLOADLIBS)
  81.  
  82. clean: 
  83.     $(RM_RF) ':Obj:≈'
  84.     
  85. realclean:
  86.     $(RM_RF) '≈.Lib.≈' $(DYNAMIC_LIB_PPC)
  87.