Репозитории ALT
S: | 1.0.17-alt1 |
5.1: | 1.0.10-alt8 |
4.1: | 1.0.10-alt7 |
4.0: | 1.0.10-alt7 |
3.0: | 1.0.10-alt4 |
Группа :: Система/Библиотеки
Пакет: libgsm
Главная Изменения Спек Патчи Sources Загрузить Gear Bugs and FR Repocop
Патч: gsm-pld-alt-makefile.patch
Скачать
Скачать
--- gsm/Makefile
+++ gsm/Makefile
@@ -64,6 +64,7 @@ LD = $(CC)
# LDLIB = -lgcc
######### Additional libraries needed by $(LD)
+PICFLAGS = -fPIC
# Where do you want to install libraries, binaries, a header file
# and the manual pages?
@@ -78,10 +79,11 @@ INSTALL_ROOT =
# Leave GSM_INSTALL_ROOT empty to not install the GSM library outside of
# this directory.
-GSM_INSTALL_ROOT = $(INSTALL_ROOT)
-GSM_INSTALL_LIB = $(GSM_INSTALL_ROOT)/lib
-GSM_INSTALL_INC = $(GSM_INSTALL_ROOT)/inc
-GSM_INSTALL_MAN = $(GSM_INSTALL_ROOT)/man/man3
+SLIB = lib
+GSM_INSTALL_ROOT = $(INSTALL_ROOT)/usr
+GSM_INSTALL_LIB = $(GSM_INSTALL_ROOT)/$(SLIB)
+GSM_INSTALL_INC = $(GSM_INSTALL_ROOT)/include/gsm
+GSM_INSTALL_MAN = $(GSM_INSTALL_ROOT)/share/man/man3
# Where do you want to install the toast binaries and their manpage?
@@ -89,14 +91,15 @@ GSM_INSTALL_MAN = $(GSM_INSTALL_ROOT)/man/man3
# Leave TOAST_INSTALL_ROOT empty to not install the toast binaries outside
# of this directory.
-TOAST_INSTALL_ROOT = $(INSTALL_ROOT)
+TOAST_INSTALL_ROOT = $(INSTALL_ROOT)/usr
TOAST_INSTALL_BIN = $(TOAST_INSTALL_ROOT)/bin
-TOAST_INSTALL_MAN = $(TOAST_INSTALL_ROOT)/man/man1
+TOAST_INSTALL_MAN = $(TOAST_INSTALL_ROOT)/share/man/man1
# Other tools
+MV = mv
SHELL = /bin/sh
-LN = ln
+LN = ln -s
BASENAME = basename
AR = ar
ARFLAGS = cr
@@ -140,6 +143,7 @@ LFLAGS = $(LDFLAGS) $(LDINC)
# Targets
LIBGSM = $(LIB)/libgsm.a
+LIBGSMSO= $(LIB)/libgsm.so
TOAST = $(BIN)/toast
UNTOAST = $(BIN)/untoast
@@ -222,6 +226,8 @@ GSM_OBJECTS = $(SRC)/add.o \
$(SRC)/short_term.o \
$(SRC)/table.o
+GSM_SHOBJECTS = $(foreach OBJX,$(GSM_OBJECTS),$(patsubst $(SRC)/%,shared/%,$(OBJX)))
+
TOAST_OBJECTS = $(SRC)/toast.o \
$(SRC)/toast_lin.o \
$(SRC)/toast_ulaw.o \
@@ -257,7 +263,7 @@ STUFF = ChangeLog \
# Install targets
GSM_INSTALL_TARGETS = \
- $(GSM_INSTALL_LIB)/libgsm.a \
+ $(GSM_INSTALL_LIB)/libgsm.so.1.0.10 \
$(GSM_INSTALL_INC)/gsm.h \
$(GSM_INSTALL_MAN)/gsm.3 \
$(GSM_INSTALL_MAN)/gsm_explode.3 \
@@ -274,12 +280,12 @@ TOAST_INSTALL_TARGETS = \
# Default rules
.c.o:
- $(CC) $(CFLAGS) $?
- @-mv `$(BASENAME) $@` $@ > /dev/null 2>&1
+ $(CC) -c $(CFLAGS) $? -o $@
+# @-mv `$(BASENAME) $@` $@ > /dev/null 2>&1
# Target rules
-all: $(LIBGSM) $(TOAST) $(TCAT) $(UNTOAST)
+all: $(LIBGSMSO) $(TOAST) $(TCAT) $(UNTOAST)
@-echo $(ROOT): Done.
tst: $(TST)/lin2cod $(TST)/cod2lin $(TOAST) $(TST)/test-result
@@ -300,22 +306,31 @@ install: toastinstall gsminstall
# The basic API: libgsm
$(LIBGSM): $(LIB) $(GSM_OBJECTS)
- -rm $(RMFLAGS) $(LIBGSM)
$(AR) $(ARFLAGS) $(LIBGSM) $(GSM_OBJECTS)
$(RANLIB) $(LIBGSM)
+$(LIBGSMSO): $(LIBGSMSO).1.0.10
+ $(LN) libgsm.so.1.0.10 $@
+
+$(LIBGSMSO).1.0.10: $(GSM_SHOBJECTS)
+ mkdir -p $(LIB)
+ $(LD) -o $@ -shared -Wl,-soname,libgsm.so.1 $^ -lm
+ $(LN) libgsm.so.1.0.10 $(LIBGSMSO).1
+
+shared/%.o:
+ mkdir -p shared
+ $(CC) -c $(CFLAGS) $(PICFLAGS) -o $@ $(addprefix $(SRC)/,$(patsubst %.o,%.c,$(@F)))
+
# Toast, Untoast and Tcat -- the compress-like frontends to gsm.
-$(TOAST): $(BIN) $(TOAST_OBJECTS) $(LIBGSM)
- $(LD) $(LFLAGS) -o $(TOAST) $(TOAST_OBJECTS) $(LIBGSM) $(LDLIB)
+$(TOAST): $(BIN) $(TOAST_OBJECTS) $(LIBGSMSO)
+ $(LD) $(LFLAGS) -o $(TOAST) $(TOAST_OBJECTS) $(LIBGSMSO) $(LDLIB)
$(UNTOAST): $(BIN) $(TOAST)
- -rm $(RMFLAGS) $(UNTOAST)
$(LN) $(TOAST) $(UNTOAST)
$(TCAT): $(BIN) $(TOAST)
- -rm $(RMFLAGS) $(TCAT)
$(LN) $(TOAST) $(TCAT)
@@ -351,53 +366,47 @@ toastuninstall:
fi
$(TOAST_INSTALL_BIN)/toast: $(TOAST)
- -rm $@
cp $(TOAST) $@
chmod 755 $@
$(TOAST_INSTALL_BIN)/untoast: $(TOAST_INSTALL_BIN)/toast
- -rm $@
- ln $? $@
+ ln -sf toast $@
$(TOAST_INSTALL_BIN)/tcat: $(TOAST_INSTALL_BIN)/toast
- -rm $@
- ln $? $@
+ ln -sf toast $@
$(TOAST_INSTALL_MAN)/toast.1: $(MAN)/toast.1
- -rm $@
cp $? $@
chmod 444 $@
$(GSM_INSTALL_MAN)/gsm.3: $(MAN)/gsm.3
- -rm $@
cp $? $@
chmod 444 $@
$(GSM_INSTALL_MAN)/gsm_option.3: $(MAN)/gsm_option.3
- -rm $@
cp $? $@
chmod 444 $@
$(GSM_INSTALL_MAN)/gsm_explode.3: $(MAN)/gsm_explode.3
- -rm $@
cp $? $@
chmod 444 $@
$(GSM_INSTALL_MAN)/gsm_print.3: $(MAN)/gsm_print.3
- -rm $@
cp $? $@
chmod 444 $@
$(GSM_INSTALL_INC)/gsm.h: $(INC)/gsm.h
- -rm $@
cp $? $@
chmod 444 $@
$(GSM_INSTALL_LIB)/libgsm.a: $(LIBGSM)
- -rm $@
cp $? $@
chmod 444 $@
+$(GSM_INSTALL_LIB)/libgsm.so.1.0.10: $(LIBGSMSO).1.0.10
+ cp $? $@
+ ln -sf libgsm.so.1.0.10 $(GSM_INSTALL_LIB)/libgsm.so.1
+ ln -sf libgsm.so.1.0.10 $(GSM_INSTALL_LIB)/libgsm.so
# Distribution
@@ -473,22 +482,22 @@ $(ADDTST)/add: $(ADDTST)/add_test.o
$(TST)/test-result: $(TST)/lin2cod $(TST)/cod2lin $(TOAST) $(TST)/run
( cd $(TST); ./run )
-$(TST)/lin2txt: $(TST)/lin2txt.o $(LIBGSM)
+$(TST)/lin2txt: $(TST)/lin2txt.o $(LIBGSMSO)
$(LD) $(LFLAGS) -o $(TST)/lin2txt \
- $(TST)/lin2txt.o $(LIBGSM) $(LDLIB)
+ $(TST)/lin2txt.o $(LIBGSMSO) $(LDLIB)
-$(TST)/lin2cod: $(TST)/lin2cod.o $(LIBGSM)
+$(TST)/lin2cod: $(TST)/lin2cod.o $(LIBGSMSO)
$(LD) $(LFLAGS) -o $(TST)/lin2cod \
- $(TST)/lin2cod.o $(LIBGSM) $(LDLIB)
+ $(TST)/lin2cod.o $(LIBGSMSO) $(LDLIB)
-$(TST)/gsm2cod: $(TST)/gsm2cod.o $(LIBGSM)
+$(TST)/gsm2cod: $(TST)/gsm2cod.o $(LIBGSMSO)
$(LD) $(LFLAGS) -o $(TST)/gsm2cod \
- $(TST)/gsm2cod.o $(LIBGSM) $(LDLIB)
+ $(TST)/gsm2cod.o $(LIBGSMSO) $(LDLIB)
-$(TST)/cod2txt: $(TST)/cod2txt.o $(LIBGSM)
+$(TST)/cod2txt: $(TST)/cod2txt.o $(LIBGSMSO)
$(LD) $(LFLAGS) -o $(TST)/cod2txt \
- $(TST)/cod2txt.o $(LIBGSM) $(LDLIB)
+ $(TST)/cod2txt.o $(LIBGSMSO) $(LDLIB)
-$(TST)/cod2lin: $(TST)/cod2lin.o $(LIBGSM)
+$(TST)/cod2lin: $(TST)/cod2lin.o $(LIBGSMSO)
$(LD) $(LFLAGS) -o $(TST)/cod2lin \
- $(TST)/cod2lin.o $(LIBGSM) $(LDLIB)
+ $(TST)/cod2lin.o $(LIBGSMSO) $(LDLIB)