home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / perl501m.zip / OS2 / makefile.mk < prev    next >
Makefile  |  1995-07-04  |  3KB  |  106 lines

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