summaryrefslogtreecommitdiff
path: root/libraries/gsm/patches/gsm-1.0.13-shared.patch
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/gsm/patches/gsm-1.0.13-shared.patch')
-rw-r--r--libraries/gsm/patches/gsm-1.0.13-shared.patch151
1 files changed, 151 insertions, 0 deletions
diff --git a/libraries/gsm/patches/gsm-1.0.13-shared.patch b/libraries/gsm/patches/gsm-1.0.13-shared.patch
new file mode 100644
index 0000000000..fc99e2c304
--- /dev/null
+++ b/libraries/gsm/patches/gsm-1.0.13-shared.patch
@@ -0,0 +1,151 @@
+diff -ur gsm-1.0-pl13.orig/Makefile gsm-1.0-pl13/Makefile
+--- gsm-1.0-pl13.orig/Makefile 2006-04-26 22:14:26.000000000 +0300
++++ gsm-1.0-pl13/Makefile 2009-09-08 14:50:02.000000000 +0300
+@@ -96,7 +96,7 @@
+ # Other tools
+
+ SHELL = /bin/sh
+-LN = ln
++LN = ln -s
+ BASENAME = basename
+ AR = ar
+ ARFLAGS = cr
+@@ -140,6 +140,7 @@
+ # Targets
+
+ LIBGSM = $(LIB)/libgsm.a
++LIBGSMSO= $(LIB)/libgsm.so
+
+ TOAST = $(BIN)/toast
+ UNTOAST = $(BIN)/untoast
+@@ -203,24 +204,43 @@
+
+ # Object files
+
+-GSM_OBJECTS = $(SRC)/add.o \
+- $(SRC)/code.o \
+- $(SRC)/debug.o \
+- $(SRC)/decode.o \
+- $(SRC)/long_term.o \
+- $(SRC)/lpc.o \
+- $(SRC)/preprocess.o \
+- $(SRC)/rpe.o \
+- $(SRC)/gsm_destroy.o \
+- $(SRC)/gsm_decode.o \
+- $(SRC)/gsm_encode.o \
+- $(SRC)/gsm_explode.o \
+- $(SRC)/gsm_implode.o \
+- $(SRC)/gsm_create.o \
+- $(SRC)/gsm_print.o \
+- $(SRC)/gsm_option.o \
+- $(SRC)/short_term.o \
+- $(SRC)/table.o
++STATIC_GSM_OBJECTS = $(SRC)/add.o \
++ $(SRC)/code.o \
++ $(SRC)/debug.o \
++ $(SRC)/decode.o \
++ $(SRC)/long_term.o \
++ $(SRC)/lpc.o \
++ $(SRC)/preprocess.o \
++ $(SRC)/rpe.o \
++ $(SRC)/gsm_destroy.o \
++ $(SRC)/gsm_decode.o \
++ $(SRC)/gsm_encode.o \
++ $(SRC)/gsm_explode.o \
++ $(SRC)/gsm_implode.o \
++ $(SRC)/gsm_create.o \
++ $(SRC)/gsm_print.o \
++ $(SRC)/gsm_option.o \
++ $(SRC)/short_term.o \
++ $(SRC)/table.o
++
++SHARED_GSM_OBJECTS = $(SRC)/add.lo \
++ $(SRC)/code.lo \
++ $(SRC)/debug.lo \
++ $(SRC)/decode.lo \
++ $(SRC)/long_term.lo \
++ $(SRC)/lpc.lo \
++ $(SRC)/preprocess.lo \
++ $(SRC)/rpe.lo \
++ $(SRC)/gsm_destroy.lo \
++ $(SRC)/gsm_decode.lo \
++ $(SRC)/gsm_encode.lo \
++ $(SRC)/gsm_explode.lo \
++ $(SRC)/gsm_implode.lo \
++ $(SRC)/gsm_create.lo \
++ $(SRC)/gsm_print.lo \
++ $(SRC)/gsm_option.lo \
++ $(SRC)/short_term.lo \
++ $(SRC)/table.lo
+
+ TOAST_OBJECTS = $(SRC)/toast.o \
+ $(SRC)/toast_lin.o \
+@@ -228,7 +248,7 @@
+ $(SRC)/toast_alaw.o \
+ $(SRC)/toast_audio.o
+
+-OBJECTS = $(GSM_OBJECTS) $(TOAST_OBJECTS)
++OBJECTS = $(STATIC_GSM_OBJECTS) $(SHARED_GSM_OBJECTS) $(TOAST_OBJECTS)
+
+ # Manuals
+
+@@ -277,9 +297,12 @@
+ $(CC) $(CFLAGS) $?
+ @-mv `$(BASENAME) $@` $@ > /dev/null 2>&1
+
++%.lo: %.c
++ $(CC) $(CFLAGS) -fPIC -c $< -o $@
++
+ # Target rules
+
+-all: $(LIBGSM) $(TOAST) $(TCAT) $(UNTOAST)
++all: $(LIBGSM) $(LIBGSMSO) $(TOAST) $(TCAT) $(UNTOAST)
+ @-echo $(ROOT): Done.
+
+ tst: $(TST)/lin2cod $(TST)/cod2lin $(TOAST) $(TST)/test-result
+@@ -299,24 +322,29 @@
+
+ # The basic API: libgsm
+
+-$(LIBGSM): $(LIB) $(GSM_OBJECTS)
++$(LIBGSMSO): $(LIB) $(SHARED_GSM_OBJECTS)
++ $(LD) $(LFLAGS) -o $@.1.0.13 -shared -Xlinker -soname -Xlinker libgsm.so.1 $(SHARED_GSM_OBJECTS) -lc
++ ln -fs libgsm.so.1.0.13 lib/libgsm.so.1
++ ln -fs libgsm.so.1.0.13 lib/libgsm.so
++
++$(LIBGSM): $(LIB) $(STATIC_GSM_OBJECTS)
+ -rm $(RMFLAGS) $(LIBGSM)
+- $(AR) $(ARFLAGS) $(LIBGSM) $(GSM_OBJECTS)
++ $(AR) $(ARFLAGS) $(LIBGSM) $(STATIC_GSM_OBJECTS)
+ $(RANLIB) $(LIBGSM)
+
+
+ # Toast, Untoast and Tcat -- the compress-like frontends to gsm.
+
+ $(TOAST): $(BIN) $(TOAST_OBJECTS) $(LIBGSM)
+- $(LD) $(LFLAGS) -o $(TOAST) $(TOAST_OBJECTS) $(LIBGSM) $(LDLIB)
++ $(LD) $(LFLAGS) -o $(TOAST) $(TOAST_OBJECTS) $(LIBGSMSO) $(LDLIB)
+
+ $(UNTOAST): $(BIN) $(TOAST)
+ -rm $(RMFLAGS) $(UNTOAST)
+- $(LN) $(TOAST) $(UNTOAST)
++ $(LN) toast $(UNTOAST)
+
+ $(TCAT): $(BIN) $(TOAST)
+ -rm $(RMFLAGS) $(TCAT)
+- $(LN) $(TOAST) $(TCAT)
++ $(LN) toast $(TCAT)
+
+
+ # The local bin and lib directories
+@@ -426,7 +454,9 @@
+
+ clean: semi-clean
+ -rm $(RMFLAGS) $(LIBGSM) $(ADDTST)/add \
+- $(TOAST) $(TCAT) $(UNTOAST) \
++ $(LIBGSMSO) $(LIB)/libgsm.so.1.0.13 \
++ $(LIB)libgsm.so.1 \
++ $(TOAST) $(TCAT) $(UNTOAST) \
+ $(ROOT)/gsm-1.0.tar.Z
+
+