--- Makefile 2006-04-26 15:14:26.000000000 -0400 +++ Makefile 2010-06-19 16:53:25.000000000 -0400 @@ -96,11 +96,11 @@ # Other tools SHELL = /bin/sh -LN = ln +LN = ln -s -f BASENAME = basename AR = ar ARFLAGS = cr -RMFLAGS = +RMFLAGS = -f FIND = find COMPRESS = compress COMPRESSFLAGS = @@ -139,7 +139,7 @@ # Targets -LIBGSM = $(LIB)/libgsm.a +LIBGSMSO = $(LIB)/libgsm.so TOAST = $(BIN)/toast UNTOAST = $(BIN)/untoast @@ -257,7 +257,7 @@ # Install targets GSM_INSTALL_TARGETS = \ - $(GSM_INSTALL_LIB)/libgsm.a \ + $(GSM_INSTALL_LIB)/libgsm.so \ $(GSM_INSTALL_INC)/gsm.h \ $(GSM_INSTALL_MAN)/gsm.3 \ $(GSM_INSTALL_MAN)/gsm_explode.3 \ @@ -279,7 +279,7 @@ # 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 +299,23 @@ # The basic API: libgsm -$(LIBGSM): $(LIB) $(GSM_OBJECTS) - -rm $(RMFLAGS) $(LIBGSM) - $(AR) $(ARFLAGS) $(LIBGSM) $(GSM_OBJECTS) - $(RANLIB) $(LIBGSM) - +$(LIBGSMSO): $(LIB) $(GSM_OBJECTS) + $(LD) -shared -Wl,-soname,libgsm.so.1 -o $@.1.0.13 $(GSM_OBJECTS) + $(LN) libgsm.so.1.0.13 $(LIBGSMSO).1 + $(LN) libgsm.so.1.0.13 $(LIBGSMSO) # 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 @@ -351,53 +350,54 @@ fi $(TOAST_INSTALL_BIN)/toast: $(TOAST) - -rm $@ + -rm $(RMFLAGS) $@ cp $(TOAST) $@ chmod 755 $@ $(TOAST_INSTALL_BIN)/untoast: $(TOAST_INSTALL_BIN)/toast - -rm $@ - ln $? $@ + -rm $(RMFLAGS) $@ + $(LN) toast $@ $(TOAST_INSTALL_BIN)/tcat: $(TOAST_INSTALL_BIN)/toast - -rm $@ - ln $? $@ + -rm $(RMFLAGS) $@ + $(LN) toast $@ $(TOAST_INSTALL_MAN)/toast.1: $(MAN)/toast.1 - -rm $@ + -rm $(RMFLAGS) $@ cp $? $@ chmod 444 $@ $(GSM_INSTALL_MAN)/gsm.3: $(MAN)/gsm.3 - -rm $@ + -rm $(RMFLAGS) $@ cp $? $@ chmod 444 $@ $(GSM_INSTALL_MAN)/gsm_option.3: $(MAN)/gsm_option.3 - -rm $@ + -rm $(RMFLAGS) $@ cp $? $@ chmod 444 $@ $(GSM_INSTALL_MAN)/gsm_explode.3: $(MAN)/gsm_explode.3 - -rm $@ + -rm $(RMFLAGS) $@ cp $? $@ chmod 444 $@ $(GSM_INSTALL_MAN)/gsm_print.3: $(MAN)/gsm_print.3 - -rm $@ + -rm $(RMFLAGS) $@ cp $? $@ chmod 444 $@ $(GSM_INSTALL_INC)/gsm.h: $(INC)/gsm.h - -rm $@ - cp $? $@ - chmod 444 $@ - -$(GSM_INSTALL_LIB)/libgsm.a: $(LIBGSM) - -rm $@ + -rm $(RMFLAGS) $@ cp $? $@ chmod 444 $@ +$(GSM_INSTALL_LIB)/libgsm.so: $(LIBGSMSO) + -rm $(RMFLAGS) $@ $@.1 $@.1.0.13 + cp $?.1.0.13 $@.1.0.13 + chmod 755 $@.1.0.13 + $(LN) libgsm.so.1.0.13 $@ + $(LN) libgsm.so.1.0.13 $@.1 # Distribution @@ -425,7 +425,7 @@ -print | xargs rm $(RMFLAGS) clean: semi-clean - -rm $(RMFLAGS) $(LIBGSM) $(ADDTST)/add \ + -rm $(RMFLAGS) $(LIBGSMSO)* $(ADDTST)/add \ $(TOAST) $(TCAT) $(UNTOAST) \ $(ROOT)/gsm-1.0.tar.Z @@ -473,22 +473,22 @@ $(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)