--- Makefile.orig Fri Jun 23 16:34:47 2000 +++ Makefile Mon Oct 16 14:49:33 2000 @@ -4,6 +4,9 @@ BIGFILES=-D_FILE_OFFSET_BITS=64 CFLAGS=-Wall -Winline -O2 -fomit-frame-pointer -fno-strength-reduce $(BIGFILES) +PICFLAG= -fpic +SHLIB= libbz2.so.10.1 + OBJS= blocksort.o \ huffman.o \ crctable.o \ @@ -11,10 +14,17 @@ compress.o \ decompress.o \ bzlib.o +SHOBJS= $(OBJS:.o=.so) -all: libbz2.a bzip2 bzip2recover test +.SUFFIXES: .o .so +.if defined(NO_SHARED_LIBS) && ${NO_SHARED_LIBS:L} == "yes" +all: libbz2.a bzip2 bzip2recover bzip2: libbz2.a bzip2.o +.else +all: libbz2.a $(SHLIB) bzip2 bzip2recover +bzip2: libbz2.a $(SHLIB) bzip2.o +.endif $(CC) $(CFLAGS) -o bzip2 bzip2.o -L. -lbz2 bzip2recover: bzip2recover.o @@ -29,49 +39,50 @@ ranlib libbz2.a ; \ fi -test: bzip2 - @cat words1 - ./bzip2 -1 < sample1.ref > sample1.rb2 - ./bzip2 -2 < sample2.ref > sample2.rb2 - ./bzip2 -3 < sample3.ref > sample3.rb2 - ./bzip2 -d < sample1.bz2 > sample1.tst - ./bzip2 -d < sample2.bz2 > sample2.tst - ./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 +$(SHLIB): $(SHOBJS) + $(CC) -shared $(PICFLAG) -o $(SHLIB) $(SHOBJS) -PREFIX=/usr +test: bzip2 + ./bzip2 -1 < sample1.ref > sample1.rb2 || exit 1 + ./bzip2 -2 < sample2.ref > sample2.rb2 || exit 1 + ./bzip2 -3 < sample3.ref > sample3.rb2 || exit 1 + ./bzip2 -d < sample1.bz2 > sample1.tst || exit 1 + ./bzip2 -d < sample2.bz2 > sample2.tst || exit 1 + ./bzip2 -ds < sample3.bz2 > sample3.tst || exit 1 + cmp sample1.bz2 sample1.rb2 || exit 1 + cmp sample2.bz2 sample2.rb2 || exit 1 + cmp sample3.bz2 sample3.rb2 || exit 1 + cmp sample1.tst sample1.ref || exit 1 + cmp sample2.tst sample2.ref || exit 1 + cmp sample3.tst sample3.ref || exit 1 install: bzip2 bzip2recover - 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 - cp -f bzip2 $(PREFIX)/bin/bunzip2 - cp -f 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 -f libbz2.a $(PREFIX)/lib - chmod a+r $(PREFIX)/lib/libbz2.a + if ( test ! -d $(DESTDIR)$(PREFIX)/bin ) ; then $(BSD_INSTALL_PROGRAM_DIR) $(DESTDIR)$(PREFIX)/bin ; fi + if ( test ! -d $(DESTDIR)$(PREFIX)/lib ) ; then $(BSD_INSTALL_DATA_DIR) $(DESTDIR)$(PREFIX)/lib ; fi + if ( test ! -d $(DESTDIR)$(PREFIX)/man ) ; then $(BSD_INSTALL_MAN_DIR) $(DESTDIR)$(PREFIX)/man ; fi + if ( test ! -d $(DESTDIR)$(PREFIX)/man/man1 ) ; then $(BSD_INSTALL_MAN_DIR) $(DESTDIR)$(PREFIX)/man/man1 ; fi + if ( test ! -d $(DESTDIR)$(PREFIX)/include ) ; then $(BSD_INSTALL_DATA_DIR) $(DESTDIR)$(PREFIX)/include ; fi + $(BSD_INSTALL_PROGRAM) bzip2 $(DESTDIR)$(PREFIX)/bin + @cd $(DESTDIR)$(PREFIX)/bin; ln -fs bzip2 bunzip2; \ + ln -fs bzip2 bzcat + $(BSD_INSTALL_PROGRAM) bzip2recover $(DESTDIR)$(PREFIX)/bin + $(BSD_INSTALL_MAN) bzip2.1 $(DESTDIR)$(PREFIX)/man/man1 + $(BSD_INSTALL_MAN) bzip2.1 $(DESTDIR)$(PREFIX)/man/man1/bunzip2.1 + $(BSD_INSTALL_MAN) bzip2.1 $(DESTDIR)$(PREFIX)/man/man1/bzcat.1 + $(BSD_INSTALL_MAN) bzip2.1 $(DESTDIR)$(PREFIX)/man/man1/bzip2recover.1 + $(BSD_INSTALL_DATA) bzlib.h $(DESTDIR)$(PREFIX)/include + $(BSD_INSTALL_DATA) libbz2.a $(DESTDIR)$(PREFIX)/lib + @if [ -f $(SHLIB) ]; then \ + $(BSD_INSTALL_DATA) $(SHLIB) $(DESTDIR)$(PREFIX)/lib; \ + fi clean: - rm -f *.o libbz2.a bzip2 bzip2recover \ + rm -f *.o *.so libbz2.a $(SHLIB) bzip2 bzip2recover \ sample1.rb2 sample2.rb2 sample3.rb2 \ sample1.tst sample2.tst sample3.tst + +.c.so: + $(CC) $(CFLAGS) $(PICFLAG) -DPIC -c $? -o $@ blocksort.o: blocksort.c @cat words0