home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / perl502b.zip / OS2 / makefile.ibm < prev    next >
Makefile  |  1995-05-09  |  3KB  |  93 lines

  1. # MODE=exe: plain EMX exe for fork().
  2.  
  3. CC    = cci
  4. OPTIM    = -O -5
  5. # DEBUG    = -g
  6. D    =
  7.  
  8. CFLAGS    = $(OPTIM) $(DEBUG) -w1 -DSTANDARD_C -DEMBED -DHIDEMYMALLOC -DDOSISH -DOS2=2 -I. -Ios2 $D
  9. LDFLAGS    = $(OPTIM) $(DEBUG)
  10. LDLIBS    = -lx
  11.  
  12. TARGETS = perl5i.exe perl5i.dll perl5i.lib
  13.  
  14. modules    = Fcntl GDBM_File SDBM_File POSIX Socket UPM REXXCALL
  15.  
  16. # mallocobj = malloc$O
  17. obj1 = $(mallocobj) gv$O toke$O perly$O op$O regcomp$O dump$O util$O mg$O
  18. obj2 = hv$O av$O run$O pp_hot$O sv$O pp$O scope$O pp_ctl$O pp_sys$O
  19. obj3 = doop$O doio$O regexec$O taint$O deb$O perl$O os2$O globals$O
  20. objs = $(obj1) $(obj2) $(obj3)
  21.  
  22. exts = DynaLoader$O
  23. extsx = Socket$O POSIX$O
  24. extsd = DynaLoader$O REXXCALL$O
  25.  
  26. .IF $(OPTIM) == $(NULL)
  27.   SUFFIX = d
  28.   CFLAGS += -DDEBUGGING
  29. .ELSE
  30.   SUFFIX =
  31. .END
  32.  
  33. .SOURCE.c : os2 ext/DynaLoader ext/REXXCALL ext/POSIX
  34. .SOURCE$O : ibm$(SUFFIX)
  35.  
  36. all  : config.h preplibrary $(TARGETS) lib/Config.pm modules
  37. mini : miniperl.exe
  38. dbg  : perl5d.exe
  39.  
  40. miniperl.exe miniperl.map .UPDATEALL : miniperlmain$O $(objs)
  41.     $(CC) $(LDFLAGS) $< $(LDLIBS) -gm -o $@
  42.  
  43. perl5i.exe : os2main$O perl5i.lib
  44.     $(CC) $(LDFLAGS) $< -o $@
  45.  
  46. perl5d.exe : os2main2$O $(objs) $(extsd)
  47.     $(CC) $(LDFLAGS) $< $(LDLIBS) -gm -o $@
  48.  
  49. perl5i.dll : $(objs) $(exts) perl5i.def
  50.     $(CC) $(LDFLAGS) -Zdll $< $(LDLIBS) -o $@
  51.  
  52. perl5i.lib : perl5i.def
  53.     implib /noign $@ perl5i.def
  54.  
  55. perl5i.def : os2/perl5hdr.def miniperl.map os2/mkdef.pl
  56.     echo LIBRARY 'Perl5ibm' INITINSTANCE TERMINSTANCE >$@
  57.     cat os2/perl5hdr.def >> $@
  58.     .\miniperl -n os2/mkdef.pl miniperl.map | sort -u - >>$@
  59.  
  60. preplibrary : miniperl.exe lib/Config.pm config.sh
  61.     -mkdir lib/auto
  62.     @echo "    AutoSplitting perl library"
  63.     find lib -name "*.pm" ! -name "REXX.pm" -print >tmp
  64.     .\miniperl -Ilib -e "use AutoSplit; autosplit_lib_modules(@ARGV)" @tmp
  65.     -$(RM) $(RMFLAGS) tmp
  66.  
  67. config.h : config.sh
  68.     ksh config_h.sh
  69.  
  70. lib/Config.pm : config.sh miniperl.exe
  71.     .\miniperl.exe configpm
  72.  
  73. os2main2$O : os2main.c
  74.     $(CC) $(CFLAGS) -DSTATIC $? -c -o $@
  75.  
  76. DynaLoader.c .SETDIR=ext/DynaLoader : dl_os2.xs
  77.     ..\..\miniperl ../../lib/ExtUtils/xsubpp dl_os2.xs > DynaLoader.c
  78.  
  79. REXXCALL.c .SETDIR=ext/REXXCALL : REXXCALL.xs
  80.     ..\..\miniperl ../../lib/ExtUtils/xsubpp REXXCALL.xs > REXXCALL.c
  81.  
  82. POSIX.c .SETDIR=ext/POSIX : POSIX.xs
  83.     ..\..\miniperl ../../lib/ExtUtils/xsubpp POSIX.xs > DynaLoader.c
  84.  
  85. modules :
  86.     cmd /c "for %x in ($(modules)) do call os2\ext %x"
  87.  
  88. #############################################################################
  89.  
  90. install :
  91.     -cp -t perl5.exe perl5.dll perl5x.exe os2/h2xs.cmd $(ROOTDIR)/usr/binp
  92.     -cp -t perl5.exe $(ROOTDIR)/usr/binp/perl.exe
  93.