Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

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