1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
|
somajor=0
sominor=$(somajor).9.5d
SHELL=/bin/sh
CC=gcc
CFLAGS=-Wall -Winline -O2 -g
OBJS= blocksort.o \
huffman.o \
crctable.o \
randtable.o \
compress.o \
decompress.o \
bzlib.o
all: libbz2.a bzip2 bzip2recover test
bzip2: libbz2.so bzip2.c
$(CC) $(CFLAGS) -o bzip2 $^
bzip2recover: bzip2recover.c
$(CC) $(CFLAGS) -o bzip2recover $^
libbz2.a: $(OBJS)
rm -f libbz2.a
ar cq libbz2.a $(OBJS)
@if ( test -f /usr/bin/ranlib -o -f /bin/ranlib -o \
-f /usr/ccs/bin/ranlib ) ; then \
echo ranlib libbz2.a ; \
ranlib libbz2.a ; \
fi
libbz2.so: libbz2.so.$(somajor)
ln -sf $^ $@
libbz2.so.$(somajor): libbz2.so.$(sominor)
ln -sf $^ $@
libbz2.so.$(sominor): $(OBJS:%.o=%.sho)
$(CC) -o libbz2.so.$(sominor) -shared \
-Wl,-soname,libbz2.so.$(somajor) $^ -lc
%.sho: %.c
$(CC) $(CFLAGS) -D_REENTRANT -fPIC -o $@ -c $<
%.o: %.c
$(CC) $(CFLAGS) -D_REENTRANT -o $@ -c $<
test: bzip2
@cat words1
LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH \
./bzip2 -1 < sample1.ref > sample1.rb2
LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH \
./bzip2 -2 < sample2.ref > sample2.rb2
LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH \
./bzip2 -3 < sample3.ref > sample3.rb2
LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH \
./bzip2 -d < sample1.bz2 > sample1.tst
LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH \
./bzip2 -d < sample2.bz2 > sample2.tst
LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH \
./bzip2 -ds < sample3.bz2 > sample3.tst
cmp sample1.bz2 sample1.rb2
cmp sample2.bz2 sample2.rb2
cmp sample3.bz2 sample3.rb2
cmp sample1.tst sample1.ref
cmp sample2.tst sample2.ref
cmp sample3.tst sample3.ref
@cat words3
PREFIX=/usr
install: bzip2 bzip2recover libbz2.a
if ( test ! -d $(PREFIX)/bin ) ; then mkdir $(PREFIX)/bin ; fi
if ( test ! -d $(PREFIX)/lib ) ; then mkdir $(PREFIX)/lib ; fi
if ( test ! -d $(PREFIX)/man ) ; then mkdir $(PREFIX)/man ; fi
if ( test ! -d $(PREFIX)/man/man1 ) ; then mkdir $(PREFIX)/man/man1 ; fi
if ( test ! -d $(PREFIX)/include ) ; then mkdir $(PREFIX)/include ; fi
cp -f bzip2 $(PREFIX)/bin/bzip2
ln $(PREFIX)/bin/bzip2 $(PREFIX)/bin/bunzip2
ln $(PREFIX)/bin/bzip2 $(PREFIX)/bin/bzcat
cp -f bzip2recover $(PREFIX)/bin/bzip2recover
chmod a+x $(PREFIX)/bin/bzip2
chmod a+x $(PREFIX)/bin/bunzip2
chmod a+x $(PREFIX)/bin/bzcat
chmod a+x $(PREFIX)/bin/bzip2recover
cp -f bzip2.1 $(PREFIX)/man/man1
chmod a+r $(PREFIX)/man/man1/bzip2.1
cp -f bzlib.h $(PREFIX)/include
chmod a+r $(PREFIX)/include/bzlib.h
cp -fa libbz2.a libbz2.so* $(PREFIX)/lib
chmod a+r $(PREFIX)/lib/libbz2.a
clean:
rm -f *.o *.sho libbz2.a libbz2.so* bzip2 bzip2recover \
sample1.rb2 sample2.rb2 sample3.rb2 \
sample1.tst sample2.tst sample3.tst
tarfile:
tar cvf interim.tar blocksort.c huffman.c crctable.c \
randtable.c compress.c decompress.c bzlib.c bzip2.c \
bzip2recover.c bzlib.h bzlib_private.h Makefile manual.texi \
manual.ps LICENSE bzip2.1 bzip2.1.preformatted bzip2.txt \
words1 words2 words3 sample1.ref sample2.ref sample3.ref \
sample1.bz2 sample2.bz2 sample3.bz2 dlltest.c \
*.html README CHANGES libbz2.def libbz2.dsp \
dlltest.dsp makefile.msc Y2K_INFO
|