makefile.os2 18 KB

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