home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 9 Archive / 09-Archive.zip / unzip511.zip / os2 / makefile.os2 < prev    next >
Makefile  |  1994-07-23  |  7KB  |  257 lines

  1. # Makefile for UnZip, UnZipSFX and fUnZip                       23 July 1994
  2. #
  3. # - for Microsoft C, version 6.00 or higher, for use under OS/2 1.x (16-bit)
  4. # - for Watcom C/386, version 9.0 or higher, for use under OS/2 2.x (32-bit)
  5. # - for IBM C/C++ Set/2, for use under OS/2 2.x (32-bit)
  6. # - for Borland C++, for use under OS/2 2.x (32-bit)
  7. # - for GNU gcc (emx kit), version 0.8e or higher, for use under OS/2 2.x
  8. #
  9. # cross-compilation:
  10. # - for Microsoft C, version 6.00 or higher, for use under MS-DOS (16-bit)
  11. # - for GNU gcc (emx), version 0.8h or higher, for use under MS-DOS (32-bit)
  12.  
  13. # To use, enter "{d,n}make -f makefile.os2" (this makefile depends on its
  14. # name being "makefile.os2", and it must be in the main unzip directory).
  15.  
  16. # Notes on Microsoft C 6.00 compilation for OS/2:
  17. #
  18. #   The resulting programs can be used under OS/2 1.x or 2.x protected
  19. #   mode only, not under DOS.  A larger stack has to be used for OS/2
  20. #   because system calls use more stack than under DOS; 8k is recommended
  21. #   by Microsoft.
  22.  
  23. # Notes on IBM C Set/2, Watcom C/386, Borland C++ or emx+gcc compilation:
  24. #
  25. #   The resulting programs can be used under protected mode of OS/2 2.x
  26. #   only, not under OS/2 1.x and not under DOS.
  27. #
  28. #   The NFLAGS macro is used to work around an optimization bug in the IBM
  29. #   C++ Set compiler; this is fixed by CSD #4, so NFLAGS="" can be used for
  30. #   all targets below.  We'll leave it as is for this release...
  31. #
  32. #   For Watcom C/386, edit the os2$(OBJ) target so that os2/os2.c reads
  33. #   os2\os2.c instead.  Watcom can't handle forward slashes; gcc can't
  34. #   handle backslashes.  We'll see about making this a macro next time...
  35.  
  36. default:
  37.     @echo "Enter `$(MAKE) -f makefile.os2 target' with makefile.os2 copied"
  38.     @echo "to the main UnZip directory and where target is one of:"
  39.     @echo "   msc mscdos ibm ibmdyn ibmdebug ibmprof"
  40.     @echo "   watcom borland gcc gccdyn gccdebug gccdos"
  41.  
  42. # MS C 6.00 for OS/2, 16-bit (should figure out way to split unzip/funzip 
  43. # compiles so former is always large model and latter always small model...)
  44. msc:
  45.     $(MAKE) -f makefile.os2 all \
  46.     CC="cl -nologo -AL -Ocegit -Gs -I. $(FP)" \
  47.     CFLAGS="-G2 -Zp1 -W3 -DOS2 -DMSC $(LOCAL_UNZIP)" \
  48.     NFLAGS="" \
  49.     LDFLAGS="-Lp -Fe" \
  50.     LDFLAGS2="-link /noe" \
  51.     OUT="-Fo" \
  52.     OBJ=".obj" \
  53.     DEF="os2\unzip16.def"
  54.  
  55. # cross-compilation for MS-DOS with MS C 6.00 (same comment as above...formerly;
  56. # now unzip is small model again, with [almost] all strings in far memory)
  57. mscdos:
  58.     $(MAKE) -f makefile.os2 all \
  59.     CC="cl -nologo -AS -Oaict -Gs -I. $(FP)" \
  60.     CFLAGS="-Zp1 -W3 $(LOCAL_UNZIP)" \
  61.     NFLAGS="" \
  62.     LDFLAGS="-F 0c00 -Lr -Fe" \
  63.     LDFLAGS2="-link /noe /exe" \
  64.     OUT="-Fo" \
  65.     OBJ=".obj" \
  66.     OBJU2="msdos.obj" \
  67.     OBJX2="msdos_.obj"
  68.  
  69. # IBM C Set/2, statically linked runtime
  70. ibm:
  71.     $(MAKE) -f makefile.os2 all \
  72.     CC="icc -Q -O -Gs -I." \
  73.     CFLAGS="-Sm -Sp1 -DOS2 $(LOCAL_UNZIP)" \
  74.     NFLAGS="-O-" \
  75.     LDFLAGS="-Fe" \
  76.     LDFLAGS2="" \
  77.     OUT="-Fo" \
  78.     OBJ=".obj" \
  79.     DEF="os2\unzip.def"
  80.  
  81. # IBM C Set/2, dynamically linked runtime
  82. ibmdyn:
  83.     $(MAKE) -f makefile.os2 all \
  84.     CC="icc -Q -O -Gs -Gd -I." \
  85.     CFLAGS="-Sm -Sp1 -DOS2 $(LOCAL_UNZIP)" \
  86.     NFLAGS="-O-" \
  87.     LDFLAGS="-Fe" \
  88.     LDFLAGS2="" \
  89.     OUT="-Fo" \
  90.     OBJ=".obj" \
  91.     DEF="os2\unzip.def"
  92.  
  93. # IBM C Set/2, debug version
  94. ibmdebug:
  95.     $(MAKE) -f makefile.os2 all \
  96.     CC="icc -Q -Ti -I." \
  97.     CFLAGS="-Sm -Sp1 -D__DEBUG_ALLOC__ -DOS2 $(LOCAL_UNZIP)" \
  98.     NFLAGS="-O-" \
  99.     LDFLAGS="-Fe" \
  100.     LDFLAGS2="" \
  101.     OUT="-Fo" \
  102.     OBJ=".obj" \
  103.     DEF="os2\unzip.def"
  104.  
  105. # IBM C Set/2, profiling version for PROFIT
  106. ibmprof:
  107.     $(MAKE) -f makefile.os2 all \
  108.     CC="icc -Q -O -Gs -Gh -Ti -I." \
  109.     CFLAGS="-Sm -Sp1 -DOS2 $(LOCAL_UNZIP)" \
  110.     NFLAGS="-O-" \
  111.     LDFLAGS="-Fe" \
  112.     LDFLAGS2="profit.obj" \
  113.     OUT="-Fo" \
  114.     OBJ=".obj" \
  115.     DEF="os2\unzip.def"
  116.  
  117. # Watcom C/386 9.0
  118. watcom:
  119.     $(MAKE) -f makefile.os2 all \
  120.     CC="wcl386 -zq -Ox -s -I." \
  121.     CFLAGS="-Zp1 -DOS2 $(LOCAL_UNZIP)" \
  122.     NFLAGS="" \
  123.     LDFLAGS="-k0x40000 -x -Fe=" \
  124.     LDFLAGS2="" \
  125.     OUT="-Fo" \
  126.     OBJ=".obj" \
  127.     DEF=""
  128.  
  129. # Borland C++
  130. borland:
  131.     $(MAKE) -f makefile.os2 all \
  132.     CC="bcc -O -I." \
  133.     CFLAGS="-w- -D__cdecl -D__32BIT__ -DOS2 $(LOCAL_UNZIP)" \
  134.     NFLAGS="" \
  135.     LDFLAGS="-e" \
  136.     LDFLAGS2="" \
  137.     OUT="-o" \
  138.     OBJ=".obj" \
  139.     DEF="-sDos2\unzip.def"
  140.  
  141. # emx 0.8f and later, gcc, OMF format, statically linked C runtime and emx
  142. gcc:
  143.     $(MAKE) -f makefile.os2 all \
  144.     CC="gcc -Zomf -Zsys -O -I." \
  145.     CFLAGS="-Wall -DOS2 $(LOCAL_UNZIP)" \
  146.     NFLAGS="" \
  147.     LDFLAGS="-o ./" \
  148.     LDFLAGS2="-s -los2" \
  149.     OUT="-o" \
  150.     OBJ=".obj" \
  151.     DEF="os2/unzip.def"
  152.  
  153. # emx 0.8g and later, gcc, OMF format, dynamically linked C runtime and emx
  154. # (for 0.8f or earlier, change -Zmtd to -Zmt)
  155. gccdyn:
  156.     $(MAKE) -f makefile.os2 all \
  157.     CC="gcc -Zomf -Zmtd -O -I." \
  158.     CFLAGS="-Wall -DOS2 $(LOCAL_UNZIP)" \
  159.     NFLAGS="" \
  160.     LDFLAGS="-o ./" \
  161.     LDFLAGS2="-s -los2" \
  162.     OUT="-o" \
  163.     OBJ=".obj" \
  164.     DEF="os2/unzip.def"
  165.  
  166. # emx, gcc, a.out format, with debug info for gdb
  167. gccdebug:
  168.     $(MAKE) -f makefile.os2 all \
  169.     CC="gcc -g -I." \
  170.     CFLAGS="-Wall -DOS2 $(LOCAL_UNZIP)" \
  171.     NFLAGS="" \
  172.     LDFLAGS="-o ./" \
  173.     LDFLAGS2="-los2" \
  174.     OUT="-o" \
  175.     OBJ=".o"
  176.  
  177. # emx, gcc, a.out format, for MS-DOS
  178. gccdos:
  179.     $(MAKE) -f makefile.os2 all \
  180.     CC="gcc -O -I." \
  181.     CFLAGS="-Wall -DMSDOS $(LOCAL_UNZIP)" \
  182.     NFLAGS="" \
  183.     LDFLAGS="-o ./" \
  184.     LDFLAGS2="-s" \
  185.     OUT="-o" \
  186.     OBJ=".o" \
  187.     OBJU2="msdos.o" \
  188.     OBJX2="msdos_.o"
  189.  
  190. # variables
  191. OBJU  = unzip$(OBJ) crypt$(OBJ) envargs$(OBJ) explode$(OBJ) \
  192.     extract$(OBJ) file_io$(OBJ) inflate$(OBJ) match$(OBJ) \
  193.     unreduce$(OBJ) unshrink$(OBJ) zipinfo$(OBJ)
  194. OBJU2 = os2$(OBJ)
  195. OBJX  = unzip_$(OBJ) crypt$(OBJ) extract_$(OBJ) file_io$(OBJ) \
  196.     inflate$(OBJ) match$(OBJ)
  197. OBJX2 = os2_$(OBJ)
  198. OBJF  = funzip$(OBJ) crypt_$(OBJ) inflate_$(OBJ)
  199.  
  200. .SUFFIXES:    .c $(OBJ)
  201.  
  202. .c$(OBJ):
  203.     $(CC) -c $(CFLAGS) $<
  204.  
  205. all:    unzip.exe funzip.exe unzipsfx.exe
  206. #all:    unzipsfx.exe
  207.  
  208. unzip.exe: $(OBJU) $(OBJU2)
  209.     $(CC) $(LDFLAGS)$@ $(DEF) $(OBJU) $(OBJU2) $(LDFLAGS2)
  210.  
  211. funzip.exe: $(OBJF)
  212.     $(CC) $(LDFLAGS)$@ $(DEF) $(OBJF) $(LDFLAGS2)
  213.  
  214. unzipsfx.exe:    $(OBJX) $(OBJX2)
  215.     $(CC) $(LDFLAGS)$@ $(DEF) $(OBJX) $(OBJX2) $(LDFLAGS2)
  216.  
  217.  
  218. envargs$(OBJ):    envargs.c unzip.h
  219. explode$(OBJ):    explode.c unzip.h
  220. extract$(OBJ):    extract.c unzip.h crypt.h
  221. file_io$(OBJ):    file_io.c unzip.h crypt.h tables.h
  222. funzip$(OBJ):    funzip.c unzip.h crypt.h tables.h
  223. inflate$(OBJ):    inflate.c unzip.h
  224. match$(OBJ):    match.c unzip.h
  225. unreduce$(OBJ):    unreduce.c unzip.h
  226. unshrink$(OBJ):    unshrink.c unzip.h
  227. unzip$(OBJ):    unzip.c unzip.h crypt.h version.h
  228. zipinfo$(OBJ):    zipinfo.c unzip.h
  229.  
  230. msdos$(OBJ):    msdos/msdos.c unzip.h            # MS-DOS only
  231.     $(CC) -c $(CFLAGS) msdos/msdos.c
  232.  
  233. msdos_$(OBJ):    msdos/msdos.c unzip.h            # MS-DOS unzipsfx only
  234.     $(CC) -c $(CFLAGS) -DSFX $(OUT)$@ msdos/msdos.c
  235.  
  236. os2$(OBJ):    os2/os2.c unzip.h            # OS/2 only
  237.     $(CC) -c $(CFLAGS) os2/os2.c
  238.  
  239. os2_$(OBJ):    os2/os2.c unzip.h            # OS/2 unzipsfx only
  240.     $(CC) -c $(CFLAGS) -DSFX $(OUT)$@ os2/os2.c
  241.  
  242. # NFLAGS are solely used as work-around for optimization bug in IBM C++ Set
  243. crypt$(OBJ):    crypt.c unzip.h crypt.h zip.h
  244.     $(CC) -c $(CFLAGS) $(NFLAGS) crypt.c
  245.  
  246. crypt_$(OBJ):    crypt.c unzip.h zip.h crypt.h        # funzip only
  247.     $(CC) -c $(CFLAGS) $(NFLAGS) -DFUNZIP $(OUT)$@ crypt.c
  248.  
  249. extract_$(OBJ):    extract.c unzip.h crypt.h        # unzipsfx only
  250.     $(CC) -c $(CFLAGS) -DSFX $(OUT)$@ extract.c
  251.  
  252. inflate_$(OBJ):    inflate.c inflate.h unzip.h crypt.h    # funzip only
  253.     $(CC) -c $(CFLAGS) -DFUNZIP $(OUT)$@ inflate.c
  254.  
  255. unzip_$(OBJ):    unzip.c unzip.h crypt.h version.h    # unzipsfx only
  256.     $(CC) -c $(CFLAGS) -DSFX $(OUT)$@ unzip.c
  257.