021-merge-and-improve-makefiles.patch 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401
  1. --- a/bzip2.c
  2. +++ b/bzip2.c
  3. @@ -54,7 +54,7 @@
  4. #include <math.h>
  5. #include <errno.h>
  6. #include <ctype.h>
  7. -#include "bzlib.h"
  8. +#include <bzlib.h>
  9. #define ERROR_IF_EOF(i) { if ((i) == EOF) ioError(); }
  10. #define ERROR_IF_NOT_ZERO(i) { if ((i) != 0) ioError(); }
  11. --- a/bzlib_private.h
  12. +++ b/bzlib_private.h
  13. @@ -30,7 +30,7 @@
  14. #include <string.h>
  15. #endif
  16. -#include "bzlib.h"
  17. +#include <bzlib.h>
  18. --- a/Makefile
  19. +++ b/Makefile
  20. @@ -21,11 +21,38 @@
  21. LDFLAGS=
  22. BIGFILES=-D_FILE_OFFSET_BITS=64
  23. -CFLAGS=-Wall -Winline -O2 -g $(BIGFILES)
  24. +CFLAGS_COMMON=-Wall -Winline -O2 -g $(BIGFILES) -I.
  25. +CFLAGS_NOPIC=$(filter-out -O%,$(CFLAGS)) $(CFLAGS_COMMON)
  26. +CFLAGS_PIC=$(filter-out -O%,$(CFLAGS)) -fpic -fPIC $(CFLAGS_COMMON)
  27. # Where you want it installed when you do 'make install'
  28. -PREFIX=/usr/local
  29. -
  30. +PREFIX?=/usr/local
  31. +ENABLE_BIN_STATIC?=1
  32. +ENABLE_BIN_SHARED?=1
  33. +ENABLE_LIB_STATIC?=1
  34. +ENABLE_LIB_SHARED?=1
  35. +ENABLE_DEV?=1
  36. +ENABLE_DOCS?=1
  37. +ENABLE_TESTS?=1
  38. +
  39. +ifeq ($(ENABLE_BIN_STATIC),1)
  40. + ENABLE_BIN=1
  41. + ifneq ($(ENABLE_LIB_STATIC),1)
  42. + ENABLE_LIB_STATIC=1
  43. + endif
  44. +endif
  45. +ifeq ($(ENABLE_BIN_SHARED),1)
  46. + ENABLE_BIN=1
  47. + ifneq ($(ENABLE_LIB_SHARED),1)
  48. + ENABLE_LIB_STATIC=1
  49. + endif
  50. +endif
  51. +ifeq ($(ENABLE_LIB_STATIC),1)
  52. + ENABLE_LIB=1
  53. +endif
  54. +ifeq ($(ENABLE_LIB_SHARED),1)
  55. + ENABLE_LIB=1
  56. +endif
  57. OBJS= blocksort.o \
  58. huffman.o \
  59. @@ -35,15 +62,38 @@
  60. decompress.o \
  61. bzlib.o
  62. -all: libbz2.a bzip2 bzip2recover test
  63. -
  64. -bzip2: libbz2.a bzip2.o
  65. - $(CC) $(CFLAGS) $(LDFLAGS) -o bzip2 bzip2.o -L. -lbz2
  66. +TGTS_all:=
  67. +TGTS_bzip2:=bzip2.o
  68. +TGTS_check:=
  69. +TGTS_install:=
  70. +ifeq ($(ENABLE_LIB),1)
  71. + TGTS_all+=libbz2
  72. + TGTS_bzip2+=libbz2
  73. +endif
  74. +ifeq ($(ENABLE_BIN),1)
  75. + TGTS_all+=bzip2 bzip2recover
  76. + TGTS_install+=bzip2 bzip2recover
  77. +endif
  78. +ifeq ($(ENABLE_TESTS),1)
  79. + TGTS_all+=test
  80. + TGTS_check+=test
  81. +endif
  82. +
  83. +all: $(TGTS_all)
  84. +
  85. +bzip2: $(TGTS_bzip2)
  86. +ifeq ($(ENABLE_BIN_STATIC),1)
  87. + $(CC) $(CFLAGS_NOPIC) $(LDFLAGS) -o bzip2 bzip2.o -L. -lbz2
  88. +endif
  89. +ifeq ($(ENABLE_BIN_SHARED),1)
  90. + $(CC) $(CFLAGS_PIC) -o bzip2-shared bzip2.o libbz2.so.1.0
  91. +endif
  92. bzip2recover: bzip2recover.o
  93. - $(CC) $(CFLAGS) $(LDFLAGS) -o bzip2recover bzip2recover.o
  94. + $(CC) $(CFLAGS_NOPIC) $(LDFLAGS) -o bzip2recover bzip2recover.o
  95. -libbz2.a: $(OBJS)
  96. +libbz2: $(OBJS)
  97. +ifeq ($(ENABLE_LIB_STATIC),1)
  98. rm -f libbz2.a
  99. $(AR) cq libbz2.a $(OBJS)
  100. @if ( test -f $(RANLIB) -o -f /usr/bin/ranlib -o \
  101. @@ -51,8 +101,18 @@
  102. echo $(RANLIB) libbz2.a ; \
  103. $(RANLIB) libbz2.a ; \
  104. fi
  105. +endif
  106. +ifeq ($(ENABLE_LIB_SHARED),1)
  107. + $(CC) -shared -Wl,-soname -Wl,libbz2.so.1.0 $(LDFLAGS) -o libbz2.so.1.0.8 $(OBJS)
  108. + rm -f libbz2.so.1.0
  109. + rm -f libbz2.so.1
  110. + rm -f libbz2.so
  111. + ln -s libbz2.so.1.0.8 libbz2.so.1.0
  112. + ln -s libbz2.so.1.0 libbz2.so.1
  113. + ln -s libbz2.so.1 libbz2.so
  114. +endif
  115. -check: test
  116. +check: $(TGTS_check)
  117. test: bzip2
  118. @cat words1
  119. ./bzip2 -1 < sample1.ref > sample1.rb2
  120. @@ -69,69 +129,153 @@
  121. cmp sample3.tst sample3.ref
  122. @cat words3
  123. -install: bzip2 bzip2recover
  124. +install: $(TGTS_install)
  125. +ifeq ($(ENABLE_BIN),1)
  126. if ( test ! -d $(PREFIX)/bin ) ; then mkdir -p $(PREFIX)/bin ; fi
  127. +endif
  128. +ifeq ($(ENABLE_LIB),1)
  129. if ( test ! -d $(PREFIX)/lib ) ; then mkdir -p $(PREFIX)/lib ; fi
  130. +endif
  131. +ifeq ($(ENABLE_DEV),1)
  132. + if ( test ! -d $(PREFIX)/include ) ; then mkdir -p $(PREFIX)/include ; fi
  133. +endif
  134. +ifeq ($(ENABLE_DOCS),1)
  135. if ( test ! -d $(PREFIX)/man ) ; then mkdir -p $(PREFIX)/man ; fi
  136. if ( test ! -d $(PREFIX)/man/man1 ) ; then mkdir -p $(PREFIX)/man/man1 ; fi
  137. - if ( test ! -d $(PREFIX)/include ) ; then mkdir -p $(PREFIX)/include ; fi
  138. +endif
  139. +ifeq ($(ENABLE_BIN),1)
  140. + ifeq ($(ENABLE_BIN_STATIC),1)
  141. cp -f bzip2 $(PREFIX)/bin/bzip2
  142. - cp -f bzip2 $(PREFIX)/bin/bunzip2
  143. - cp -f bzip2 $(PREFIX)/bin/bzcat
  144. + chmod a+rx $(PREFIX)/bin/bzip2
  145. + endif
  146. + ifeq ($(ENABLE_BIN_SHARED),1)
  147. + ifeq ($(ENABLE_BIN_STATIC),1)
  148. + cp -f bzip2-shared $(PREFIX)/bin/bzip2-shared
  149. + chmod a+rx $(PREFIX)/bin/bzip2-shared
  150. + else
  151. + cp -f bzip2-shared $(PREFIX)/bin/bzip2
  152. + endif
  153. + endif
  154. + rm -f $(PREFIX)/bin/bunzip2
  155. + rm -f $(PREFIX)/bin/bzcat
  156. + ( cd $(PREFIX)/bin && ln -s bzip2 bunzip2 )
  157. + ( cd $(PREFIX)/bin && ln -s bzip2 bzcat )
  158. + rm -f $(PREFIX)/bin/bunzip2-shared
  159. + rm -f $(PREFIX)/bin/bzcat-shared
  160. + ifeq ($(ENABLE_BIN_SHARED),1)
  161. + ifeq ($(ENABLE_BIN_STATIC),1)
  162. + ( cd $(PREFIX)/bin && ln -s bzip2-shared bunzip2-shared )
  163. + ( cd $(PREFIX)/bin && ln -s bzip2-shared bzcat-shared )
  164. + endif
  165. + endif
  166. cp -f bzip2recover $(PREFIX)/bin/bzip2recover
  167. - chmod a+x $(PREFIX)/bin/bzip2
  168. - chmod a+x $(PREFIX)/bin/bunzip2
  169. - chmod a+x $(PREFIX)/bin/bzcat
  170. - chmod a+x $(PREFIX)/bin/bzip2recover
  171. - cp -f bzip2.1 $(PREFIX)/man/man1
  172. - chmod a+r $(PREFIX)/man/man1/bzip2.1
  173. - cp -f bzlib.h $(PREFIX)/include
  174. - chmod a+r $(PREFIX)/include/bzlib.h
  175. - cp -f libbz2.a $(PREFIX)/lib
  176. - chmod a+r $(PREFIX)/lib/libbz2.a
  177. + chmod a+rx $(PREFIX)/bin/bzip2recover
  178. cp -f bzgrep $(PREFIX)/bin/bzgrep
  179. - ln -s -f $(PREFIX)/bin/bzgrep $(PREFIX)/bin/bzegrep
  180. - ln -s -f $(PREFIX)/bin/bzgrep $(PREFIX)/bin/bzfgrep
  181. - chmod a+x $(PREFIX)/bin/bzgrep
  182. + chmod a+rx $(PREFIX)/bin/bzgrep
  183. + rm -f $(PREFIX)/bin/bzegrep
  184. + rm -f $(PREFIX)/bin/bzfgrep
  185. + ( cd $(PREFIX)/bin && ln -s bzgrep bzegrep )
  186. + ( cd $(PREFIX)/bin && ln -s bzgrep bzfgrep )
  187. cp -f bzmore $(PREFIX)/bin/bzmore
  188. - ln -s -f $(PREFIX)/bin/bzmore $(PREFIX)/bin/bzless
  189. - chmod a+x $(PREFIX)/bin/bzmore
  190. + chmod a+rx $(PREFIX)/bin/bzmore
  191. + rm -f $(PREFIX)/bin/bzless
  192. + ( cd $(PREFIX)/bin && ln -s bzmore bzless )
  193. + rm -f $(PREFIX)/bin/bzcmp
  194. cp -f bzdiff $(PREFIX)/bin/bzdiff
  195. - ln -s -f $(PREFIX)/bin/bzdiff $(PREFIX)/bin/bzcmp
  196. - chmod a+x $(PREFIX)/bin/bzdiff
  197. - cp -f bzgrep.1 bzmore.1 bzdiff.1 $(PREFIX)/man/man1
  198. - chmod a+r $(PREFIX)/man/man1/bzgrep.1
  199. - chmod a+r $(PREFIX)/man/man1/bzmore.1
  200. - chmod a+r $(PREFIX)/man/man1/bzdiff.1
  201. + chmod a+rx $(PREFIX)/bin/bzdiff
  202. + ( cd $(PREFIX)/bin && ln -s bzdiff bzcmp )
  203. +endif
  204. +ifeq ($(ENABLE_DEV),1)
  205. + cp -f bzlib.h $(PREFIX)/include
  206. + chmod a+r $(PREFIX)/include/bzlib.h
  207. +endif
  208. +ifeq ($(ENABLE_DOCS),1)
  209. + cp -f bzip2.1 bzgrep.1 bzmore.1 bzdiff.1 $(PREFIX)/man/man1
  210. echo ".so man1/bzgrep.1" > $(PREFIX)/man/man1/bzegrep.1
  211. echo ".so man1/bzgrep.1" > $(PREFIX)/man/man1/bzfgrep.1
  212. echo ".so man1/bzmore.1" > $(PREFIX)/man/man1/bzless.1
  213. echo ".so man1/bzdiff.1" > $(PREFIX)/man/man1/bzcmp.1
  214. + chmod a+r $(PREFIX)/man/man1/bzip2.1
  215. + chmod a+r $(PREFIX)/man/man1/bzgrep.1
  216. + chmod a+r $(PREFIX)/man/man1/bzmore.1
  217. + chmod a+r $(PREFIX)/man/man1/bzdiff.1
  218. + chmod a+r $(PREFIX)/man/man1/bzegrep.1
  219. + chmod a+r $(PREFIX)/man/man1/bzfgrep.1
  220. + chmod a+r $(PREFIX)/man/man1/bzless.1
  221. + chmod a+r $(PREFIX)/man/man1/bzcmp.1
  222. +endif
  223. +ifeq ($(ENABLE_LIB_SHARED),1)
  224. + cp -f libbz2.so.1.0.8 $(PREFIX)/lib
  225. + chmod a+r $(PREFIX)/lib/libbz2.so.1.0.8
  226. + rm -f $(PREFIX)/lib/libbz2.so.1.0
  227. + rm -f $(PREFIX)/lib/libbz2.so.1
  228. + rm -f $(PREFIX)/lib/libbz2.so
  229. + ( cd $(PREFIX)/lib && ln -s libbz2.so.1.0.8 libbz2.so.1.0 )
  230. + ( cd $(PREFIX)/lib && ln -s libbz2.so.1.0 libbz2.so.1 )
  231. + ( cd $(PREFIX)/lib && ln -s libbz2.so.1 libbz2.so )
  232. +endif
  233. +ifeq ($(ENABLE_LIB_STATIC),1)
  234. + cp -f libbz2.a $(PREFIX)/lib
  235. + chmod a+r $(PREFIX)/lib/libbz2.a
  236. +endif
  237. +
  238. +uninstall:
  239. + rm -f $(PREFIX)/bin/bzip2
  240. + rm -f $(PREFIX)/bin/bzip2-shared
  241. + rm -f $(PREFIX)/bin/bunzip2
  242. + rm -f $(PREFIX)/bin/bzcat
  243. + rm -f $(PREFIX)/bin/bunzip2-shared
  244. + rm -f $(PREFIX)/bin/bzcat-shared
  245. + rm -f $(PREFIX)/bin/bzip2recover
  246. + rm -f $(PREFIX)/bin/bzgrep
  247. + rm -f $(PREFIX)/bin/bzegrep
  248. + rm -f $(PREFIX)/bin/bzfgrep
  249. + rm -f $(PREFIX)/bin/bzmore
  250. + rm -f $(PREFIX)/bin/bzless
  251. + rm -f $(PREFIX)/bin/bzdiff
  252. + rm -f $(PREFIX)/bin/bzcmp
  253. + rm -f $(PREFIX)/include/bzlib.h
  254. + rm -f $(PREFIX)/lib/libbz2.so.1.0.8
  255. + rm -f $(PREFIX)/lib/libbz2.so.1.0
  256. + rm -f $(PREFIX)/lib/libbz2.so.1
  257. + rm -f $(PREFIX)/lib/libbz2.so
  258. + rm -f $(PREFIX)/lib/libbz2.a
  259. + rm -f $(PREFIX)/man/man1/bzip2.1
  260. + rm -f $(PREFIX)/man/man1/bzgrep.1
  261. + rm -f $(PREFIX)/man/man1/bzmore.1
  262. + rm -f $(PREFIX)/man/man1/bzdiff.1
  263. + rm -f $(PREFIX)/man/man1/bzegrep.1
  264. + rm -f $(PREFIX)/man/man1/bzfgrep.1
  265. + rm -f $(PREFIX)/man/man1/bzless.1
  266. + rm -f $(PREFIX)/man/man1/bzcmp.1
  267. + (rmdir $(PREFIX)/bin $(PREFIX)/include $(PREFIX)/lib $(PREFIX)/man/man1 $(PREFIX)/man || true ) 2> /dev/null
  268. clean:
  269. - rm -f *.o libbz2.a bzip2 bzip2recover \
  270. + rm -f $(OBJS) bzip2.o \
  271. + libbz2.so.1.0.8 libbz2.so.1.0 libbz2.so.1 libbz2.so \
  272. + libbz2.a bzip2 bzip2-shared bzip2recover \
  273. sample1.rb2 sample2.rb2 sample3.rb2 \
  274. sample1.tst sample2.tst sample3.tst
  275. blocksort.o: blocksort.c
  276. @cat words0
  277. - $(CC) $(CFLAGS) -c blocksort.c
  278. + $(CC) $(CFLAGS_NOPIC) -c blocksort.c
  279. huffman.o: huffman.c
  280. - $(CC) $(CFLAGS) -c huffman.c
  281. + $(CC) $(CFLAGS_NOPIC) -c huffman.c
  282. crctable.o: crctable.c
  283. - $(CC) $(CFLAGS) -c crctable.c
  284. + $(CC) $(CFLAGS_NOPIC) -c crctable.c
  285. randtable.o: randtable.c
  286. - $(CC) $(CFLAGS) -c randtable.c
  287. + $(CC) $(CFLAGS_NOPIC) -c randtable.c
  288. compress.o: compress.c
  289. - $(CC) $(CFLAGS) -c compress.c
  290. + $(CC) $(CFLAGS_NOPIC) -c compress.c
  291. decompress.o: decompress.c
  292. - $(CC) $(CFLAGS) -c decompress.c
  293. + $(CC) $(CFLAGS_NOPIC) -c decompress.c
  294. bzlib.o: bzlib.c
  295. - $(CC) $(CFLAGS) -c bzlib.c
  296. + $(CC) $(CFLAGS_NOPIC) -c bzlib.c
  297. bzip2.o: bzip2.c
  298. - $(CC) $(CFLAGS) -c bzip2.c
  299. + $(CC) $(CFLAGS_NOPIC) -c bzip2.c
  300. bzip2recover.o: bzip2recover.c
  301. - $(CC) $(CFLAGS) -c bzip2recover.c
  302. + $(CC) $(CFLAGS_NOPIC) -c bzip2recover.c
  303. distclean: clean
  304. @@ -189,7 +333,6 @@
  305. $(DISTNAME)/bzmore.1 \
  306. $(DISTNAME)/bzgrep \
  307. $(DISTNAME)/bzgrep.1 \
  308. - $(DISTNAME)/Makefile-libbz2_so \
  309. $(DISTNAME)/bz-common.xsl \
  310. $(DISTNAME)/bz-fo.xsl \
  311. $(DISTNAME)/bz-html.xsl \
  312. --- a/Makefile-libbz2_so
  313. +++ b/Makefile-libbz2_so
  314. @@ -1,59 +0,0 @@
  315. -
  316. -# This Makefile builds a shared version of the library,
  317. -# libbz2.so.1.0.8, with soname libbz2.so.1.0,
  318. -# at least on x86-Linux (RedHat 7.2),
  319. -# with gcc-2.96 20000731 (Red Hat Linux 7.1 2.96-98).
  320. -# Please see the README file for some important info
  321. -# about building the library like this.
  322. -
  323. -# ------------------------------------------------------------------
  324. -# This file is part of bzip2/libbzip2, a program and library for
  325. -# lossless, block-sorting data compression.
  326. -#
  327. -# bzip2/libbzip2 version 1.0.8 of 13 July 2019
  328. -# Copyright (C) 1996-2019 Julian Seward <[email protected]>
  329. -#
  330. -# Please read the WARNING, DISCLAIMER and PATENTS sections in the
  331. -# README file.
  332. -#
  333. -# This program is released under the terms of the license contained
  334. -# in the file LICENSE.
  335. -# ------------------------------------------------------------------
  336. -
  337. -
  338. -SHELL=/bin/sh
  339. -CC=gcc
  340. -BIGFILES=-D_FILE_OFFSET_BITS=64
  341. -CFLAGS=-fpic -fPIC -Wall -Winline -O2 -g $(BIGFILES)
  342. -
  343. -OBJS= blocksort.o \
  344. - huffman.o \
  345. - crctable.o \
  346. - randtable.o \
  347. - compress.o \
  348. - decompress.o \
  349. - bzlib.o
  350. -
  351. -all: $(OBJS)
  352. - $(CC) -shared -Wl,-soname -Wl,libbz2.so.1.0 -o libbz2.so.1.0.8 $(OBJS)
  353. - $(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.1.0.8
  354. - rm -f libbz2.so.1.0
  355. - ln -s libbz2.so.1.0.8 libbz2.so.1.0
  356. -
  357. -clean:
  358. - rm -f $(OBJS) bzip2.o libbz2.so.1.0.8 libbz2.so.1.0 bzip2-shared
  359. -
  360. -blocksort.o: blocksort.c
  361. - $(CC) $(CFLAGS) -c blocksort.c
  362. -huffman.o: huffman.c
  363. - $(CC) $(CFLAGS) -c huffman.c
  364. -crctable.o: crctable.c
  365. - $(CC) $(CFLAGS) -c crctable.c
  366. -randtable.o: randtable.c
  367. - $(CC) $(CFLAGS) -c randtable.c
  368. -compress.o: compress.c
  369. - $(CC) $(CFLAGS) -c compress.c
  370. -decompress.o: decompress.c
  371. - $(CC) $(CFLAGS) -c decompress.c
  372. -bzlib.o: bzlib.c
  373. - $(CC) $(CFLAGS) -c bzlib.c
  374. --- a/unzcrash.c
  375. +++ b/unzcrash.c
  376. @@ -30,7 +30,7 @@
  377. #include <stdio.h>
  378. #include <assert.h>
  379. -#include "bzlib.h"
  380. +#include <bzlib.h>
  381. #define M_BLOCK 1000000