*** Makefile.orig	Tue Jul  2 09:36:06 1996
--- Makefile	Tue Sep 22 12:40:53 1998
***************
*** 7,17 ****
  SASR	= -DSASR
  ######### Define SASR if >> is a signed arithmetic shift (-1 >> 1 == -1)
  
! MULHACK = -DUSE_FLOAT_MUL
  ######### Define this if your host multiplies floats faster than integers,
  ######### e.g. on a SPARCstation.
  
! FAST	= -DFAST
  ######### Define together with USE_FLOAT_MUL to enable the GSM library's
  ######### approximation option for incorrect, but good-enough results.
  
--- 7,19 ----
  SASR	= -DSASR
  ######### Define SASR if >> is a signed arithmetic shift (-1 >> 1 == -1)
  
! #MULHACK = -DUSE_FLOAT_MUL      # Don't define it for FreeBSD, cause SIGFPE
! MULHACK =
  ######### Define this if your host multiplies floats faster than integers,
  ######### e.g. on a SPARCstation.
  
! #FAST    = -DFAST
! FAST    =
  ######### Define together with USE_FLOAT_MUL to enable the GSM library's
  ######### approximation option for incorrect, but good-enough results.
  
***************
*** 43,50 ****
  # CC		= /usr/lang/acc
  # CCFLAGS 	= -c -O
  
! CC		= gcc -ansi -pedantic
! CCFLAGS 	= -c -O2 -DNeedFunctionPrototypes=1
  
  LD 		= $(CC)
  
--- 45,52 ----
  # CC		= /usr/lang/acc
  # CCFLAGS 	= -c -O
  
! #CC              = gcc -ansi -pedantic
! CCFLAGS         = -c -DNeedFunctionPrototypes=1
  
  LD 		= $(CC)
  
***************
*** 59,69 ****
--- 61,73 ----
  ######### Includes needed by $(CC)
  
  # LDINC	= -L/usr/gnu/lib/gcc-2.1/gcc-lib/sparc-sun-sunos4.1.2/2.1
+ LDINC = -L$(LIB)
  ######### Library paths needed by $(LD)
  
  # LDLIB	= -lgcc
  ######### Additional libraries needed by $(LD)
  
+ #PREFIX= /usr/local
  
  # Where do you want to install libraries, binaries, a header file
  # and the manual pages?
***************
*** 71,77 ****
  # Leave INSTALL_ROOT empty (or just don't execute "make install") to
  # not install gsm and toast outside of this directory.
  
! INSTALL_ROOT	=
  
  # Where do you want to install the gsm library, header file, and manpages?
  #
--- 75,81 ----
  # Leave INSTALL_ROOT empty (or just don't execute "make install") to
  # not install gsm and toast outside of this directory.
  
! INSTALL_ROOT    =       $(PREFIX)
  
  # Where do you want to install the gsm library, header file, and manpages?
  #
***************
*** 80,86 ****
  
  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
  
  
--- 84,90 ----
  
  GSM_INSTALL_ROOT = $(INSTALL_ROOT)
  GSM_INSTALL_LIB = $(GSM_INSTALL_ROOT)/lib
! GSM_INSTALL_INC = $(GSM_INSTALL_ROOT)/include
  GSM_INSTALL_MAN = $(GSM_INSTALL_ROOT)/man/man3
  
  
***************
*** 106,111 ****
--- 110,116 ----
  COMPRESSFLAGS 	= 
  # RANLIB 	= true
  RANLIB	 	= ranlib
+ RM		= rm -f
  
  #
  #    You shouldn't have to configure below this line if you're porting.
***************
*** 129,146 ****
  # DEBUG	= -DNDEBUG
  ######### Remove -DNDEBUG to enable assertions.
  
! CFLAGS	= $(CCFLAGS) $(SASR) $(DEBUG) $(MULHACK) $(FAST) $(LTP_CUT) \
  	$(WAV49) $(CCINC) -I$(INC)
  ######### It's $(CC) $(CFLAGS)
  
  LFLAGS	= $(LDFLAGS) $(LDINC)
  ######### It's $(LD) $(LFLAGS)
  
  
  # Targets
  
! LIBGSM	= $(LIB)/libgsm.a
! 
  TOAST	= $(BIN)/toast
  UNTOAST	= $(BIN)/untoast
  TCAT	= $(BIN)/tcat
--- 134,156 ----
  # DEBUG	= -DNDEBUG
  ######### Remove -DNDEBUG to enable assertions.
  
! CFLAGS += $(CCFLAGS) $(SASR) $(DEBUG) $(MULHACK) $(FAST) $(LTP_CUT) \
  	$(WAV49) $(CCINC) -I$(INC)
  ######### It's $(CC) $(CFLAGS)
  
  LFLAGS	= $(LDFLAGS) $(LDINC)
  ######### It's $(LD) $(LFLAGS)
  
+ .SUFFIXES: .c .so .o
  
  # Targets
  
! LIBGSM	= libgsm.a
! .if ${PORTOBJFORMAT} == elf
! SOLIBGSM	= libgsm.so.1
! .else
! SOLIBGSM	= libgsm.so.1.1
! .endif
  TOAST	= $(BIN)/toast
  UNTOAST	= $(BIN)/untoast
  TCAT	= $(BIN)/tcat
***************
*** 257,269 ****
  # 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
  
  TOAST_INSTALL_TARGETS =	\
  		$(TOAST_INSTALL_BIN)/toast		\
  		$(TOAST_INSTALL_BIN)/tcat		\
--- 267,281 ----
  # Install targets
  
  GSM_INSTALL_TARGETS =	\
! 		$(GSM_INSTALL_LIB)/$(LIBGSM)		\
! 		$(GSM_INSTALL_LIB)/$(SOLIBGSM)		\
  		$(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
  
+ 
  TOAST_INSTALL_TARGETS =	\
  		$(TOAST_INSTALL_BIN)/toast		\
  		$(TOAST_INSTALL_BIN)/tcat		\
***************
*** 277,285 ****
  		$(CC) $(CFLAGS) $?
  		@-mv `$(BASENAME) $@` $@ > /dev/null 2>&1
  
  # Target rules
  
! all:		$(LIBGSM) $(TOAST) $(TCAT) $(UNTOAST)
  		@-echo $(ROOT): Done.
  
  tst:		$(TST)/lin2cod $(TST)/cod2lin $(TOAST) $(TST)/test-result
--- 289,300 ----
  		$(CC) $(CFLAGS) $?
  		@-mv `$(BASENAME) $@` $@ > /dev/null 2>&1
  
+ .c.so:
+ 		${CC} -fpic -DPIC ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET}
+ 
  # Target rules
  
! all:            $(LIB)/$(LIBGSM) $(LIB)/$(SOLIBGSM) $(TOAST) $(TCAT) $(UNTOAST)
  		@-echo $(ROOT): Done.
  
  tst:		$(TST)/lin2cod $(TST)/cod2lin $(TOAST) $(TST)/test-result
***************
*** 299,321 ****
  
  # The basic API: libgsm
  
! $(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)
  
  $(UNTOAST):	$(BIN) $(TOAST)
! 		-rm $(RMFLAGS) $(UNTOAST)
  		$(LN) $(TOAST) $(UNTOAST)
  
  $(TCAT):	$(BIN) $(TOAST)
! 		-rm $(RMFLAGS) $(TCAT)
  		$(LN) $(TOAST) $(TCAT)
  
  
--- 314,344 ----
  
  # The basic API: libgsm
  
! $(LIB)/$(SOLIBGSM): $(LIB) $(GSM_OBJECTS:S/o$/so/g)
! .if ${PORTOBJFORMAT} == elf
! 		$(CC) -o $@ -shared -Wl,-soname,$(SOLIBGSM) $(GSM_OBJECTS:S/o$/so/g)
! .else
! 		ld -Bshareable -o $@ $(GSM_OBJECTS:S/o$/so/g)
! .endif
! 		(cd $(LIB); ln -sf $(SOLIBGSM) `echo $(SOLIBGSM) | sed 's/\.so.*$$/.so/'`)
! 
! $(LIB)/$(LIBGSM):	$(LIB) $(GSM_OBJECTS)
! 		$(RM) $(RMFLAGS) $(LIBGSM)
! 		$(AR) $(ARFLAGS) $(LIB)/$(LIBGSM) $(GSM_OBJECTS)
! 		$(RANLIB) $(LIB)/$(LIBGSM)
  
  
  # Toast, Untoast and Tcat -- the compress-like frontends to gsm.
  
! $(TOAST):	$(BIN) $(TOAST_OBJECTS) $(LIB)/$(LIBGSM)
! 		$(LD) $(LFLAGS) -o $(TOAST) $(TOAST_OBJECTS) -lgsm $(LDLIB)
  
  $(UNTOAST):	$(BIN) $(TOAST)
! 		$(RM) $(RMFLAGS) $(UNTOAST)
  		$(LN) $(TOAST) $(UNTOAST)
  
  $(TCAT):	$(BIN) $(TOAST)
! 		$(RM) $(RMFLAGS) $(TCAT)
  		$(LN) $(TOAST) $(TCAT)
  
  
***************
*** 342,403 ****
  
  gsmuninstall:
  		-if [ x"$(GSM_INSTALL_ROOT)" != x ] ; then	\
! 			rm $(RMFLAGS) $(GSM_INSTALL_TARGETS) ;	\
  		fi
  
  toastuninstall:
  		-if [ x"$(TOAST_INSTALL_ROOT)" != x ] ; then 	\
! 			rm $(RMFLAGS) $(TOAST_INSTALL_TARGETS);	\
  		fi
  
  $(TOAST_INSTALL_BIN)/toast:	$(TOAST)
! 		-rm $@
  		cp $(TOAST) $@
  		chmod 755 $@
  
  $(TOAST_INSTALL_BIN)/untoast:	$(TOAST_INSTALL_BIN)/toast
! 		-rm $@
  		ln $? $@
  
  $(TOAST_INSTALL_BIN)/tcat:	$(TOAST_INSTALL_BIN)/toast
! 		-rm $@
  		ln $? $@
  
  $(TOAST_INSTALL_MAN)/toast.1:	$(MAN)/toast.1
! 		-rm $@
  		cp $? $@
  		chmod 444 $@
  
  $(GSM_INSTALL_MAN)/gsm.3:	$(MAN)/gsm.3
! 		-rm $@
  		cp $? $@
  		chmod 444 $@
  
  $(GSM_INSTALL_MAN)/gsm_option.3:	$(MAN)/gsm_option.3
! 		-rm $@
  		cp $? $@
  		chmod 444 $@
  
  $(GSM_INSTALL_MAN)/gsm_explode.3:	$(MAN)/gsm_explode.3
! 		-rm $@
  		cp $? $@
  		chmod 444 $@
  
  $(GSM_INSTALL_MAN)/gsm_print.3:	$(MAN)/gsm_print.3
! 		-rm $@
  		cp $? $@
  		chmod 444 $@
  
  $(GSM_INSTALL_INC)/gsm.h:	$(INC)/gsm.h
! 		-rm $@
  		cp $? $@
  		chmod 444 $@
  
! $(GSM_INSTALL_LIB)/libgsm.a:	$(LIBGSM)
! 		-rm $@
  		cp $? $@
  		chmod 444 $@
  
  
  # Distribution
  
--- 365,432 ----
  
  gsmuninstall:
  		-if [ x"$(GSM_INSTALL_ROOT)" != x ] ; then	\
! 			$(RM)$(RMFLAGS) $(GSM_INSTALL_TARGETS) ;	\
  		fi
  
  toastuninstall:
  		-if [ x"$(TOAST_INSTALL_ROOT)" != x ] ; then 	\
! 			$(RM)$(RMFLAGS) $(TOAST_INSTALL_TARGETS);	\
  		fi
  
  $(TOAST_INSTALL_BIN)/toast:	$(TOAST)
! 		$(RM) $@
  		cp $(TOAST) $@
  		chmod 755 $@
  
  $(TOAST_INSTALL_BIN)/untoast:	$(TOAST_INSTALL_BIN)/toast
! 		$(RM) $@
  		ln $? $@
  
  $(TOAST_INSTALL_BIN)/tcat:	$(TOAST_INSTALL_BIN)/toast
! 		$(RM) $@
  		ln $? $@
  
  $(TOAST_INSTALL_MAN)/toast.1:	$(MAN)/toast.1
! 		$(RM) $@
  		cp $? $@
  		chmod 444 $@
  
  $(GSM_INSTALL_MAN)/gsm.3:	$(MAN)/gsm.3
! 		$(RM) $@
  		cp $? $@
  		chmod 444 $@
  
  $(GSM_INSTALL_MAN)/gsm_option.3:	$(MAN)/gsm_option.3
! 		$(RM) $@
  		cp $? $@
  		chmod 444 $@
  
  $(GSM_INSTALL_MAN)/gsm_explode.3:	$(MAN)/gsm_explode.3
! 		$(RM) $@
  		cp $? $@
  		chmod 444 $@
  
  $(GSM_INSTALL_MAN)/gsm_print.3:	$(MAN)/gsm_print.3
! 		$(RM) $@
  		cp $? $@
  		chmod 444 $@
  
  $(GSM_INSTALL_INC)/gsm.h:	$(INC)/gsm.h
! 		$(RM) $@
  		cp $? $@
  		chmod 444 $@
  
! $(GSM_INSTALL_LIB)/$(LIBGSM):	$(LIB)/$(LIBGSM)
! 		$(RM) $@
  		cp $? $@
  		chmod 444 $@
+ 		ranlib $@
  
+ $(GSM_INSTALL_LIB)/$(SOLIBGSM):    $(LIB)/$(SOLIBGSM)
+ 		$(RM) $@
+ 		cp $? $@
+ 		chmod 444 $@
+ 		(cd ${PREFIX}/lib;ln -sf $(SOLIBGSM) `echo $(SOLIBGSM) | sed 's/\.so.*$$/.so/'`)
  
  # Distribution
  
***************
*** 416,422 ****
  		@-echo uninstall: Done.
  
  semi-clean:
! 		-rm $(RMFLAGS)  */*.o			\
  			$(TST)/lin2cod $(TST)/lin2txt	\
  			$(TST)/cod2lin $(TST)/cod2txt	\
  			$(TST)/gsm2cod 			\
--- 445,451 ----
  		@-echo uninstall: Done.
  
  semi-clean:
! 		$(RM) $(RMFLAGS)  */*.o			\
  			$(TST)/lin2cod $(TST)/lin2txt	\
  			$(TST)/cod2lin $(TST)/cod2txt	\
  			$(TST)/gsm2cod 			\
***************
*** 425,431 ****
  			-print | xargs rm $(RMFLAGS)
  
  clean:	semi-clean
! 		-rm $(RMFLAGS) $(LIBGSM) $(ADDTST)/add		\
  			$(TOAST) $(TCAT) $(UNTOAST)	\
  			$(ROOT)/gsm-1.0.tar.Z
  
--- 454,460 ----
  			-print | xargs rm $(RMFLAGS)
  
  clean:	semi-clean
! 		$(RM) $(RMFLAGS) $(LIBGSM) $(ADDTST)/add		\
  			$(TOAST) $(TCAT) $(UNTOAST)	\
  			$(ROOT)/gsm-1.0.tar.Z
  
