home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / perl502b.zip / OS2 / makefile.mk < prev    next >
Makefile  |  1996-02-26  |  3KB  |  107 lines

  1. CC    = gcc
  2. OPTIM    = -O2 -m486 -fomit-frame-pointer
  3. # DEBUG    = -g
  4. D    =
  5.  
  6. CFLAGS    = $(OPTIM) $(DEBUG) -DEMBED -DDOSISH -DOS2=2 -I. -Ios2 $D
  7. LDFLAGS    = $(OPTIM) $(DEBUG)
  8. LDLIBS  = -lx -lsocket -lm -lbsd
  9.  
  10. .IF $O == .obj
  11.   CFLAGS  += -Zomf
  12.   LDFLAGS += -Zomf -Zcrtdll -Zstack 384
  13.   TARGETS = perl5.exe perl5.dll perl5.lib
  14.   REXX    = os2rexx.obj
  15.   suffix  = dll
  16.   builtin = DynaLoader
  17. .ELSE
  18.   CFLAGS  += -DHAS_FORK
  19.   TARGETS = perl5x.exe
  20.   REXX    =
  21.   suffix  = exe
  22.   builtin = Fcntl FileHandle Socket POSIX Process
  23. .END
  24. .IF $(OPTIM) == $(NULL)
  25.   debug = d
  26.   CFLAGS += -DDEBUGGING
  27. .END
  28.  
  29. modules       = DB_File Fcntl FileHandle POSIX Socket
  30. mymodules  = DB2CLI DPI
  31. os2modules = FTP Process REXX UPM
  32.  
  33. mallocobj = malloc$O
  34. obj1 = $(mallocobj) gv$O toke$O perly$O op$O regcomp$O dump$O util$O mg$O
  35. obj2 = hv$O av$O run$O pp_hot$O sv$O pp$O scope$O pp_ctl$O pp_sys$O
  36. obj3 = doop$O doio$O regexec$O taint$O deb$O perl$O os2$O globals$O
  37. objs = $(obj1) $(obj2) $(obj3)
  38. exts = {$(builtin)}$O
  39.  
  40. .SOURCE.c : . os2 ext/{$(builtin)} ext/os2/{$(builtin)}
  41. .SOURCE$O : obj$(debug)
  42.  
  43. all  : config.h preplibrary $(TARGETS) lib/Config.pm modules os2modules
  44. mini : miniperl.exe
  45. bin  : $(TARGETS)
  46. dbg  : perl5d.exe
  47. mod  : modules os2modules
  48.  
  49. .IF $O == .obj
  50. miniperl.exe miniperl.map .UPDATEALL : miniperlmain$O $(objs)
  51.     $(CC) $(LDFLAGS) $< $(LDLIBS) -Zmap -Zlinker /map -Zlinker /exepack:2 -o $@
  52. .END
  53.  
  54. perl5.exe : main_dll$O perl5.lib
  55.     $(CC) $(LDFLAGS) $< -o $@
  56.  
  57. perl5x.exe : main_exe$O $(objs) $(exts)
  58.     $(CC) $(LDFLAGS) $< $(LDLIBS) -o perl5x
  59.     emxbind -b -s perl5x
  60.  
  61. perl5d.exe : main_exe$O $(objs) $(exts)
  62.     $(CC) $(LDFLAGS) $< $(LDLIBS) -Zmap -Zlinker /map -o $@
  63.  
  64. perl5.dll : $(objs) $(exts) $(REXX) perl5.def
  65.     $(CC) $(LDFLAGS) -Zdll $< $(LDLIBS) -o $@
  66.  
  67. perl5.lib : perl5.def
  68.     implib /noign $@ perl5.def
  69.  
  70. perl5.def : os2/perl5hdr.def miniperl.map os2/mkdef.pl
  71.     echo LIBRARY 'Perl5' INITINSTANCE TERMINSTANCE >$@
  72.     cat os2/perl5hdr.def >>$@
  73.     .\miniperl -n os2/mkdef.pl miniperl.map | sort -u - >>$@
  74.  
  75. preplibrary : miniperl.exe lib/Config.pm config.sh
  76.     -mkdir lib/auto
  77.     @echo "    AutoSplitting perl library"
  78.     find lib -name "*.pm" ! -name "REXX.pm" -print >tmp1
  79.     .\miniperl -Ilib -e "use AutoSplit; autosplit_lib_modules(@ARGV)" @tmp1
  80.     -$(RM) $(RMFLAGS) tmp1
  81.  
  82. main_$(suffix).c : writemain os2\os2main.c
  83.     sed -e "s+miniperlmain+os2/os2main+" writemain >tmp2
  84.     ksh tmp2 $(builtin) > $@
  85.     -$(RM) $(RMFLAGS) tmp2
  86.  
  87. config.h : config.sh
  88.     ksh config_h.sh
  89.  
  90. lib/Config.pm : config.sh miniperl.exe
  91.     .\miniperl.exe configpm
  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) $(mymodules)) 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.     emxload -qw
  105.     -cp -t perl5.exe perl5.dll perl5x.exe $(ROOTDIR)/usr/binp
  106.     -cp -t perl5.exe $(ROOTDIR)/usr/binp/perl.exe
  107.