diff -up gsm-1.0-pl20/Makefile.mk gsm-1.0-pl20/Makefile --- gsm-1.0-pl20/Makefile.mk 2022-07-03 19:49:29.000000000 +0200 +++ gsm-1.0-pl20/Makefile 2022-07-19 10:20:35.123611479 +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_PATCH = 19 +SO_VER = $(SO_MAJOR).$(SO_MINOR).$(SO_PATCH) # If your compiler needs additional flags/libraries, regardless of # the source compiled, configure them here. @@ -84,7 +88,7 @@ VERSION = 1.0-pl20 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? @@ -94,12 +98,12 @@ 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 @@ -143,6 +147,7 @@ LFLAGS = $(LDFLAGS) $(LDINC) # Targets LIBGSM = $(LIB)/libgsm.a +LIBGSMSO = $(LIB)/libgsm.so TOAST = $(BIN)/toast UNTOAST = $(BIN)/untoast @@ -260,7 +265,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 \ @@ -282,7 +289,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 @@ -302,24 +309,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 @@ -355,8 +370,7 @@ toastuninstall: $(TOAST_INSTALL_BIN)/toast: $(TOAST) -rm $(RMFLAGS) $@ - cp $(TOAST) $@ - chmod 755 $@ + install -pm755 $(TOAST) $@ $(TOAST_INSTALL_BIN)/untoast: $(TOAST_INSTALL_BIN)/toast -rm $(RMFLAGS) $@ @@ -368,39 +382,43 @@ $(TOAST_INSTALL_BIN)/tcat: $(TOAST_INSTA $(TOAST_INSTALL_MAN)/toast.1: $(MAN)/toast.1 -rm $(RMFLAGS) $@ - cp $? $@ - chmod 444 $@ + install -pm644 $? $@ $(GSM_INSTALL_MAN)/gsm.3: $(MAN)/gsm.3 -rm $(RMFLAGS) $@ - cp $? $@ - chmod 444 $@ + install -pm644 $? $@ $(GSM_INSTALL_MAN)/gsm_option.3: $(MAN)/gsm_option.3 -rm $(RMFLAGS) $@ - cp $? $@ - chmod 444 $@ + install -pm644 $? $@ $(GSM_INSTALL_MAN)/gsm_explode.3: $(MAN)/gsm_explode.3 -rm $(RMFLAGS) $@ - cp $? $@ - chmod 444 $@ + install -pm644 $? $@ $(GSM_INSTALL_MAN)/gsm_print.3: $(MAN)/gsm_print.3 -rm $(RMFLAGS) $@ - cp $? $@ - chmod 444 $@ + install -pm644 $? $@ $(GSM_INSTALL_INC)/gsm.h: $(INC)/gsm.h -rm $(RMFLAGS) $@ - cp $? $@ - chmod 444 $@ + install -pm644 $? $@ $(GSM_INSTALL_LIB)/libgsm.a: $(LIBGSM) -rm $(RMFLAGS) $@ - cp $? $@ - chmod 444 $@ + install -pm644 $? $@ +$(GSM_INSTALL_LIB)/libgsm.so.$(SO_VER): $(LIBGSMSO).$(SO_VER) + -rm $(RMFLAGS) $@ + install -pm755 $? $@ + +$(GSM_INSTALL_LIB)/libgsm.so.$(SO_MAJOR): $(LIBGSMSO).$(SO_MAJOR) + -rm $(RMFLAGS) $@ + ln -s libgsm.so.$(SO_VER) $@ + +$(GSM_INSTALL_LIB)/libgsm.so: $(LIBGSMSO) + -rm $(RMFLAGS) $@ + ln -s libgsm.so.$(SO_VER) $@ # Distribution