ee07b60432
Also merge two additional patches from Gentoo.
150 lines
3.5 KiB
Diff
150 lines
3.5 KiB
Diff
--- Makefile 2006-04-26 22:14:26.000000000 +0300
|
|
+++ 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
|
|
|
|
|