libgsm: fix dylib and links

This commit is contained in:
Mohamed Akram
2026-04-07 20:55:56 +04:00
committed by Herby Gillot
parent 717bd7ce8a
commit 05ff3c227e
2 changed files with 123 additions and 87 deletions
+10 -20
View File
@@ -5,7 +5,7 @@ PortGroup makefile 1.0
name libgsm
version 1.0.24
revision 0
revision 1
license public-domain
categories audio
@@ -25,29 +25,19 @@ worksrcdir gsm-1.0-pl24
patchfiles-append patch-makefile.diff
post-patch {
reinplace "s|@@VERSION@@|${version}|g" ${worksrcpath}/Makefile
}
variant universal {}
use_parallel_build no
destroot.env INSTALL_ROOT=${destroot}${prefix}
makefile.prefix_name INSTALL_ROOT
makefile.override-append PREFIX
build.args VERSION=${version} \
GSM_INSTALL_INC=${prefix}/include \
GSM_INSTALL_MAN=${prefix}/share/man/man3 \
TOAST_INSTALL_MAN=${prefix}/share/man/man1
destroot.args {*}${build.args}
post-destroot {
move ${worksrcpath}/lib/libgsm.${version}.dylib ${destroot}${prefix}/lib
move ${worksrcpath}/lib/libgsm.1.dylib ${destroot}${prefix}/lib
move ${worksrcpath}/lib/libgsm.dylib ${destroot}${prefix}/lib
system -W ${destroot}${prefix} \
"install_name_tool -id ${prefix}/lib/libgsm.${version}.dylib ./lib/libgsm.${version}.dylib"
system -W ${destroot}${prefix} \
"install_name_tool -change ./lib/libgsm.${version}.dylib ${prefix}/lib/libgsm.${version}.dylib ./bin/tcat"
system -W ${destroot}${prefix} \
"install_name_tool -change ./lib/libgsm.${version}.dylib ${prefix}/lib/libgsm.${version}.dylib ./bin/toast"
system -W ${destroot}${prefix} \
"install_name_tool -change ./lib/libgsm.${version}.dylib ${prefix}/lib/libgsm.${version}.dylib ./bin/untoast"
# Rename tcat to gsm-tcat
# https://trac.macports.org/ticket/67865
move ${destroot}${prefix}/bin/tcat ${destroot}${prefix}/bin/gsm-tcat
+113 -67
View File
@@ -1,49 +1,45 @@
--- ./Makefile 2023-11-11 06:19:26
+++ ./Makefile 2023-11-11 06:24:44
@@ -71,7 +71,7 @@
# Leave INSTALL_ROOT empty (or just don't execute "make install") to
# not install gsm and toast outside of this directory.
-INSTALL_ROOT =
+INSTALL_ROOT ?=
# Where do you want to install the gsm library, header file, and manpages?
#
@@ -80,8 +80,8 @@
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_INC = $(GSM_INSTALL_ROOT)/include
+GSM_INSTALL_MAN = $(GSM_INSTALL_ROOT)/share/man/man3
# Where do you want to install the toast binaries and their manpage?
@@ -91,12 +91,12 @@
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
--- Makefile.orig 2026-03-06 19:16:07
+++ Makefile 2026-04-07 20:55:17
@@ -140,6 +140,7 @@
# Targets
LIBGSM = $(LIB)/libgsm.a
+LIBGSMSO= $(LIB)/libgsm.@@VERSION@@.dylib
+LIBGSMSO= $(LIB)/libgsm.1.dylib
TOAST = $(BIN)/toast
UNTOAST = $(BIN)/untoast
@@ -279,7 +280,7 @@
@@ -257,18 +258,20 @@
# Install targets
GSM_INSTALL_TARGETS = \
- $(GSM_INSTALL_LIB)/libgsm.a \
- $(GSM_INSTALL_INC)/gsm.h \
- $(GSM_INSTALL_MAN)/gsm.3 \
- $(GSM_INSTALL_MAN)/gsm_explode.3 \
- $(GSM_INSTALL_MAN)/gsm_option.3 \
- $(GSM_INSTALL_MAN)/gsm_print.3
+ $(DESTDIR)$(GSM_INSTALL_LIB)/libgsm.a \
+ $(DESTDIR)$(GSM_INSTALL_LIB)/libgsm.1.dylib \
+ $(DESTDIR)$(GSM_INSTALL_LIB)/libgsm.dylib \
+ $(DESTDIR)$(GSM_INSTALL_INC)/gsm.h \
+ $(DESTDIR)$(GSM_INSTALL_MAN)/gsm.3 \
+ $(DESTDIR)$(GSM_INSTALL_MAN)/gsm_explode.3 \
+ $(DESTDIR)$(GSM_INSTALL_MAN)/gsm_option.3 \
+ $(DESTDIR)$(GSM_INSTALL_MAN)/gsm_print.3
TOAST_INSTALL_TARGETS = \
- $(TOAST_INSTALL_BIN)/toast \
- $(TOAST_INSTALL_BIN)/tcat \
- $(TOAST_INSTALL_BIN)/untoast \
- $(TOAST_INSTALL_MAN)/toast.1
+ $(DESTDIR)$(TOAST_INSTALL_BIN)/toast \
+ $(DESTDIR)$(TOAST_INSTALL_BIN)/tcat \
+ $(DESTDIR)$(TOAST_INSTALL_BIN)/untoast \
+ $(DESTDIR)$(TOAST_INSTALL_MAN)/toast.1
# Default rules
@@ -279,7 +282,7 @@
# Target rules
@@ -52,48 +48,98 @@
@-echo $(ROOT): Done.
tst: $(TST)/lin2cod $(TST)/cod2lin $(TOAST) $(TST)/test-result
@@ -299,24 +300,30 @@
# The basic API: libgsm
+$(LIBGSMSO): $(LIB) $(GSM_OBJECTS)
+ $(LD) -o $(LIBGSMSO) -dynamiclib -Wl,-compatibility_version,1,-current_version,@@VERSION@@,-install_name,$(LIBGSMSO) $(GSM_OBJECTS) -lc
+ ln -fs libgsm.@@VERSION@@.dylib lib/libgsm.1.dylib
+ ln -fs libgsm.@@VERSION@@.dylib lib/libgsm.dylib
+
$(LIBGSM): $(LIB) $(GSM_OBJECTS)
-rm $(RMFLAGS) $(LIBGSM)
@@ -304,11 +307,15 @@
$(AR) $(ARFLAGS) $(LIBGSM) $(GSM_OBJECTS)
$(RANLIB) $(LIBGSM)
+$(LIBGSMSO): $(LIB) $(GSM_OBJECTS)
+ -rm $(RMFLAGS) $(LIBGSMSO)
+ $(LD) $(LFLAGS) -o $@ -dynamiclib -Wl,-compatibility_version,1,-current_version,$(VERSION),-install_name,$(GSM_INSTALL_LIB)/libgsm.1.dylib $(GSM_OBJECTS)
+
# Toast, Untoast and Tcat -- the compress-like frontends to gsm.
$(TOAST): $(BIN) $(TOAST_OBJECTS) $(LIBGSM)
-$(TOAST): $(BIN) $(TOAST_OBJECTS) $(LIBGSM)
- $(LD) $(LFLAGS) -o $(TOAST) $(TOAST_OBJECTS) $(LIBGSM) $(LDLIB)
+ $(LD) $(LFLAGS) -o $(TOAST) $(TOAST_OBJECTS) $(LIBGSM) $(LIBGSMO) $(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)
@@ -350,55 +357,64 @@
rm $(RMFLAGS) $(TOAST_INSTALL_TARGETS); \
fi
$(TCAT): $(BIN) $(TOAST)
-rm $(RMFLAGS) $(TCAT)
- $(LN) $(TOAST) $(TCAT)
+ $(LN) toast $(TCAT)
-$(TOAST_INSTALL_BIN)/toast: $(TOAST)
+$(DESTDIR)$(TOAST_INSTALL_BIN)/toast: $(TOAST)
-rm $(RMFLAGS) $@
cp $(TOAST) $@
chmod 755 $@
-$(TOAST_INSTALL_BIN)/untoast: $(TOAST_INSTALL_BIN)/toast
+$(DESTDIR)$(TOAST_INSTALL_BIN)/untoast: $(DESTDIR)$(TOAST_INSTALL_BIN)/toast
-rm $(RMFLAGS) $@
- $(LN) $? $@
+ $(LN) -s toast $@
# The local bin and lib directories
@@ -426,7 +433,9 @@
-$(TOAST_INSTALL_BIN)/tcat: $(TOAST_INSTALL_BIN)/toast
+$(DESTDIR)$(TOAST_INSTALL_BIN)/tcat: $(DESTDIR)$(TOAST_INSTALL_BIN)/toast
-rm $(RMFLAGS) $@
- $(LN) $? $@
+ $(LN) -s toast $@
clean: semi-clean
-rm $(RMFLAGS) $(LIBGSM) $(ADDTST)/add \
- $(TOAST) $(TCAT) $(UNTOAST) \
+ $(LIBGSMSO) $(LIB)/libgsm.1.dylib \
+ $(LIB)/libgsm.dylib \
+ $(TOAST) $(TCAT) $(UNTOAST) \
$(ROOT)/gsm-1.0.tar.gz
-$(TOAST_INSTALL_MAN)/toast.1: $(MAN)/toast.1
+$(DESTDIR)$(TOAST_INSTALL_MAN)/toast.1: $(MAN)/toast.1
-rm $(RMFLAGS) $@
cp $? $@
chmod 444 $@
-$(GSM_INSTALL_MAN)/gsm.3: $(MAN)/gsm.3
+$(DESTDIR)$(GSM_INSTALL_MAN)/gsm.3: $(MAN)/gsm.3
-rm $(RMFLAGS) $@
cp $? $@
chmod 444 $@
-$(GSM_INSTALL_MAN)/gsm_option.3: $(MAN)/gsm_option.3
+$(DESTDIR)$(GSM_INSTALL_MAN)/gsm_option.3: $(MAN)/gsm_option.3
-rm $(RMFLAGS) $@
cp $? $@
chmod 444 $@
-$(GSM_INSTALL_MAN)/gsm_explode.3: $(MAN)/gsm_explode.3
+$(DESTDIR)$(GSM_INSTALL_MAN)/gsm_explode.3: $(MAN)/gsm_explode.3
-rm $(RMFLAGS) $@
cp $? $@
chmod 444 $@
-$(GSM_INSTALL_MAN)/gsm_print.3: $(MAN)/gsm_print.3
+$(DESTDIR)$(GSM_INSTALL_MAN)/gsm_print.3: $(MAN)/gsm_print.3
-rm $(RMFLAGS) $@
cp $? $@
chmod 444 $@
-$(GSM_INSTALL_INC)/gsm.h: $(INC)/gsm.h
+$(DESTDIR)$(GSM_INSTALL_INC)/gsm.h: $(INC)/gsm.h
-rm $(RMFLAGS) $@
cp $? $@
chmod 444 $@
-$(GSM_INSTALL_LIB)/libgsm.a: $(LIBGSM)
+$(DESTDIR)$(GSM_INSTALL_LIB)/libgsm.a: $(LIBGSM)
-rm $(RMFLAGS) $@
cp $? $@
chmod 444 $@
+$(DESTDIR)$(GSM_INSTALL_LIB)/libgsm.1.dylib: $(LIBGSMSO)
+ -rm $(RMFLAGS) $@
+ cp $? $@
+ chmod 755 $@
+$(DESTDIR)$(GSM_INSTALL_LIB)/libgsm.dylib: $(DESTDIR)$(GSM_INSTALL_LIB)/libgsm.1.dylib
+ -rm $(RMFLAGS) $@
+ $(LN) -s libgsm.1.dylib $@
+
+
# Distribution
dist: gsm-1.0.tar.gz