57 lines
1.7 KiB
Diff
57 lines
1.7 KiB
Diff
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 <markos.chandras@imgtec.com>
|
|
|
|
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 $<
|