160 lines
3.9 KiB
Diff
160 lines
3.9 KiB
Diff
--- Makefile.orig 2022-08-04 19:46:46.107815841 +0100
|
|
+++ Makefile 2022-08-05 14:43:30.765000000 +0100
|
|
@@ -64,6 +64,8 @@
|
|
# LDLIB = -lgcc
|
|
######### Additional libraries needed by $(LD)
|
|
|
|
+# What's this release's version?.
|
|
+VER ?= 1.0.22
|
|
|
|
# Where do you want to install libraries, binaries, a header file
|
|
# and the manual pages?
|
|
@@ -96,7 +98,7 @@
|
|
# Other tools
|
|
|
|
SHELL = /bin/sh
|
|
-LN = ln
|
|
+LN = ln -s
|
|
BASENAME = basename
|
|
AR = ar
|
|
ARFLAGS = cr
|
|
@@ -140,6 +142,7 @@
|
|
# Targets
|
|
|
|
LIBGSM = $(LIB)/libgsm.a
|
|
+LIBGSMSO= $(LIB)/libgsm.so
|
|
|
|
TOAST = $(BIN)/toast
|
|
UNTOAST = $(BIN)/untoast
|
|
@@ -203,24 +206,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 +250,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 +299,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 +324,29 @@
|
|
|
|
# The basic API: libgsm
|
|
|
|
-$(LIBGSM): $(LIB) $(GSM_OBJECTS)
|
|
+$(LIBGSMSO): $(LIB) $(SHARED_GSM_OBJECTS)
|
|
+ $(LD) $(LFLAGS) -o $@.${VER} -shared -Xlinker -soname -Xlinker libgsm.so.1 $(SHARED_GSM_OBJECTS) -lc
|
|
+ ln -fs libgsm.so.${VER} lib/libgsm.so.1
|
|
+ ln -fs libgsm.so.${VER} 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 +456,9 @@
|
|
|
|
clean: semi-clean
|
|
-rm $(RMFLAGS) $(LIBGSM) $(ADDTST)/add \
|
|
- $(TOAST) $(TCAT) $(UNTOAST) \
|
|
+ $(LIBGSMSO) $(LIB)/libgsm.so.${VER} \
|
|
+ $(LIB)libgsm.so.1 \
|
|
+ $(TOAST) $(TCAT) $(UNTOAST) \
|
|
$(ROOT)/gsm-1.0.tar.gz
|
|
|
|
|