Blob Blame History Raw
diff -up gsm-1.0-pl17/Makefile.mk gsm-1.0-pl17/Makefile
--- gsm-1.0-pl17/Makefile.mk	2017-06-28 02:24:24.000000000 +0200
+++ gsm-1.0-pl17/Makefile	2017-06-29 13:18:44.138719902 +0200
@@ -44,13 +44,17 @@ WAV49	= -DWAV49
 # CCFLAGS 	= -c -O
 
 CC		= gcc -ansi -pedantic
-CCFLAGS 	= -c -O2 -DNeedFunctionPrototypes=1 -Wall -Wno-comment
+CCFLAGS 	= -c $(RPM_OPT_FLAGS) -DNeedFunctionPrototypes=1 -Wall -Wno-comment -D_XOPEN_SOURCE=700 -D_REENTRANT -fPIC
 
 LD 		= $(CC)
 
 # LD		= gcc
 # LDFLAGS 	=
 
+SO_MAJOR = 1
+SO_MINOR = 0
+SO_MICRO = 17
+SO_VER = $(SO_MAJOR).$(SO_MINOR).$(SO_MICRO)
 
 # If your compiler needs additional flags/libraries, regardless of
 # the source compiled, configure them here.
@@ -81,7 +85,7 @@ INSTALL_ROOT	=
 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
+GSM_INSTALL_MAN = $(GSM_INSTALL_ROOT)/share/man/man3
 
 
 # Where do you want to install the toast binaries and their manpage?
@@ -91,16 +95,16 @@ GSM_INSTALL_MAN = $(GSM_INSTALL_ROOT)/ma
 
 TOAST_INSTALL_ROOT	  = $(INSTALL_ROOT)
 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
 
 SHELL		= /bin/sh
-LN		= ln
+LN		= ln -s
 BASENAME 	= basename
 AR		= ar
 ARFLAGS		= cr
-RMFLAGS		=
+RMFLAGS		= -f
 FIND		= find
 COMPRESS 	= compress
 COMPRESSFLAGS 	= 
@@ -140,6 +144,7 @@ LFLAGS	= $(LDFLAGS) $(LDINC)
 # Targets
 
 LIBGSM	= $(LIB)/libgsm.a
+LIBGSMSO = $(LIB)/libgsm.so
 
 TOAST	= $(BIN)/toast
 UNTOAST	= $(BIN)/untoast
@@ -257,7 +262,9 @@ STUFF = 	ChangeLog			\
 # Install targets
 
 GSM_INSTALL_TARGETS =	\
-		$(GSM_INSTALL_LIB)/libgsm.a		\
+		$(GSM_INSTALL_LIB)/libgsm.so.$(SO_VER)	\
+		$(GSM_INSTALL_LIB)/libgsm.so.$(SO_MAJOR)\
+		$(GSM_INSTALL_LIB)/libgsm.so		\
 		$(GSM_INSTALL_INC)/gsm.h		\
 		$(GSM_INSTALL_MAN)/gsm.3		\
 		$(GSM_INSTALL_MAN)/gsm_explode.3	\
@@ -279,7 +286,7 @@ TOAST_INSTALL_TARGETS =	\
 
 # Target rules
 
-all:		$(LIBGSM) $(TOAST) $(TCAT) $(UNTOAST)
+all:		$(LIBGSMSO) $(TOAST) $(TCAT) $(UNTOAST)
 		@-echo $(ROOT): Done.
 
 tst:		$(TST)/lin2cod $(TST)/cod2lin $(TOAST) $(TST)/test-result
@@ -299,24 +306,32 @@ install:	toastinstall gsminstall
 
 # The basic API: libgsm
 
+$(LIBGSMSO).$(SO_VER): $(LIB) $(GSM_OBJECTS)
+		$(LD) $(LFLAGS) -o $@ -shared -Xlinker -soname -Xlinker libgsm.so.$(SO_MAJOR) $(GSM_OBJECTS) -lc
+
+$(LIBGSMSO).$(SO_MAJOR): $(LIBGSMSO).$(SO_VER)
+		ln -fs libgsm.so.$(SO_VER) lib/libgsm.so.$(SO_MAJOR)
+
+$(LIBGSMSO): $(LIBGSMSO).$(SO_VER)
+		ln -fs libgsm.so.$(SO_VER) lib/libgsm.so
+
 $(LIBGSM):	$(LIB) $(GSM_OBJECTS)
 		-rm $(RMFLAGS) $(LIBGSM)
 		$(AR) $(ARFLAGS) $(LIBGSM) $(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)
+$(TOAST):	$(BIN) $(TOAST_OBJECTS) $(LIBGSMSO)
+		$(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
@@ -352,8 +367,7 @@ toastuninstall:
 
 $(TOAST_INSTALL_BIN)/toast:	$(TOAST)
 		-rm $@
-		cp $(TOAST) $@
-		chmod 755 $@
+		install -pm755 $(TOAST) $@
 
 $(TOAST_INSTALL_BIN)/untoast:	$(TOAST_INSTALL_BIN)/toast
 		-rm $@
@@ -365,39 +379,43 @@ $(TOAST_INSTALL_BIN)/tcat:	$(TOAST_INSTA
 
 $(TOAST_INSTALL_MAN)/toast.1:	$(MAN)/toast.1
 		-rm $@
-		cp $? $@
-		chmod 444 $@
+		install -pm644 $? $@
 
 $(GSM_INSTALL_MAN)/gsm.3:	$(MAN)/gsm.3
 		-rm $@
-		cp $? $@
-		chmod 444 $@
+		install -pm644 $? $@
 
 $(GSM_INSTALL_MAN)/gsm_option.3:	$(MAN)/gsm_option.3
 		-rm $@
-		cp $? $@
-		chmod 444 $@
+		install -pm644 $? $@
 
 $(GSM_INSTALL_MAN)/gsm_explode.3:	$(MAN)/gsm_explode.3
 		-rm $@
-		cp $? $@
-		chmod 444 $@
+		install -pm644 $? $@
 
 $(GSM_INSTALL_MAN)/gsm_print.3:	$(MAN)/gsm_print.3
 		-rm $@
-		cp $? $@
-		chmod 444 $@
+		install -pm644 $? $@
 
 $(GSM_INSTALL_INC)/gsm.h:	$(INC)/gsm.h
 		-rm $@
-		cp $? $@
-		chmod 444 $@
+		install -pm644 $? $@
 
 $(GSM_INSTALL_LIB)/libgsm.a:	$(LIBGSM)
 		-rm $@
-		cp $? $@
-		chmod 444 $@
+		install -pm644 $? $@
 
+$(GSM_INSTALL_LIB)/libgsm.so.$(SO_VER):	$(LIBGSMSO).$(SO_VER)
+		-rm $@
+		install -pm755 $? $@
+
+$(GSM_INSTALL_LIB)/libgsm.so.$(SO_MAJOR):	$(LIBGSMSO).$(SO_MAJOR)
+		-rm $@
+		ln -s libgsm.so.$(SO_VER) $@
+
+$(GSM_INSTALL_LIB)/libgsm.so:	$(LIBGSMSO)
+		-rm $@
+		ln -s libgsm.so.$(SO_VER) $@
 
 # Distribution