Subversion Repositories Kolibri OS

Rev

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

  1. # Makefile for UnZip, fUnZip and UnZipSFX using LCC-Win32.
  2. # By E-Yen Tan (3 June 1998).
  3. # Last updated 20 Jul 2008 (Christian Spieler).
  4. #
  5. # This version includes rules to build the 32-bit windll DLL.
  6.  
  7. # This compiler evaluates #include locations relative to current working dir,
  8. # not relative to the location of the file containing the #include directive.
  9. # As a consequence, a "-Iwin32" option is required to allow compilation of
  10. # the WIN32 specific sources.
  11.  
  12. CC=lcc
  13. CCFLAGS=-Zp8 -O -DWIN32 $(AS_FLAGS)
  14. #DLLFLAG=
  15. DLLFLAG=-DWINDLL -DDLL -I./windll
  16. AS=lcc
  17. ASFLAGS=
  18. LD = lcclnk
  19. #DLLLDFLAG=
  20. DLLLDFLAG=-dll -entry DllMain
  21. LDFLAGS=-s -o ./
  22. LDFLAGS2=
  23. OUT=-Fo
  24. OBJ=.obj
  25.  
  26. CP=copy
  27. RM=del
  28.  
  29. # Optional macros should be declared below.
  30. # (LCC's Make is unable to read the LOCAL_UNZIP environment variable.)
  31. LOC = $(ASMFLG)
  32.  
  33. # Options to select optimized assembler code for CRC32 calculation.
  34. #ifdef NOASM
  35. #ASMFLG=
  36. #CRCA_O=
  37. #CRCA_OF=
  38. #CRCA_OL=
  39. #CRCA_OG=
  40. #CRCA_OX=
  41. #else
  42. ASMFLG=-DASM_CRC
  43. CRCA_O=crc_lcc$(OBJ)
  44. CRCA_OF=$(CRCA_O)
  45. CRCA_OL=$(CRCA_O)
  46. CRCA_OG=$(CRCA_O)
  47. CRCA_OX=$(CRCA_O)
  48. #endif
  49.  
  50. CFLAGS = $(CCFLAGS) $(LOC)
  51.  
  52. CFLAGS_UN = $(CFLAGS)
  53. CFLAGS_SX = $(CFLAGS) -DSFX
  54. CFLAGS_FU = $(CFLAGS) -DFUNZIP
  55. CFLAGS_DL = $(CFLAGS) $(DLLFLAG)
  56. CFLAGS_SL = $(CFLAGS) $(DLLFLAG) -DUNZIPLIB -DSFX
  57. CFLAGS_GX = $(CFLAGS) -I./windll -I./windll/guisfx -DSFX
  58.  
  59.  
  60. # The system specific files are defined here:
  61. OBJUS=win32$(OBJ) win32i64$(OBJ) nt$(OBJ)
  62. OBJXS=win32_$(OBJ) win32i64_$(OBJ) nt_$(OBJ)
  63. OBJFS=win32f$(OBJ) win32i64f$(OBJ)
  64. OBJDS=win32l$(OBJ) win32i64l$(OBJ) ntl$(OBJ)
  65. OBLXS=win32g$(OBJ) win32i64g$(OBJ) ntg$(OBJ) windllg$(OBJ)
  66. OSDEP_H=win32/w32cfg.h
  67. WINDLL_H=windll/windll.h windll/structs.h windll/decs.h
  68. DLLDEF=.\windll\windll_lc.def   # lcclink requires backslashes as dir-sep!!
  69. WINDLL_IMP_H = windll/decs.h windll/structs.h
  70.  
  71.  
  72. OBJU1 = unzip$(OBJ) crc32$(OBJ) $(CRCA_O) crypt$(OBJ) envargs$(OBJ)
  73. OBJU2 = explode$(OBJ) extract$(OBJ) fileio$(OBJ) globals$(OBJ)
  74. OBJU3 = inflate$(OBJ) list$(OBJ) match$(OBJ) process$(OBJ) ttyio$(OBJ)
  75. OBJU4 = ubz2err$(OBJ) unreduce$(OBJ) unshrink$(OBJ) zipinfo$(OBJ)
  76. OBJU  = $(OBJU1) $(OBJU2) $(OBJU3) $(OBJU4) $(OBJUS)
  77. OBJX1 = unzipsf_$(OBJ) crc32_$(OBJ) $(CRCA_OX) crypt_$(OBJ)
  78. OBJX2 = extract_$(OBJ) fileio_$(OBJ) globals_$(OBJ) inflate_$(OBJ)
  79. OBJX3 = match_$(OBJ) process_$(OBJ) ttyio_$(OBJ) ubz2err_$(OBJ)
  80. OBJX  = $(OBJX1) $(OBJX2) $(OBJX3) $(OBJXS)
  81. OBJF  = funzip$(OBJ) crc32f$(OBJ) $(CRCA_OF) cryptf$(OBJ) inflatef$(OBJ) \
  82.         globalsf$(OBJ) ttyiof$(OBJ) $(OBJFS)
  83. OBJDLL = windll$(OBJ) windll32.res api$(OBJ)
  84. OBJD1 = crc32l$(OBJ) $(CRCA_OL) cryptl$(OBJ)
  85. OBJD2 = explodel$(OBJ) extractl$(OBJ) fileiol$(OBJ) globalsl$(OBJ)
  86. OBJD3 = inflatel$(OBJ) listl$(OBJ) matchl$(OBJ) processl$(OBJ)
  87. OBJD4 = ubz2errl$(OBJ) unreducl$(OBJ) unshrnkl$(OBJ) zipinfol$(OBJ)
  88. OBJD  = $(OBJDLL) $(OBJD1) $(OBJD2) $(OBJD3) $(OBJD4) $(OBJDS)
  89. OBLX1 = apig$(OBJ) crc32g$(OBJ) $(CRCA_OG) cryptg$(OBJ)
  90. OBLX2 = extractg$(OBJ) fileiog$(OBJ) globalsg$(OBJ) inflateg$(OBJ)
  91. OBLX3 = matchg$(OBJ) processg$(OBJ) ubz2errg$(OBJ)
  92. OBLX  = $(OBLX1) $(OBLX2) $(OBLX3) $(OBLXS)
  93. OBGX  = sfxwiz$(OBJ)
  94.  
  95. UNZIP_H = unzip.h unzpriv.h globals.h $(OSDEP_H)
  96.  
  97. # rules
  98.  
  99. .SUFFIXES: .c $(OBJ)
  100.  
  101. .c$(OBJ):
  102.         $(CC) -c $(CFLAGS_UN) $(OUT)$@ $<
  103.  
  104. .asm$(OBJ):
  105.         $(AS) $(ASFLAGS) $(OUT)$@ $<
  106.  
  107. # targets
  108.  
  109. unzips: unzip.exe funzip.exe unzipsfx.exe
  110. dll:    unzip32.dll
  111. dllsample: uzexampl.exe
  112. guisfx: SFXWiz32.exe
  113. all:    unzips dll dllsample guisfx
  114.  
  115. unzip.exe: $(OBJU) winapp.res
  116.         $(LD) $(LDFLAGS)$@ $(DEF) $(OBJU) winapp.res $(LDFLAGS2)
  117.  
  118. funzip.exe: $(OBJF)
  119.         $(LD) $(LDFLAGS)$@ $(DEF) $(OBJF) $(LDFLAGS2)
  120.  
  121. unzipsfx.exe:   $(OBJX)
  122.         $(LD) $(LDFLAGS)$@ $(DEF) $(OBJX) $(LDFLAGS2)
  123.  
  124. unzip32.dll: $(DLLDEF) $(OBJD)
  125.         $(LD) $(DLLLDFLAG) $(LDFLAGS)$@ $(DLLDEF) $(OBJD) $(LDFLAGS2)
  126.  
  127. unzsfx32.lib:   $(OBLX)
  128.         lcclib $@ $(OBLX)
  129.  
  130. SFXWiz32.exe:   $(OBGX) sfxwiz.res unzsfx32.lib
  131.         $(LD) -subsystem windows $(LDFLAGS)$@  \
  132.                 $(OBGX) sfxwiz.res unzsfx32.lib
  133.  
  134. uzexampl.exe: uzexampl$(OBJ)
  135.         $(LD) $(LDFLAGS)$@ $(DEF) uzexampl$(OBJ) version.lib $(LDFLAGS2)
  136.  
  137. # dependencies
  138.  
  139. api$(OBJ):      api.c $(UNZIP_H) unzvers.h
  140. apihelp$(OBJ):  apihelp.c $(UNZIP_H) unzvers.h
  141. crc32$(OBJ):    crc32.c $(UNZIP_H) zip.h crc32.h
  142. envargs$(OBJ):  envargs.c $(UNZIP_H)
  143. explode$(OBJ):  explode.c $(UNZIP_H)
  144. extract$(OBJ):  extract.c $(UNZIP_H) crc32.h crypt.h
  145. fileio$(OBJ):   fileio.c $(UNZIP_H) crc32.h crypt.h ttyio.h ebcdic.h
  146. globals$(OBJ):  globals.c $(UNZIP_H)
  147. inflate$(OBJ):  inflate.c $(UNZIP_H)
  148. list$(OBJ):     list.c $(UNZIP_H)
  149. match$(OBJ):    match.c $(UNZIP_H)
  150. process$(OBJ):  process.c $(UNZIP_H) crc32.h
  151. ttyio$(OBJ):    ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h
  152. ubz2err$(OBJ):  ubz2err.c $(UNZIP_H)
  153. unreduce$(OBJ): unreduce.c $(UNZIP_H)
  154. unshrink$(OBJ): unshrink.c $(UNZIP_H)
  155. unzip$(OBJ):    unzip.c $(UNZIP_H) crypt.h unzvers.h consts.h
  156. zipinfo$(OBJ):  zipinfo.c $(UNZIP_H)
  157.  
  158. funzip$(OBJ):   funzip.c $(UNZIP_H) crc32.h crypt.h ttyio.h
  159.         $(CC) -c $(CFLAGS) $(OUT)$@ funzip.c
  160.  
  161. uzexampl$(OBJ): windll/uzexampl.c windll/uzexampl.h
  162.         $(CC) -c $(CFLAGS_UN) -I./windll $(OUT)$@ windll/uzexampl.c
  163.  
  164. win32$(OBJ):    win32/win32.c $(UNZIP_H) win32/nt.h unzvers.h
  165.         $(CC) -c $(CFLAGS_UN) -Iwin32 $(OUT)$@ win32/win32.c
  166.  
  167. win32i64$(OBJ): win32/win32i64.c $(UNZIP_H)
  168.         $(CC) -c $(CFLAGS_UN) -Iwin32 $(OUT)$@ win32/win32i64.c
  169.  
  170. nt$(OBJ):       win32/nt.c $(UNZIP_H) win32/nt.h
  171.         $(CC) -c $(CFLAGS_UN) -Iwin32 $(OUT)$@ win32/nt.c
  172.  
  173. crc_lcc$(OBJ):  win32/crc_lcc.asm
  174.         $(AS) $(ASFLAGS) $(OUT)$@ win32/crc_lcc.asm
  175.  
  176. crypt$(OBJ):    crypt.c $(UNZIP_H) zip.h crypt.h ttyio.h
  177.         $(CC) -c $(CFLAGS_UN) $(OUT)$@ crypt.c
  178.  
  179. winapp.res:     win32/winapp.rc unzvers.h
  180.         - lrc -v -r -I./win32 -DWIN32 -o$@ win32/winapp.rc
  181.  
  182. crc32f$(OBJ):   crc32.c $(UNZIP_H) zip.h crc32.h
  183.         $(CC) -c $(CFLAGS_FU) $(OUT)$@ crc32.c
  184.  
  185. cryptf$(OBJ):   crypt.c $(UNZIP_H) zip.h crypt.h crc32.h ttyio.h
  186.         $(CC) -c $(CFLAGS_FU) $(OUT)$@ crypt.c
  187.  
  188. globalsf$(OBJ): globals.c $(UNZIP_H)
  189.         $(CC) -c $(CFLAGS_FU) $(OUT)$@ globals.c
  190.  
  191. inflatef$(OBJ): inflate.c inflate.h $(UNZIP_H) crypt.h
  192.         $(CC) -c $(CFLAGS_FU) $(OUT)$@ inflate.c
  193.  
  194. ttyiof$(OBJ):   ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h
  195.         $(CC) -c $(CFLAGS_FU) $(OUT)$@ ttyio.c
  196.  
  197. win32f$(OBJ):   win32/win32.c $(UNZIP_H) win32/nt.h
  198.         $(CC) -c $(CFLAGS_FU) -Iwin32 $(OUT)$@ win32/win32.c
  199.  
  200. win32i64f$(OBJ):        win32/win32i64.c $(UNZIP_H)
  201.         $(CC) -c $(CFLAGS_FU) -Iwin32 $(OUT)$@ win32/win32i64.c
  202.  
  203. crc32_$(OBJ):   crc32.c $(UNZIP_H) zip.h crc32.h
  204.         $(CC) -c $(CFLAGS_SX) $(OUT)$@ crc32.c
  205.  
  206. crypt_$(OBJ):   crypt.c $(UNZIP_H) zip.h crypt.h crc32.h ttyio.h
  207.         $(CC) -c $(CFLAGS_SX) $(OUT)$@ crypt.c
  208.  
  209. extract_$(OBJ): extract.c $(UNZIP_H) crc32.h crypt.h
  210.         $(CC) -c $(CFLAGS_SX) $(OUT)$@ extract.c
  211.  
  212. fileio_$(OBJ):  fileio.c $(UNZIP_H) crc32.h crypt.h ttyio.h ebcdic.h
  213.         $(CC) -c $(CFLAGS_SX) $(OUT)$@ fileio.c
  214.  
  215. globals_$(OBJ): globals.c $(UNZIP_H)
  216.         $(CC) -c $(CFLAGS_SX) $(OUT)$@ globals.c
  217.  
  218. inflate_$(OBJ): inflate.c inflate.h $(UNZIP_H) crypt.h
  219.         $(CC) -c $(CFLAGS_SX) $(OUT)$@ inflate.c
  220.  
  221. match_$(OBJ):   match.c $(UNZIP_H)
  222.         $(CC) -c $(CFLAGS_SX) $(OUT)$@ match.c
  223.  
  224. process_$(OBJ): process.c $(UNZIP_H) crc32.h
  225.         $(CC) -c $(CFLAGS_SX) $(OUT)$@ process.c
  226.  
  227. ttyio_$(OBJ):   ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h
  228.         $(CC) -c $(CFLAGS_SX) $(OUT)$@ ttyio.c
  229.  
  230. ubz2err_$(OBJ): ubz2err.c $(UNZIP_H)
  231.         $(CC) -c $(CFLAGS_SX) $(OUT)$@ ubz2err.c
  232.  
  233. unzipsf_$(OBJ): unzip.c $(UNZIP_H) crypt.h unzvers.h consts.h
  234.         $(CC) -c $(CFLAGS_SX) $(OUT)$@ unzip.c
  235.  
  236. win32_$(OBJ):   win32/win32.c $(UNZIP_H) win32/nt.h
  237.         $(CC) -c $(CFLAGS_SX) -Iwin32 $(OUT)$@ win32/win32.c
  238.  
  239. win32i64_$(OBJ):        win32/win32i64.c $(UNZIP_H)
  240.         $(CC) -c $(CFLAGS_SX) -Iwin32 $(OUT)$@ win32/win32i64.c
  241.  
  242. nt_$(OBJ):      win32/nt.c $(UNZIP_H) win32/nt.h
  243.         $(CC) -c $(CFLAGS_SX) -Iwin32 $(OUT)$@ win32/nt.c
  244.  
  245. # DLL compilation section
  246. api$(OBJ):      api.c $(UNZIP_H) $(WINDLL_H) unzvers.h
  247.         $(CC) -c $(CFLAGS_DL) $(OUT)$@ api.c
  248.  
  249. crc32l$(OBJ):   crc32.c $(UNZIP_H) zip.h crc32.h
  250.         $(CC) -c $(CFLAGS_DL) $(OUT)$@ crc32.c
  251.  
  252. cryptl$(OBJ):   crypt.c $(UNZIP_H) zip.h crypt.h crc32.h ttyio.h
  253.         $(CC) -c $(CFLAGS_DL) $(OUT)$@ crypt.c
  254.  
  255. explodel$(OBJ): explode.c $(UNZIP_H)
  256.         $(CC) -c $(CFLAGS_DL) $(OUT)$@ explode.c
  257.  
  258. extractl$(OBJ): extract.c $(UNZIP_H) crc32.h crypt.h
  259.         $(CC) -c $(CFLAGS_DL) $(OUT)$@ extract.c
  260.  
  261. fileiol$(OBJ):  fileio.c $(UNZIP_H) crc32.h crypt.h ttyio.h ebcdic.h
  262.         $(CC) -c $(CFLAGS_DL) $(OUT)$@ fileio.c
  263.  
  264. globalsl$(OBJ): globals.c $(UNZIP_H)
  265.         $(CC) -c $(CFLAGS_DL) $(OUT)$@ globals.c
  266.  
  267. inflatel$(OBJ): inflate.c inflate.h $(UNZIP_H) crypt.h
  268.         $(CC) -c $(CFLAGS_DL) $(OUT)$@ inflate.c
  269.  
  270. listl$(OBJ):    list.c $(UNZIP_H) $(WINDLL_H)
  271.         $(CC) -c $(CFLAGS_DL) $(OUT)$@ list.c
  272.  
  273. matchl$(OBJ):   match.c $(UNZIP_H)
  274.         $(CC) -c $(CFLAGS_DL) $(OUT)$@ match.c
  275.  
  276. processl$(OBJ): process.c $(UNZIP_H) crc32.h
  277.         $(CC) -c $(CFLAGS_DL) $(OUT)$@ process.c
  278.  
  279. ubz2errl$(OBJ): ubz2err.c $(UNZIP_H)
  280.         $(CC) -c $(CFLAGS_DL) $(OUT)$@ ubz2err.c
  281.  
  282. unreducl$(OBJ): unreduce.c $(UNZIP_H)
  283.         $(CC) -c $(CFLAGS_DL) $(OUT)$@ unreduce.c
  284.  
  285. unshrnkl$(OBJ): unshrink.c $(UNZIP_H)
  286.         $(CC) -c $(CFLAGS_DL) $(OUT)$@ unshrink.c
  287.  
  288. zipinfol$(OBJ): zipinfo.c $(UNZIP_H)
  289.         $(CC) -c $(CFLAGS_DL) $(OUT)$@ zipinfo.c
  290.  
  291. win32l$(OBJ):   win32/win32.c $(UNZIP_H) win32/nt.h
  292.         $(CC) -c $(CFLAGS_DL) -Iwin32 $(OUT)$@ win32/win32.c
  293.  
  294. win32i64l$(OBJ):        win32/win32i64.c $(UNZIP_H)
  295.         $(CC) -c $(CFLAGS_DL) -Iwin32 $(OUT)$@ win32/win32i64.c
  296.  
  297. ntl$(OBJ):      win32/nt.c $(UNZIP_H) win32/nt.h
  298.         $(CC) -c $(CFLAGS_DL) -Iwin32 $(OUT)$@ win32/nt.c
  299.  
  300. windll$(OBJ): windll/windll.c $(UNZIP_H) $(WINDLL_H) crypt.h unzvers.h consts.h
  301.         $(CC) -c $(CFLAGS_DL) $(OUT)$@ windll/windll.c
  302.  
  303. windll32.res:   windll/windll.rc unzvers.h
  304.         - lrc -v -r $(DLLFLAG) -DWIN32 -o$@ windll/windll.rc
  305.  
  306. # SFX Lib compilation section
  307. apig$(OBJ):     api.c $(UNZIP_H) $(WINDLL_H) unzvers.h
  308.         $(CC) -c $(CFLAGS_SL) $(OUT)$@ api.c
  309.  
  310. crc32g$(OBJ):   crc32.c $(UNZIP_H) zip.h crc32.h
  311.         $(CC) -c $(CFLAGS_SL) $(OUT)$@ crc32.c
  312.  
  313. cryptg$(OBJ):   crypt.c $(UNZIP_H) zip.h crypt.h crc32.h ttyio.h
  314.         $(CC) -c $(CFLAGS_SL) $(OUT)$@ crypt.c
  315.  
  316. extractg$(OBJ): extract.c $(UNZIP_H) $(WINDLL_H) crc32.h crypt.h
  317.         $(CC) -c $(CFLAGS_SL) $(OUT)$@ extract.c
  318.  
  319. fileiog$(OBJ):  fileio.c $(UNZIP_H) $(WINDLL_H) crc32.h crypt.h ttyio.h ebcdic.h
  320.         $(CC) -c $(CFLAGS_SL) $(OUT)$@ fileio.c
  321.  
  322. globalsg$(OBJ): globals.c $(UNZIP_H)
  323.         $(CC) -c $(CFLAGS_SL) $(OUT)$@ globals.c
  324.  
  325. inflateg$(OBJ): inflate.c inflate.h $(UNZIP_H)
  326.         $(CC) -c $(CFLAGS_SL) $(OUT)$@ inflate.c
  327.  
  328. matchg$(OBJ):   match.c $(UNZIP_H)
  329.         $(CC) -c $(CFLAGS_SL) $(OUT)$@ match.c
  330.  
  331. processg$(OBJ): process.c $(UNZIP_H) $(WINDLL_H) crc32.h
  332.         $(CC) -c $(CFLAGS_SL) $(OUT)$@ process.c
  333.  
  334. ubz2errg$(OBJ): ubz2err.c $(UNZIP_H)
  335.         $(CC) -c $(CFLAGS_SL) $(OUT)$@ ubz2err.c
  336.  
  337. win32g$(OBJ):   win32/win32.c $(UNZIP_H) win32/nt.h
  338.         $(CC) -c $(CFLAGS_SL) -Iwin32 $(OUT)$@ win32/win32.c
  339.  
  340. win32i64g$(OBJ):        win32/win32i64.c $(UNZIP_H)
  341.         $(CC) -c $(CFLAGS_SL) -Iwin32 $(OUT)$@ win32/win32i64.c
  342.  
  343. ntg$(OBJ):      win32/nt.c $(UNZIP_H) win32/nt.h
  344.         $(CC) -c $(CFLAGS_SL) -Iwin32 $(OUT)$@ win32/nt.c
  345.  
  346. windllg$(OBJ):  windll/windll.c $(UNZIP_H) $(WINDLL_H) crypt.h unzvers.h consts.h
  347.         $(CC) -c $(CFLAGS_SL) $(OUT)$@ windll/windll.c
  348.  
  349. sfxwiz$(OBJ):   windll/guisfx/sfxwiz.c windll/guisfx/dialog.h $(WINDLL_IMP_H)
  350.         $(CC) -c $(CFLAGS_GX) $(OUT)$@ windll/guisfx/sfxwiz.c
  351.  
  352. sfxwiz.res:     windll/guisfx/sfxwiz.rc
  353.         - lrc -v -r -Iwindll/guisfx -DWIN32 -o$@ windll/guisfx/sfxwiz.rc
  354.