Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37040677
en ru br
Репозитории 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
www.altlinux.org/Changes

Группа :: Система/Библиотеки
Пакет: 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)
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin