home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 9 Archive / 09-Archive.zip / unzip531.zip / os2 / makefile.os2 < prev    next >
Makefile  |  1997-04-26  |  18KB  |  663 lines

  1. # Makefile for UnZip, UnZipSFX and fUnZip                     20 April 1997
  2. #
  3. #  supported compilers:
  4. #  - Microsoft C, version 6.00 or higher, for use under OS/2 1.x (16-bit)
  5. #  - Watcom C/C++, version 9.0+, for use under OS/2 1.x or 2.x+ (16/32-bit)
  6. #  - emx+gcc, version 0.9c or higher, for use under OS/2 2.x+ (32-bit)
  7. #  - IBM C Set++, for use under OS/2 2.x+ (32-bit)
  8. #  - Borland C++, for use under OS/2 2.x+ (32-bit)
  9. #  - Metaware High C/C++, for use under OS/2 2.x+ (32-bit)
  10. #
  11. #  supported cross-compilers:
  12. #  - Microsoft C, version 6.0 or 7.0, for use under DOS (16-bit)
  13. #  - Watcom C/C++, version 9.0+, for use under DOS/Win95/NT (16/32-bit)
  14. #  - GNU gcc (emx), version 0.9c or higher, for use under DOS/Win95/NT (32-bit)
  15. #
  16. #  supported assemblers:
  17. #  - Microsoft MASM 6.00 with Microsoft C
  18. #  - Watcom WASM with Watcom C/C++
  19. #  - GNU as with GNU gcc
  20.  
  21. # To use MASM 5.x instead of MASM 6.00:
  22. #  - set AS="masm -t -Ml"
  23. #  - set ASEOL=";"
  24.  
  25. # To use, enter "{d,n}make -f os2/makefile.os2" (this makefile depends on its
  26. # name being "makefile.os2", and it must be in the os2 subdirectory).
  27.  
  28. # Notes on Microsoft C 6.00 compilation for OS/2:
  29. #
  30. #   The resulting programs can be used under OS/2 protected mode only, not
  31. #   under DOS.  A larger stack has to be used for OS/2 because system calls
  32. #   use more stack than under DOS; 8k is recommended by Microsoft.
  33.  
  34. # Notes on IBM C Set++, Watcom C/C++, Borland C++ or emx+gcc compilation:
  35. #
  36. #   The resulting programs can be used under protected mode of OS/2 2.x or
  37. #   higher only, not under OS/2 1.x and not under DOS.
  38. #
  39. #   The NFLAGS macro is used to work around an optimization bug in the IBM
  40. #   C++ Set compiler; this is fixed by CSD #4, so NFLAGS="" can be used for
  41. #   all targets below.  We'll leave it as is for this release...
  42.  
  43. # Notes on Watcom C/C++ compilation for DOS with the PMODE/W extender:
  44. #
  45. #   You need to add the following section to your \watcom\binb\wlsystem.lnk
  46. #   file and also need to copy pmodew.exe to the same directory:
  47. #
  48. #   system begin pmodew
  49. #       option osname='PMODE/W'
  50. #       libpath %WATCOM%\lib386
  51. #       libpath %WATCOM%\lib386\dos
  52. #       op stub=pmodew.exe
  53. #       format os2 le
  54. #   end
  55. #
  56. #   PMODE/W 1.16 or higher is required.  See also msdos/README for important
  57. #   notes about PMODE/W bugs.
  58.  
  59. default:
  60.     @echo "Enter `$(MAKE) -f os2/makefile.os2 target' from the main"
  61.     @echo "UnZip directory, where target is one of:"
  62.     @echo "   msc mscdos ibm ibmdyn ibmdebug ibmprof ibmdll ibmdlldyn"
  63.     @echo "   ibmdlldebug ibmdllprof ibmdlldynvalidate ibmdlldebugvalidate"
  64.     @echo "   metaware borland gcc gccdyn gccdebug gccdos gccwin32 watcom"
  65.     @echo "   watcom16 watcomdos watcom16dos pmodew watcomwin32"
  66.  
  67. # MS C 6.00 for OS/2, 16-bit (should figure out way to split unzip/funzip
  68. # compiles so former is always large model and latter always small model...)
  69. msc:
  70.     $(MAKE) -f os2/makefile.os2 all \
  71.     CC="cl -nologo -AL -Ocegit -Gs -I. $(FP)" \
  72.     CFLAGS="-G2 -Zp1 -W3 -DOS2 -DMSC -DASM_CRC $(LOCAL_UNZIP)" \
  73.     NFLAGS="" \
  74.     DLLFLAG="" \
  75.     AS="ml -nologo -c -Zm -Cp" \
  76.     ASFLAGS="-D__LARGE__ -D__286" \
  77.     LDFLAGS="-F 2000 -Lp -Fe" \
  78.     LDFLAGS2="-link /noe" \
  79.     OUT="-Fo" \
  80.     OBJ=".obj" \
  81.     CRC32="crc_i86" \
  82.     CRC32F="crc_i86" \
  83.     CRC32X="crc_i86" \
  84.     DEF="os2\unzip.def"
  85.  
  86. # MS C 6.00 for OS/2, debug version
  87. mscdebug:
  88.     $(MAKE) -f os2/makefile.os2 all \
  89.     CC="cl -nologo -AL -Zi -Od -I. $(FP)" \
  90.     CFLAGS="-G2 -Zp1 -W3 -DOS2 -DMSC -DASM_CRC $(LOCAL_UNZIP)" \
  91.     NFLAGS="" \
  92.     DLLFLAG="" \
  93.     AS="ml -nologo -c -Zim -Cp" \
  94.     ASFLAGS="-D__LARGE__ -D__286" \
  95.     LDFLAGS="-F 2000 -Lp -Fe" \
  96.     LDFLAGS2="-link /noe" \
  97.     OUT="-Fo" \
  98.     OBJ=".obj" \
  99.     CRC32="crc_i86" \
  100.     CRC32F="crc_i86" \
  101.     CRC32X="crc_i86" \
  102.     DEF="os2\unzip.def"
  103.  
  104. # cross-compilation for MS-DOS with MS C 6.00 (same comment as above...formerly;
  105. # now unzip is medium model again, with [almost] all strings in far memory)
  106. mscdos:
  107.     $(MAKE) -f os2/makefile.os2 all \
  108.     CC="cl -nologo -AM -Oaict -Gs -I. $(FP)" \
  109.     CFLAGS="-Zp1 -W3 -DASM_CRC $(LOCAL_UNZIP)" \
  110.     NFLAGS="" \
  111.     DLLFLAG="" \
  112.     AS="ml -nologo -c -Zm -Cp" \
  113.     ASFLAGS="-D__MEDIUM__" \
  114.     LDFLAGS="-F 0C00 -Lr -Fe" \
  115.     LDFLAGS2="-link /noe /exe" \
  116.     OUT="-Fo" \
  117.     OBJ=".obj" \
  118.     CRC32="crc_i86" \
  119.     CRC32F="crc_i86" \
  120.     CRC32X="crc_i86" \
  121.     OBJU2="msdos.obj" \
  122.     OBJX2="msdos_.obj" \
  123.     OSDEP_H="msdos/doscfg.h"
  124.  
  125. # IBM C Set, statically linked runtime
  126. ibm:
  127.     $(MAKE) -f os2/makefile.os2 all \
  128.     CC="icc -Q -O -Gs -I." \
  129.     CFLAGS="-Sm -Sp1 -DOS2 $(LOCAL_UNZIP)" \
  130.     NFLAGS="-O-" \
  131.     DLLFLAG="" \
  132.     LDFLAGS="-B/ST:0x50000 -Fe" \
  133.     LDFLAGS2="" \
  134.     OUT="-Fo" \
  135.     OBJ=".obj" \
  136.     DEF="os2\unzip.def"
  137.  
  138. # IBM C Set, dynamically linked runtime
  139. ibmdyn:
  140.     $(MAKE) -f os2/makefile.os2 all \
  141.     CC="icc -Q -O -Gs -Gd -I." \
  142.     CFLAGS="-Sm -Sp1 -DOS2 $(LOCAL_UNZIP)" \
  143.     NFLAGS="-O-" \
  144.     DLLFLAG="" \
  145.     LDFLAGS="-B/ST:0x50000 -Fe" \
  146.     LDFLAGS2="" \
  147.     OUT="-Fo" \
  148.     OBJ=".obj" \
  149.     DEF="os2\unzip.def"
  150.  
  151. # IBM C Set, debug version
  152. ibmdebug:
  153.     $(MAKE) -f os2/makefile.os2 all \
  154.     CC="icc -Q -Ti -I." \
  155.     CFLAGS="-Sm -Sp1 -D__DEBUG_ALLOC__ -DOS2 $(LOCAL_UNZIP)" \
  156.     NFLAGS="-O-" \
  157.     DLLFLAG="" \
  158.     LDFLAGS="-B/ST:0x50000 -Fe" \
  159.     LDFLAGS2="" \
  160.     OUT="-Fo" \
  161.     OBJ=".obj" \
  162.     DEF="os2\unzip.def"
  163.  
  164. # IBM C Set, profiling version for PROFIT
  165. ibmprof:
  166.     $(MAKE) -f os2/makefile.os2 all \
  167.     CC="icc -Q -O -Gs -Gh -Ti -I." \
  168.     CFLAGS="-Sm -Sp1 -DOS2 $(LOCAL_UNZIP)" \
  169.     NFLAGS="-O-" \
  170.     DLLFLAG="" \
  171.     LDFLAGS="-B/ST:0x50000 -Fe" \
  172.     LDFLAGS2="cppopa3.obj" \
  173.     OUT="-Fo" \
  174.     OBJ=".obj" \
  175.     DEF="os2\unzip.def"
  176.  
  177. # IBM C Set, statically linked runtime
  178. ibmdll:
  179.     $(MAKE) -f os2/makefile.os2 dll \
  180.     CC="icc -Q -O -Gs -I." \
  181.     CFLAGS="-Sm -Sp1 -DOS2 $(LOCAL_UNZIP)" \
  182.     NFLAGS="-O-" \
  183.     DLLFLAG="-Gm -Ge- -DDLL -DOS2DLL -DAPI_DOC" \
  184.     LDFLAGS="-Fe" \
  185.     LDFLAGS2="" \
  186.     OUT="-Fo" \
  187.     OBJ=".obj" \
  188.     DLLDEF="os2\rexxapi.def" \
  189.     STUBDEF="os2\stub.def" \
  190.     DEF="os2\unzip.def" \
  191.     APILIB="REXX.lib"
  192.  
  193. # IBM C Set, dynamically linked runtime
  194. ibmdyndll:
  195.     $(MAKE) -f os2/makefile.os2 dll \
  196.     CC="icc -Q -O -Gs -Gd -I." \
  197.     CFLAGS="-Sm -Sp1 -DOS2 $(LOCAL_UNZIP)" \
  198.     NFLAGS="-O-" \
  199.     DLLFLAG="-Gm -Ge- -DDLL -DOS2DLL -DAPI_DOC" \
  200.     LDFLAGS="-Fe" \
  201.     LDFLAGS2="" \
  202.     OUT="-Fo" \
  203.     OBJ=".obj" \
  204.     DLLDEF="os2\rexxapi.def" \
  205.     STUBDEF="os2\stub.def" \
  206.     DEF="os2\unzip.def" \
  207.     APILIB="REXX.lib"
  208.  
  209. # IBM C Set, debug version
  210. ibmdebugdll:
  211.     $(MAKE) -f os2/makefile.os2 dll \
  212.     CC="icc -Q -Ti -I." \
  213.     CFLAGS="-Sm -Sp1 -D__DEBUG_ALLOC__ -DOS2 $(LOCAL_UNZIP)" \
  214.     NFLAGS="-O-" \
  215.     DLLFLAG="-Gm -Ge- -DDLL -DOS2DLL -DAPI_DOC" \
  216.     LDFLAGS="-Fe" \
  217.     LDFLAGS2="" \
  218.     OUT="-Fo" \
  219.     OBJ=".obj" \
  220.     DLLDEF="os2\rexxapi.def" \
  221.     STUBDEF="os2\stub.def" \
  222.     DEF="os2\unzip.def" \
  223.     APILIB="REXX.lib"
  224.  
  225. # IBM C Set, profiling version for PROFIT
  226. ibmprofdll:
  227.     $(MAKE) -f os2/makefile.os2 dll \
  228.     CC="icc -Q -O -Gs -Gh -Ti -I." \
  229.     CFLAGS="-Gm -Sm -Sp1 -DOS2 $(LOCAL_UNZIP)" \
  230.     NFLAGS="-O-" \
  231.     DLLFLAG="-Ge- -DDLL -DOS2DLL -DAPI_DOC" \
  232.     LDFLAGS="-Fe" \
  233.     LDFLAGS2="profit.obj" \
  234.     OUT="-Fo" \
  235.     OBJ=".obj" \
  236.     DLLDEF="os2\rexxapi.def" \
  237.     STUBDEF="os2\stub.def" \
  238.     DEF="os2\unzip.def" \
  239.     APILIB="REXX.lib"
  240.  
  241. # Watcom C/386 9.0 or higher
  242. watcom:
  243.     $(MAKE) -f os2/makefile.os2 all \
  244.     CC="wcl386 -bt=os2v2 -zq -Ox -s -I." \
  245.     CFLAGS="-Zp1 -DOS2 -DASM_CRC $(LOCAL_UNZIP)" \
  246.     NFLAGS="" \
  247.     DLLFLAG="" \
  248.     AS="wasm -bt=os2v2 -zq -3 -mf" \
  249.     ASFLAGS="" \
  250.     LDFLAGS="-k0x50000 -x -l=os2v2 -Fe=" \
  251.     LDFLAGS2="" \
  252.     OUT="-Fo" \
  253.     OBJ=".obj" \
  254.     CRC32="crc_i386" \
  255.     CRC32F="crc_i386" \
  256.     CRC32X="crc_i386" \
  257.     DEF="" \
  258.     DIRSEP="\\" \
  259.     AS_DIRSEP="\\"
  260.  
  261. # Watcom C/286 9.0 or higher
  262. watcom16:
  263.     $(MAKE) -f os2/makefile.os2 all \
  264.     CC="wcl -bt=os2 -zq -ml -Ox -s -I." \
  265.     CFLAGS="-Zp1 -DOS2 $(LOCAL_UNZIP)" \
  266.     NFLAGS="" \
  267.     DLLFLAG="" \
  268.     AS="wasm -bt=os2 -zq -2 -ml" \
  269.     ASFLAGS="" \
  270.     LDFLAGS="-k0x2000 -x -l=os2 -Fe=" \
  271.     LDFLAGS2="" \
  272.     OUT="-Fo" \
  273.     OBJ=".obj" \
  274.     CRC32="crc_i86" \
  275.     CRC32F="crc_i86" \
  276.     CRC32X="crc_i86" \
  277.     DIRSEP="\\" \
  278.     AS_DIRSEP="\\"
  279.  
  280. # Watcom C/386 9.0 or higher, crosscompilation for DOS, DOS4GW extender
  281. watcomdos:
  282.     $(MAKE) -f os2/makefile.os2 all \
  283.     CC="wcl386 -bt=dos4g -zq -Ox -s -I." \
  284.     CFLAGS="-Zp1 -DMSDOS -DASM_CRC $(LOCAL_UNZIP)" \
  285.     NFLAGS="" \
  286.     DLLFLAG="" \
  287.     AS="wasm -bt=dos4g -zq -3 -mf" \
  288.     ASFLAGS="" \
  289.     LDFLAGS="-k0x50000 -x -l=dos4g -Fe=" \
  290.     LDFLAGS2="" \
  291.     OUT="-Fo" \
  292.     OBJ=".obj" \
  293.     CRC32="crc_i386" \
  294.     CRC32F="crc_i386" \
  295.     CRC32X="crc_i386" \
  296.     OBJU2="msdos.obj" \
  297.     OBJX2="msdos_.obj" \
  298.     OSDEP_H="msdos/doscfg.h" \
  299.     DIRSEP="\\" \
  300.     AS_DIRSEP="\\"
  301.  
  302. # Watcom C/386 9.0 or higher, crosscompilation for DOS, PMODE/W extender
  303. pmodew:
  304.     $(MAKE) -f os2/makefile.os2 all \
  305.     CC="wcl386 -bt=dos4g -zq -Ox -s -I." \
  306.     CFLAGS="-Zp1 -DMSDOS -DASM_CRC $(LOCAL_UNZIP)" \
  307.     NFLAGS="" \
  308.     DLLFLAG="" \
  309.     AS="wasm -bt=dos4g -zq -3 -mf" \
  310.     ASFLAGS="" \
  311.     LDFLAGS="-k0x50000 -x -l=pmodew -Fe=" \
  312.     LDFLAGS2="" \
  313.     OUT="-Fo" \
  314.     OBJ=".obj" \
  315.     CRC32="crc_i386" \
  316.     CRC32F="crc_i386" \
  317.     CRC32X="crc_i386" \
  318.     OBJU2="msdos.obj" \
  319.     OBJX2="msdos_.obj" \
  320.     OSDEP_H="msdos/doscfg.h" \
  321.     DIRSEP="\\" \
  322.     AS_DIRSEP="\\"
  323.  
  324. # Watcom C/286 9.0 or higher, crosscompilation for DOS
  325. watcom16dos:
  326.     $(MAKE) -f os2/makefile.os2 all \
  327.     CC="wcl -bt=dos -zq -mm -Ox -s -I." \
  328.     CFLAGS="-Zp1 -DMSDOS $(LOCAL_UNZIP)" \
  329.     NFLAGS="" \
  330.     DLLFLAG="" \
  331.     AS="wasm -bt=dos -0 -mm" \
  332.     ASFLAGS="-D__MEDIUM__" \
  333.     LDFLAGS="-k0xC00 -x -l=dos -Fe=" \
  334.     LDFLAGS2="" \
  335.     OUT="-Fo" \
  336.     OBJ=".obj" \
  337.     OBJU2="msdos.obj" \
  338.     OBJX2="msdos_.obj" \
  339.     OSDEP_H="msdos/doscfg.h" \
  340.     DIRSEP="\\" \
  341.     AS_DIRSEP="\\"
  342.  
  343. # Watcom C/386 9.0 or higher, crosscompilation for Win95/NT
  344. watcomwin32:
  345.     $(MAKE) -f os2/makefile.os2 all \
  346.     CC="wcl386 -bt=NT -zq -Ox -s -I." \
  347.     CFLAGS="-Zp1 -DWIN32 -DASM_CRC $(LOCAL_UNZIP)" \
  348.     NFLAGS="" \
  349.     DLLFLAG="" \
  350.     AS="wasm -bt=NT -zq -3 -mf" \
  351.     ASFLAGS="" \
  352.     LDFLAGS="-k0x50000 -x -l=NT -Fe=" \
  353.     LDFLAGS2="" \
  354.     OUT="-Fo" \
  355.     OBJ=".obj" \
  356.     OBJU2="win32.obj nt.obj" \
  357.     OBJX2="win32_.obj nt_.obj" \
  358.     CRC32="crc_i386" \
  359.     CRC32F="crc_i386" \
  360.     CRC32X="crc_i386" \
  361.     DEF="" \
  362.     DIRSEP="\\" \
  363.     AS_DIRSEP="\\"
  364.  
  365. # MetaWare High C/C++ 3.2
  366. metaware:
  367.     $(MAKE) -f os2/makefile.os2 all \
  368.     CC="hc -O2 -I." \
  369.     CFLAGS="-D__32BIT__ -DOS2 $(LOCAL_UNZIP)" \
  370.     NFLAGS="" \
  371.     DLLFLAG="" \
  372.     LDFLAGS="-o " \
  373.     LDFLAGS2="" \
  374.     OUT="-o ./" \
  375.     OBJ=".obj" \
  376.     DEF="-Hdef=os2\unzip.def"
  377.  
  378. # Borland C++
  379. borland:
  380.     $(MAKE) -f os2/makefile.os2 all \
  381.     CC="bcc -O -I. -Ios2" \
  382.     CFLAGS="-w- -D__cdecl -D__32BIT__ -DOS2 $(LOCAL_UNZIP)" \
  383.     NFLAGS="" \
  384.     DLLFLAG="" \
  385.     LDFLAGS="-e" \
  386.     LDFLAGS2="" \
  387.     OUT="-o" \
  388.     OBJ=".obj" \
  389.     DEF="-sDos2\unzip.def"
  390.  
  391. # emx, gcc, OMF format, statically linked C runtime
  392. gcc:
  393.     $(MAKE) -f os2/makefile.os2 all \
  394.     CC="gcc -Zomf -O -I." \
  395.     CFLAGS="-Wall -DOS2 -DASM_CRC $(LOCAL_UNZIP)" \
  396.     NFLAGS="" \
  397.     DLLFLAG="" \
  398.     AS="gcc -Zomf" \
  399.     ASFLAGS="-Di386" \
  400.     LDFLAGS="-o ./" \
  401.     LDFLAGS2="-Zsmall-conv -Zstack 320 -Zsys -s" \
  402.     OUT="-o" \
  403.     OBJ=".obj" \
  404.     CRC32="crc_gcc" \
  405.     CRC32F="crc_gcc" \
  406.     CRC32X="crc_gcc" \
  407.     DEF="os2/unzip.def"
  408.  
  409. # emx, gcc, OMF format, dynamically linked C runtime
  410. gccdyn:
  411.     $(MAKE) -f os2/makefile.os2 all \
  412.     CC="gcc -Zomf -O -I." \
  413.     CFLAGS="-Wall -DOS2 -DASM_CRC $(LOCAL_UNZIP)" \
  414.     NFLAGS="" \
  415.     DLLFLAG="" \
  416.     AS="gcc -Zomf" \
  417.     ASFLAGS="-Di386" \
  418.     LDFLAGS="-o ./" \
  419.     LDFLAGS2="-Zstack 320 -Zcrtdll -s" \
  420.     OUT="-o" \
  421.     OBJ=".obj" \
  422.     CRC32="crc_gcc" \
  423.     CRC32F="crc_gcc" \
  424.     CRC32X="crc_gcc" \
  425.     DEF="os2/unzip.def"
  426.  
  427. # emx, gcc, a.out format, with debug info for gdb
  428. gccdebug:
  429.     $(MAKE) -f os2/makefile.os2 all \
  430.     CC="gcc -g -I." \
  431.     CFLAGS="-Wall -DOS2 -DASM_CRC $(LOCAL_UNZIP)" \
  432.     NFLAGS="" \
  433.     DLLFLAG="" \
  434.     AS="gcc -g" \
  435.     ASFLAGS="-Di386" \
  436.     LDFLAGS="-o ./" \
  437.     LDFLAGS2="-Zsmall-conv" \
  438.     OUT="-o" \
  439.     OBJ=".o" \
  440.     CRC32="crc_gcc" \
  441.     CRC32F="crc_gcc" \
  442.     CRC32X="crc_gcc"
  443.  
  444. # emx, gcc, a.out format, cross-compilation for MS-DOS
  445. gccdos:
  446.     $(MAKE) -f os2/makefile.os2 all \
  447.     CC="gcc -O -I." \
  448.     CFLAGS="-Wall -DMSDOS -DASM_CRC $(LOCAL_UNZIP)" \
  449.     NFLAGS="" \
  450.     DLLFLAG="" \
  451.     AS="gcc" \
  452.     ASFLAGS="-Di386" \
  453.     LDFLAGS="-o ./" \
  454.     LDFLAGS2="-Zsmall-conv -s" \
  455.     OUT="-o" \
  456.     OBJ=".o" \
  457.     CRC32="crc_gcc" \
  458.     CRC32F="crc_gcc" \
  459.     CRC32X="crc_gcc" \
  460.     OBJU2="msdos.o" \
  461.     OBJX2="msdos_.o" \
  462.     OSDEP_H="msdos/doscfg.h"
  463.  
  464. # emx, gcc, RSXNT, cross-compilation for Win32
  465. gccwin32:
  466.     $(MAKE) -f os2/makefile.os2 all \
  467.     CC="gcc -Zwin32 -O -I." \
  468.     CFLAGS="-Wall -DWIN32 -DASM_CRC $(LOCAL_UNZIP)" \
  469.     NFLAGS="" \
  470.     DLLFLAG="" \
  471.     AS="gcc" \
  472.     ASFLAGS="-Di386" \
  473.     LDFLAGS="-o ./" \
  474.     LDFLAGS2="-Zsmall-conv -s" \
  475.     OUT="-o" \
  476.     OBJ=".o" \
  477.     CRC32="crc_gcc" \
  478.     CRC32F="crc_gcc" \
  479.     CRC32X="crc_gcc" \
  480.     OBJU2="win32.o nt.o" \
  481.     OBJX2="win32_.o nt_.o" \
  482.     OSDEP_H="win32/w32cfg.h"
  483.  
  484. # variables
  485.  
  486. # LOCAL_UNZIP = -DREENTRANT
  487.  
  488. # default settings for target dependent macros:
  489. DIRSEP = /
  490. AS_DIRSEP = /
  491.  
  492. OSDEP_H = os2/os2data.h os2/os2cfg.h
  493. CRC32   = crc32
  494. CRC32F  = crc32f
  495. CRC32X  = crc32_
  496.  
  497. OBJU  = unzip$(OBJ) $(CRC32)$(OBJ) crctab$(OBJ) crypt$(OBJ) envargs$(OBJ) \
  498.     explode$(OBJ) extract$(OBJ) fileio$(OBJ) globals$(OBJ) \
  499.     inflate$(OBJ) list$(OBJ) match$(OBJ) process$(OBJ) ttyio$(OBJ) \
  500.     unreduce$(OBJ) unshrink$(OBJ) zipinfo$(OBJ)
  501. OBJU2 = os2$(OBJ) os2acl$(OBJ)
  502. OBJX  = unzipsf_$(OBJ) $(CRC32X)$(OBJ) crctab_$(OBJ) crypt_$(OBJ) \
  503.         extract_$(OBJ) fileio_$(OBJ) globals_$(OBJ) inflate_$(OBJ) \
  504.     match_$(OBJ) process_$(OBJ) ttyio_$(OBJ)
  505. OBJX2 = os2_$(OBJ) os2acl$(OBJ)
  506. OBJDLL= api$(OBJ) apihelp$(OBJ) rexxhelp$(OBJ) rexxapi$(OBJ)
  507. OBJF  = funzip$(OBJ) $(CRC32F)$(OBJ) cryptf$(OBJ) inflatef$(OBJ) \
  508.     globalsf$(OBJ) ttyiof$(OBJ)
  509.  
  510. UNZIP_H = unzip.h unzpriv.h globals.h $(OSDEP_H)
  511.  
  512. # rules
  513.  
  514. .SUFFIXES:    .c .asm $(OBJ)
  515.  
  516. .c$(OBJ):
  517.     $(CC) -c $(CFLAGS) $(DLLFLAG) $<
  518.  
  519. .asm$(OBJ):
  520.     $(AS) $(ASFLAGS) $< $(ASEOL)
  521.  
  522. # targets
  523.  
  524. all:    unzip.exe funzip.exe unzipsfx.exe
  525. dll:    unzip32.dll unzip.stb funzip.exe unzipsfx.exe
  526.  
  527. unzip.exe: $(OBJU) $(OBJU2)
  528.     $(CC) $(LDFLAGS)$@ $(DEF) $(OBJU) $(OBJU2) $(LDFLAGS2)
  529.  
  530. funzip.exe: $(OBJF)
  531.     $(CC) $(LDFLAGS)$@ $(DEF) $(OBJF) $(LDFLAGS2)
  532.  
  533. unzipsfx.exe:    $(OBJX) $(OBJX2)
  534.     $(CC) $(LDFLAGS)$@ $(DEF) $(OBJX) $(OBJX2) $(LDFLAGS2)
  535.  
  536. unzip32.dll: $(DLLDEF) $(OBJU) $(OBJU2) $(OBJDLL)
  537.     $(CC) $(LDFLAGS)$@ $(DLLDEF) $(OBJU) $(OBJDLL) $(OBJU2) $(APILIB) $(LDFLAGS2)
  538.  
  539. unzip.stb: unzipstb$(OBJ) $(STUBDEF)
  540.     $(CC) $(LDFLAGS)$@ $(STUBDEF) unzipstb$(OBJ) $(LDFLAGS2)
  541.     copy unzip.stb unzip.exe
  542.  
  543. # dependencies
  544.  
  545. apihelp$(OBJ):    apihelp.c $(UNZIP_H) version.h
  546. crc32$(OBJ):    crc32.c $(UNZIP_H) zip.h
  547. crctab$(OBJ):    crctab.c $(UNZIP_H) zip.h
  548. envargs$(OBJ):    envargs.c $(UNZIP_H)
  549. explode$(OBJ):    explode.c $(UNZIP_H)
  550. extract$(OBJ):    extract.c $(UNZIP_H) crypt.h
  551. fileio$(OBJ):    fileio.c $(UNZIP_H) crypt.h ttyio.h ebcdic.h
  552. globals$(OBJ):    globals.c $(UNZIP_H)
  553. inflate$(OBJ):    inflate.c $(UNZIP_H)
  554. list$(OBJ):    list.c $(UNZIP_H)
  555. match$(OBJ):    match.c $(UNZIP_H)
  556. process$(OBJ):    process.c $(UNZIP_H)
  557. ttyio$(OBJ):    ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h
  558. unreduce$(OBJ):    unreduce.c $(UNZIP_H)
  559. unshrink$(OBJ):    unshrink.c $(UNZIP_H)
  560. unzip$(OBJ):    unzip.c $(UNZIP_H) crypt.h version.h consts.h
  561. api$(OBJ):    api.c $(UNZIP_H) version.h
  562. zipinfo$(OBJ):    zipinfo.c $(UNZIP_H)
  563.  
  564. funzip$(OBJ):    funzip.c $(UNZIP_H) crypt.h ttyio.h tables.h    # funzip only
  565.     $(CC) -c $(CFLAGS) funzip.c
  566.  
  567. unzipstb$(OBJ):    unzipstb.c                    # DLL version
  568.     $(CC) -c $(CFLAGS) unzipstb.c
  569.  
  570. msdos$(OBJ):    msdos/msdos.c $(UNZIP_H) version.h        # DOS only
  571.     $(CC) -c $(CFLAGS) msdos$(DIRSEP)msdos.c
  572.  
  573. msdos_$(OBJ):    msdos/msdos.c $(UNZIP_H)            # DOS unzipsfx
  574.     $(CC) -c $(CFLAGS) -DSFX $(OUT)$@ msdos$(DIRSEP)msdos.c
  575.  
  576. win32$(OBJ):    win32/win32.c $(UNZIP_H) win32/nt.h version.h    # Win32 only
  577.     $(CC) -c $(CFLAGS) win32$(DIRSEP)win32.c
  578.  
  579. nt$(OBJ):    win32/nt.c $(UNZIP_H) win32/nt.h        # Win32 only
  580.     $(CC) -c $(CFLAGS) win32$(DIRSEP)nt.c
  581.  
  582. win32_$(OBJ):    win32/win32.c $(UNZIP_H) win32/nt.h        # Win32 unzipsfx
  583.     $(CC) -c $(CFLAGS) -DSFX $(OUT)$@ win32$(DIRSEP)win32.c
  584.  
  585. nt_$(OBJ):    win32/nt.c $(UNZIP_H) win32/nt.h        # Win32 unzipsfx
  586.     $(CC) -c $(CFLAGS) -DSFX $(OUT)$@ win32$(DIRSEP)nt.c
  587.  
  588. os2$(OBJ):    os2/os2.c $(UNZIP_H) version.h            # OS/2 only
  589.     $(CC) -c $(CFLAGS) $(DLLFLAG) os2$(DIRSEP)os2.c
  590.  
  591. os2_$(OBJ):    os2/os2.c $(UNZIP_H)                # OS/2 unzipsfx
  592.     $(CC) -c $(CFLAGS) -DSFX $(OUT)$@ os2$(DIRSEP)os2.c
  593.  
  594. os2acl$(OBJ):    os2/os2acl.c $(UNZIP_H) version.h        # OS/2 only
  595.     $(CC) -c $(CFLAGS) $(DLLFLAG) os2$(DIRSEP)os2acl.c
  596.  
  597. rexxhelp$(OBJ):    os2/rexxhelp.c                    # OS/2 DLL only
  598.     $(CC) -c $(CFLAGS) $(DLLFLAG) os2$(DIRSEP)rexxhelp.c
  599.  
  600. rexxapi$(OBJ):    os2/rexxapi.c                    # OS/2 DLL only
  601.     $(CC) -c $(CFLAGS) $(DLLFLAG) os2$(DIRSEP)rexxapi.c
  602.  
  603. crc_i86$(OBJ):    msdos/crc_i86.asm                # 16bit only
  604.     $(AS) $(ASFLAGS) msdos$(AS_DIRSEP)crc_i86.asm $(ASEOL)
  605.  
  606. crc_i386$(OBJ):    win32/crc_i386.asm                # 32bit, MASM
  607.     $(AS) $(ASFLAGS) win32$(AS_DIRSEP)crc_i386.asm $(ASEOL)
  608.  
  609. crc_gcc$(OBJ):    crc_i386.S                    # 32bit, GNU AS
  610.     $(AS) $(ASFLAGS) -x assembler-with-cpp -c -o $@ crc_i386.S
  611.  
  612. # NFLAGS are solely used as work-around for optimization bug in IBM C++ Set
  613. crypt$(OBJ):    crypt.c $(UNZIP_H) zip.h crypt.h ttyio.h
  614.     $(CC) -c $(CFLAGS) $(DLLFLAG) $(NFLAGS) crypt.c
  615.  
  616. cryptf$(OBJ):    crypt.c $(UNZIP_H) zip.h crypt.h ttyio.h    # funzip only
  617.     $(CC) -c $(CFLAGS) $(NFLAGS) -DFUNZIP $(OUT)$@ crypt.c
  618.  
  619. crc32f$(OBJ):    crc32.c $(UNZIP_H) zip.h            # funzip only
  620.     $(CC) -c $(CFLAGS) -DFUNZIP $(OUT)$@ crc32.c
  621.  
  622. globalsf$(OBJ):    globals.c $(UNZIP_H)                # funzip only
  623.     $(CC) -c $(CFLAGS) -DFUNZIP $(OUT)$@ globals.c
  624.  
  625. inflatef$(OBJ):    inflate.c inflate.h $(UNZIP_H) crypt.h        # funzip only
  626.     $(CC) -c $(CFLAGS) -DFUNZIP $(OUT)$@ inflate.c
  627.  
  628. ttyiof$(OBJ):    ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h    # funzip only
  629.     $(CC) -c $(CFLAGS) $(NFLAGS) -DFUNZIP $(OUT)$@ ttyio.c
  630.  
  631. crc32_$(OBJ):    crc32.c $(UNZIP_H) zip.h            # unzipsfx only
  632.     $(CC) -c $(CFLAGS) -DSFX $(OUT)$@ crc32.c
  633.  
  634. crctab_$(OBJ):    crctab.c $(UNZIP_H) zip.h            # unzipsfx only
  635.     $(CC) -c $(CFLAGS) -DSFX $(OUT)$@ crctab.c
  636.  
  637. crypt_$(OBJ):    crypt.c $(UNZIP_H) zip.h crypt.h ttyio.h    # unzipsfx only
  638.     $(CC) -c $(CFLAGS) -DSFX $(OUT)$@ crypt.c
  639.  
  640. extract_$(OBJ):    extract.c $(UNZIP_H) crypt.h            # unzipsfx only
  641.     $(CC) -c $(CFLAGS) -DSFX $(OUT)$@ extract.c
  642.  
  643. fileio_$(OBJ):    fileio.c $(UNZIP_H) crypt.h ttyio.h ebcdic.h    # unzipsfx only
  644.     $(CC) -c $(CFLAGS) -DSFX $(OUT)$@ fileio.c
  645.  
  646. globals_$(OBJ):    globals.c $(UNZIP_H)                # unzipsfx only
  647.     $(CC) -c $(CFLAGS) -DSFX $(OUT)$@ globals.c
  648.  
  649. inflate_$(OBJ):    inflate.c inflate.h $(UNZIP_H) crypt.h        # unzipsfx only
  650.     $(CC) -c $(CFLAGS) -DSFX $(OUT)$@ inflate.c
  651.  
  652. match_$(OBJ):    match.c $(UNZIP_H)                # unzipsfx only
  653.     $(CC) -c $(CFLAGS) -DSFX $(OUT)$@ match.c
  654.  
  655. process_$(OBJ):    process.c $(UNZIP_H)                # unzipsfx only
  656.     $(CC) -c $(CFLAGS) -DSFX $(OUT)$@ process.c
  657.  
  658. ttyio_$(OBJ):    ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h    # unzipsfx only
  659.     $(CC) -c $(CFLAGS) -DSFX $(OUT)$@ ttyio.c
  660.  
  661. unzipsf_$(OBJ):    unzip.c $(UNZIP_H) crypt.h version.h consts.h    # unzipsfx only
  662.     $(CC) -c $(CFLAGS) -DSFX $(OUT)$@ unzip.c
  663.