Build objects twice for shared and static libraries The existing Makefile causes problems on MIPS because the same object files (not compiled with -fPIC) are used in static and shared libraries. MIPS will refuce to link non-pic objects in shared libraries. We fix this problems by creating a new rule for the shared library and build the shared objects as *.sho instead of *.o. Then, we use these objects to create the shared library. Signed-off-by: Markos Chandras Index: bzip2-1.0.6/Makefile-libbz2_so =================================================================== --- bzip2-1.0.6.orig/Makefile-libbz2_so +++ bzip2-1.0.6/Makefile-libbz2_so @@ -25,13 +25,13 @@ SHELL=/bin/sh CC=gcc override CFLAGS += -fpic -fPIC -Wall -OBJS= blocksort.o \ - huffman.o \ - crctable.o \ - randtable.o \ - compress.o \ - decompress.o \ - bzlib.o +OBJS= blocksort.sho \ + huffman.sho \ + crctable.sho \ + randtable.sho \ + compress.sho \ + decompress.sho \ + bzlib.sho all: $(OBJS) $(CC) -shared -Wl,-soname -Wl,libbz2.so.1.0 -o libbz2.so.1.0.6 $(OBJS) @@ -45,17 +45,5 @@ install: clean: rm -f $(OBJS) bzip2.o libbz2.so.1.0.6 libbz2.so.1.0 bzip2-shared -blocksort.o: blocksort.c - $(CC) $(CFLAGS) -c blocksort.c -huffman.o: huffman.c - $(CC) $(CFLAGS) -c huffman.c -crctable.o: crctable.c - $(CC) $(CFLAGS) -c crctable.c -randtable.o: randtable.c - $(CC) $(CFLAGS) -c randtable.c -compress.o: compress.c - $(CC) $(CFLAGS) -c compress.c -decompress.o: decompress.c - $(CC) $(CFLAGS) -c decompress.c -bzlib.o: bzlib.c - $(CC) $(CFLAGS) -c bzlib.c +%.sho: %.c + $(CC) $(CFLAGS) -o $@ -c $<