--- 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.1.dylib TOAST = $(BIN)/toast UNTOAST = $(BIN)/untoast @@ -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 -all: $(LIBGSM) $(TOAST) $(TCAT) $(UNTOAST) +all: $(LIBGSM) $(LIBGSMSO) $(TOAST) $(TCAT) $(UNTOAST) @-echo $(ROOT): Done. tst: $(TST)/lin2cod $(TST)/cod2lin $(TOAST) $(TST)/test-result @@ -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) - $(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) @@ -350,55 +357,64 @@ rm $(RMFLAGS) $(TOAST_INSTALL_TARGETS); \ fi -$(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 $@ -$(TOAST_INSTALL_BIN)/tcat: $(TOAST_INSTALL_BIN)/toast +$(DESTDIR)$(TOAST_INSTALL_BIN)/tcat: $(DESTDIR)$(TOAST_INSTALL_BIN)/toast -rm $(RMFLAGS) $@ - $(LN) $? $@ + $(LN) -s toast $@ -$(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