mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 02:37:10 +00:00 
			
		
		
		
	* Add some type casting so tv_usec can really be a long, instead of some strange platform specific type. * Add some .dylib style files to .gitignore. * Switch from using -Xlinker to -Wl,. For [reasons unknown][], newer versions of GCC, when compiling the Homebrew formula for Asterisk, are not properly passing the -Xlinker options to the linker. Given that -Wl, does exactly the [same thing][], and does it properly, this patch changes the -Xlinker options to use -Wl, instead. [reasons unknown]: http://bit.ly/1SUbEYx [same thing]: https://gcc.gnu.org/onlinedocs/gcc/Link-Options.html Change-Id: Id5e6b3c6cc86282ea5fca630dc3991137c5bf4dd
		
			
				
	
	
		
			516 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			516 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| # Copyright 1992-1996 by Jutta Degener and Carsten Bormann, Technische
 | |
| # Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
 | |
| # details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
 | |
| 
 | |
| # Machine- or installation dependent flags you should configure to port
 | |
| 
 | |
| 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.
 | |
| 
 | |
| # LTP_CUT	= -DLTP_CUT
 | |
| LTP_CUT	=
 | |
| ######### Define to enable the GSM library's long-term correlation 
 | |
| ######### approximation option---faster, but worse; works for
 | |
| ######### both integer and floating point multiplications.
 | |
| ######### This flag is still in the experimental stage.
 | |
| 
 | |
| WAV49	= -DWAV49
 | |
| #WAV49	=
 | |
| ######### Define to enable the GSM library's option to pack GSM frames 
 | |
| ######### in the style used by the WAV #49 format.  If you want to write
 | |
| ######### a tool that produces .WAV files which contain GSM-encoded data,
 | |
| ######### define this, and read about the GSM_OPT_WAV49 option in the
 | |
| ######### manual page on gsm_option(3).
 | |
| 
 | |
| #K6OPT	= -DK6OPT
 | |
| #K6OPT	=
 | |
| ######### Define to enable MMXTM optimizations for x86 architecture CPU's
 | |
| ######### which support MMX instructions.  This should be newer pentiums,
 | |
| ######### ppro's, etc, as well as the AMD K6 and K7.  The compile will
 | |
| ######### probably require gcc. 
 | |
| 
 | |
| # Due to the gsm codec beeing broken when compiled with gcc version 4.2
 | |
| # and optimization higher than -O2 we are checking for that version and
 | |
| # set the optimization to -O2 in this case.
 | |
| 
 | |
| ifeq ($(shell $(CC) -v 2>&1 | awk '/^gcc version/ { split($$3, v, "."); printf "%s.%s\n", v[1], v[2]; }' ),4.2)
 | |
| OPTIMIZE=-O2
 | |
| endif
 | |
| 
 | |
| PG =
 | |
| #PG = -g -pg
 | |
| ######### Profiling flags.  If you don't know what that means, leave it blank.
 | |
|  
 | |
| # Choose a compiler.  The code works both with ANSI and K&R-C.
 | |
| # Use -DNeedFunctionPrototypes to compile with, -UNeedFunctionPrototypes to
 | |
| # compile without, function prototypes in the header files.
 | |
| #
 | |
| # You can use the -DSTUPID_COMPILER to circumvent some compilers'
 | |
| # static limits regarding the number of subexpressions in a statement.
 | |
| 
 | |
| # CC		= cc
 | |
| # CCFLAGS 	= -c -DSTUPID_COMPILER
 | |
| 
 | |
| # CC		= /usr/lang/acc
 | |
| # CCFLAGS 	= -c -O
 | |
| 
 | |
| CCFLAGS 	+= -c -DNeedFunctionPrototypes=1 -funroll-loops $(OPTIMIZE)
 | |
| 
 | |
| # LD		= gcc
 | |
| # LDFLAGS 	=
 | |
| 
 | |
| 
 | |
| # If your compiler needs additional flags/libraries, regardless of
 | |
| # the source compiled, configure them here.
 | |
| 
 | |
| # CCINC	= -I/usr/gnu/lib/gcc-2.1/gcc-lib/sparc-sun-sunos4.1.2/2.1/include
 | |
| ######### Includes needed by $(CC)
 | |
| 
 | |
| # LDINC	= -L/usr/gnu/lib/gcc-2.1/gcc-lib/sparc-sun-sunos4.1.2/2.1
 | |
| ######### Library paths needed by $(LD)
 | |
| 
 | |
| # LDLIB	= -lgcc
 | |
| ######### Additional libraries needed by $(LD)
 | |
| 
 | |
| 
 | |
| # Where do you want to install libraries, binaries, a header file
 | |
| # and the manual pages?
 | |
| #
 | |
| # 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?
 | |
| #
 | |
| # Leave GSM_INSTALL_ROOT empty to not install the GSM library outside of
 | |
| # this directory.
 | |
| 
 | |
| 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
 | |
| 
 | |
| 
 | |
| # Where do you want to install the toast binaries and their manpage?
 | |
| #
 | |
| # Leave TOAST_INSTALL_ROOT empty to not install the toast binaries outside
 | |
| # of this directory.
 | |
| 
 | |
| TOAST_INSTALL_ROOT	  = $(INSTALL_ROOT)
 | |
| TOAST_INSTALL_BIN = $(TOAST_INSTALL_ROOT)/bin
 | |
| TOAST_INSTALL_MAN = $(TOAST_INSTALL_ROOT)/man/man1
 | |
| 
 | |
| #  Other tools
 | |
| 
 | |
| SHELL		= /bin/sh
 | |
| LN		= ln
 | |
| BASENAME 	= basename
 | |
| AR		= ar
 | |
| ARFLAGS		= cr
 | |
| RMFLAGS		= -f
 | |
| FIND		= find
 | |
| COMPRESS 	= compress
 | |
| COMPRESSFLAGS 	= 
 | |
| # RANLIB 	= true
 | |
| RANLIB	 	= ranlib
 | |
| 
 | |
| #
 | |
| #    You shouldn't have to configure below this line if you're porting.
 | |
| # 
 | |
| 
 | |
| 
 | |
| # Local Directories
 | |
| 
 | |
| ROOT	= .
 | |
| ADDTST	= $(ROOT)/add-test
 | |
| TST	= $(ROOT)/tst
 | |
| MAN	= $(ROOT)/man
 | |
| BIN	= $(ROOT)/bin
 | |
| SRC	= $(ROOT)/src
 | |
| LIB	= $(ROOT)/lib
 | |
| TLS	= $(ROOT)/tls
 | |
| INC	= $(ROOT)/inc
 | |
| 
 | |
| # Flags
 | |
| 
 | |
| DEBUG	= -DNDEBUG
 | |
| ######### Remove -DNDEBUG to enable assertions.
 | |
| 
 | |
| _ASTCFLAGS += $(PG) $(CCFLAGS) $(SASR) $(DEBUG) $(MULHACK) $(FAST) \
 | |
| 	$(LTP_CUT) $(WAV49) $(K6OPT) $(CCINC) -I$(INC)
 | |
| ######### It's $(CC) $(CFLAGS)
 | |
| 
 | |
| LFLAGS	= $(PG) $(LDFLAGS) $(LDINC)
 | |
| ######### It's $(LD) $(LFLAGS)
 | |
| 
 | |
| 
 | |
| # Targets
 | |
| 
 | |
| LIBGSM	= $(LIB)/libgsm.a
 | |
| LIBGSMSO= $(LIB)/libgsm.so
 | |
| 
 | |
| TOAST	= $(BIN)/toast
 | |
| UNTOAST	= $(BIN)/untoast
 | |
| TCAT	= $(BIN)/tcat
 | |
| 
 | |
| # Headers
 | |
| 
 | |
| GSM_HEADERS =	$(INC)/gsm.h
 | |
| 
 | |
| HEADERS	=	$(INC)/proto.h		\
 | |
| 		$(INC)/unproto.h	\
 | |
| 		$(INC)/config.h		\
 | |
| 		$(INC)/private.h	\
 | |
| 		$(INC)/gsm.h		\
 | |
| 		$(INC)/toast.h		\
 | |
| 		$(TLS)/taste.h
 | |
| 
 | |
| # Sources
 | |
| 
 | |
| GSM_SOURCES =	$(SRC)/add.c		\
 | |
| 		$(SRC)/code.c		\
 | |
| 		$(SRC)/debug.c		\
 | |
| 		$(SRC)/decode.c		\
 | |
| 		$(SRC)/long_term.c	\
 | |
| 		$(SRC)/lpc.c		\
 | |
| 		$(SRC)/preprocess.c	\
 | |
| 		$(SRC)/rpe.c		\
 | |
| 		$(SRC)/gsm_destroy.c	\
 | |
| 		$(SRC)/gsm_decode.c	\
 | |
| 		$(SRC)/gsm_encode.c	\
 | |
| 		$(SRC)/gsm_explode.c	\
 | |
| 		$(SRC)/gsm_implode.c	\
 | |
| 		$(SRC)/gsm_create.c	\
 | |
| 		$(SRC)/gsm_print.c	\
 | |
| 		$(SRC)/gsm_option.c	\
 | |
| 		$(SRC)/short_term.c	\
 | |
| 		$(SRC)/table.c
 | |
| 
 | |
| TOAST_SOURCES = $(SRC)/toast.c 		\
 | |
| 		$(SRC)/toast_lin.c	\
 | |
| 		$(SRC)/toast_ulaw.c	\
 | |
| 		$(SRC)/toast_alaw.c	\
 | |
| 		$(SRC)/toast_audio.c
 | |
| 
 | |
| SOURCES	=	$(GSM_SOURCES)		\
 | |
| 		$(TOAST_SOURCES)	\
 | |
| 		$(ADDTST)/add_test.c	\
 | |
| 		$(TLS)/sour.c		\
 | |
| 		$(TLS)/ginger.c		\
 | |
| 		$(TLS)/sour1.dta	\
 | |
| 		$(TLS)/sour2.dta	\
 | |
| 		$(TLS)/bitter.c		\
 | |
| 		$(TLS)/bitter.dta	\
 | |
| 		$(TLS)/taste.c		\
 | |
| 		$(TLS)/sweet.c		\
 | |
| 		$(TST)/cod2lin.c	\
 | |
| 		$(TST)/cod2txt.c	\
 | |
| 		$(TST)/gsm2cod.c	\
 | |
| 		$(TST)/lin2cod.c	\
 | |
| 		$(TST)/lin2txt.c
 | |
| 
 | |
| # Object files
 | |
| 
 | |
| GSM_OBJECTS =	$(SRC)/add.o		\
 | |
| 		$(SRC)/code.o		\
 | |
| 		$(SRC)/debug.o		\
 | |
| 		$(SRC)/decode.o		\
 | |
| 		$(SRC)/long_term.o	\
 | |
| 		$(SRC)/lpc.o		\
 | |
| 		$(SRC)/preprocess.o	\
 | |
| 		$(SRC)/rpe.o		\
 | |
| 		$(SRC)/gsm_destroy.o	\
 | |
| 		$(SRC)/gsm_decode.o	\
 | |
| 		$(SRC)/gsm_encode.o	\
 | |
| 		$(SRC)/gsm_explode.o	\
 | |
| 		$(SRC)/gsm_implode.o	\
 | |
| 		$(SRC)/gsm_create.o	\
 | |
| 		$(SRC)/gsm_print.o	\
 | |
| 		$(SRC)/gsm_option.o	\
 | |
| 		$(SRC)/short_term.o	\
 | |
| 		$(SRC)/table.o
 | |
| 
 | |
| TOAST_OBJECTS =	$(SRC)/toast.o 		\
 | |
| 		$(SRC)/toast_lin.o	\
 | |
| 		$(SRC)/toast_ulaw.o	\
 | |
| 		$(SRC)/toast_alaw.o	\
 | |
| 		$(SRC)/toast_audio.o
 | |
| 
 | |
| OBJECTS =	 $(GSM_OBJECTS) $(TOAST_OBJECTS)
 | |
| 
 | |
| # Manuals
 | |
| 
 | |
| GSM_MANUALS =	$(MAN)/gsm.3		\
 | |
| 		$(MAN)/gsm_explode.3	\
 | |
| 		$(MAN)/gsm_option.3	\
 | |
| 		$(MAN)/gsm_print.3
 | |
| 
 | |
| TOAST_MANUALS =	$(MAN)/toast.1
 | |
| 
 | |
| MANUALS	= 	$(GSM_MANUALS) $(TOAST_MANUALS) $(MAN)/bitter.1
 | |
| 
 | |
| # Other stuff in the distribution
 | |
| 
 | |
| STUFF = 	ChangeLog			\
 | |
| 		INSTALL			\
 | |
| 		MACHINES		\
 | |
| 		MANIFEST		\
 | |
| 		Makefile		\
 | |
| 		README			\
 | |
| 		$(ADDTST)/add_test.dta	\
 | |
| 		$(TLS)/bitter.dta	\
 | |
| 		$(TST)/run
 | |
| 
 | |
| 
 | |
| # 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		\
 | |
| 		$(TOAST_INSTALL_BIN)/untoast		\
 | |
| 		$(TOAST_INSTALL_MAN)/toast.1
 | |
| 
 | |
| 
 | |
| # Default rules
 | |
| 
 | |
| include $(ASTTOPDIR)/Makefile.rules
 | |
| 
 | |
| # Target rules
 | |
| 
 | |
| all:		$(LIBGSM) $(LIBGSMSO) $(TOAST) $(TCAT) $(UNTOAST)
 | |
| 		@-echo $(ROOT): Done.
 | |
| 
 | |
| tst:		$(TST)/lin2cod $(TST)/cod2lin $(TOAST) $(TST)/test-result
 | |
| 		@-echo tst: Done.
 | |
| 
 | |
| addtst:		$(ADDTST)/add $(ADDTST)/add_test.dta
 | |
| 		$(ADDTST)/add < $(ADDTST)/add_test.dta > /dev/null
 | |
| 		@-echo addtst: Done.
 | |
| 
 | |
| misc:		$(TLS)/sweet $(TLS)/bitter $(TLS)/sour $(TLS)/ginger 	\
 | |
| 			$(TST)/lin2txt $(TST)/cod2txt $(TST)/gsm2cod
 | |
| 		@-echo misc: Done.
 | |
| 
 | |
| install:	toastinstall gsminstall
 | |
| 		@-echo install: Done.
 | |
| 
 | |
| 
 | |
| # The basic API: libgsm
 | |
| 
 | |
| $(LIBGSMSO):	$(LIB) $(GSM_OBJECTS)
 | |
| 		$(LD) -o $@.1.0.10 -shared -Wl,-soname,libgsm.so.1 $(GSM_OBJECTS) -lc
 | |
| 		ln -fs libgsm.so.1.0.10 lib/libgsm.so.1
 | |
| 		ln -fs libgsm.so.1.0.10 lib/libgsm.so
 | |
| 
 | |
| $(LIBGSM): $(GSM_OBJECTS)
 | |
| 	$(ECHO_PREFIX) echo "   [AR] $^ -> $@"
 | |
| 	$(CMD_PREFIX) $(AR) cr $@ $^
 | |
| 	$(CMD_PREFIX) $(RANLIB) $@
 | |
| 
 | |
| 
 | |
| # Toast, Untoast and Tcat -- the compress-like frontends to gsm.
 | |
| 
 | |
| $(TOAST):	$(BIN) $(TOAST_OBJECTS) $(LIBGSM)
 | |
| 		$(LD) $(LFLAGS) -o $(TOAST) $(TOAST_OBJECTS) $(LIBGSMSO) $(LDLIB)
 | |
| 
 | |
| $(UNTOAST):	$(BIN) $(TOAST)
 | |
| 		-rm $(RMFLAGS) $(UNTOAST)
 | |
| 		$(LN) toast $(UNTOAST)
 | |
| 
 | |
| $(TCAT):	$(BIN) $(TOAST)
 | |
| 		-rm $(RMFLAGS) $(TCAT)
 | |
| 		$(LN) toast $(TCAT)
 | |
| 
 | |
| 
 | |
| # The local bin and lib directories
 | |
| 
 | |
| $(BIN):
 | |
| 		if [ ! -d $(BIN) ] ; then mkdir $(BIN) ; fi
 | |
| 
 | |
| $(LIB):
 | |
| 		if [ ! -d $(LIB) ] ; then mkdir $(LIB) ; fi
 | |
| 
 | |
| 
 | |
| # Installation
 | |
| 
 | |
| gsminstall:
 | |
| 		-if [ x"$(GSM_INSTALL_ROOT)" != x ] ; then	\
 | |
| 			$(MAKE) $(GSM_INSTALL_TARGETS) ;	\
 | |
| 		fi
 | |
| 
 | |
| toastinstall:
 | |
| 		-if [ x"$(TOAST_INSTALL_ROOT)" != x ]; then	\
 | |
| 			$(MAKE) $(TOAST_INSTALL_TARGETS);	\
 | |
| 		fi
 | |
| 
 | |
| 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
 | |
| 
 | |
| dist:		gsm-1.0.tar.Z
 | |
| 		@echo dist: Done.
 | |
| 
 | |
| gsm-1.0.tar.Z:	$(STUFF) $(SOURCES) $(HEADERS) $(MANUALS)
 | |
| 		(	cd $(ROOT)/..;				\
 | |
| 			tar cvf - `cat $(ROOT)/gsm-1.0/MANIFEST	\
 | |
| 				| sed '/^#/d'`			\
 | |
| 		) | $(COMPRESS) $(COMPRESSFLAGS) > $(ROOT)/gsm-1.0.tar.Z
 | |
| 
 | |
| # Clean
 | |
| 
 | |
| uninstall:	toastuninstall gsmuninstall
 | |
| 		@-echo uninstall: Done.
 | |
| 
 | |
| semi-clean:
 | |
| 		-rm $(RMFLAGS)  */*.o			\
 | |
| 			$(TST)/lin2cod $(TST)/lin2txt	\
 | |
| 			$(TST)/cod2lin $(TST)/cod2txt	\
 | |
| 			$(TST)/gsm2cod 			\
 | |
| 			$(TST)/*.*.*
 | |
| 		-$(FIND) . \( -name core -o -name foo \) \
 | |
| 			-print | xargs rm $(RMFLAGS)
 | |
| 
 | |
| clean:	semi-clean
 | |
| 		-rm $(RMFLAGS) $(LIBGSM) $(ADDTST)/add		\
 | |
| 			$(TOAST) $(TCAT) $(UNTOAST)	\
 | |
| 			$(ROOT)/gsm-1.0.tar.Z
 | |
| 		rm -rf lib
 | |
| 		rm -f .*.d *.i */*.i
 | |
| 
 | |
| # Two tools that helped me generate gsm_encode.c and gsm_decode.c,
 | |
| # but aren't generally needed to port this.
 | |
| 
 | |
| $(TLS)/sweet:	$(TLS)/sweet.o $(TLS)/taste.o
 | |
| 		$(LD) $(LFLAGS) -o $(TLS)/sweet \
 | |
| 			$(TLS)/sweet.o $(TLS)/taste.o $(LDLIB)
 | |
| 
 | |
| $(TLS)/bitter:	$(TLS)/bitter.o $(TLS)/taste.o
 | |
| 		$(LD) $(LFLAGS) -o $(TLS)/bitter \
 | |
| 			$(TLS)/bitter.o $(TLS)/taste.o $(LDLIB)
 | |
| 
 | |
| # A version of the same family that Jeff Chilton used to implement
 | |
| # the WAV #49 GSM format.
 | |
| 
 | |
| $(TLS)/ginger:	$(TLS)/ginger.o $(TLS)/taste.o
 | |
| 		$(LD) $(LFLAGS) -o $(TLS)/ginger \
 | |
| 			$(TLS)/ginger.o $(TLS)/taste.o $(LDLIB)
 | |
| 
 | |
| $(TLS)/sour:	$(TLS)/sour.o $(TLS)/taste.o
 | |
| 		$(LD) $(LFLAGS) -o $(TLS)/sour \
 | |
| 			$(TLS)/sour.o $(TLS)/taste.o $(LDLIB)
 | |
| 
 | |
| # Run $(ADDTST)/add < $(ADDTST)/add_test.dta to make sure the
 | |
| # basic arithmetic functions work as intended.
 | |
| 
 | |
| $(ADDTST)/add:	$(ADDTST)/add_test.o
 | |
| 		$(LD) $(LFLAGS) -o $(ADDTST)/add $(ADDTST)/add_test.o $(LDLIB)
 | |
| 
 | |
| 
 | |
| # Various conversion programs between linear, text, .gsm and the code
 | |
| # format used by the tests we ran (.cod).  We paid for the test data,
 | |
| # so I guess we can't just provide them with this package.  Still,
 | |
| # if you happen to have them lying around, here's the code.
 | |
| # 
 | |
| # You can use gsm2cod | cod2txt independently to look at what's
 | |
| # coded inside the compressed frames, although this shouldn't be
 | |
| # hard to roll on your own using the gsm_print() function from
 | |
| # the API.
 | |
| 
 | |
| 
 | |
| $(TST)/test-result:	$(TST)/lin2cod $(TST)/cod2lin $(TOAST) $(TST)/run
 | |
| 			( cd $(TST); ./run ) 
 | |
| 
 | |
| $(TST)/lin2txt:		$(TST)/lin2txt.o $(LIBGSM)
 | |
| 			$(LD) $(LFLAGS) -o $(TST)/lin2txt \
 | |
| 				$(TST)/lin2txt.o $(LIBGSM) $(LDLIB)
 | |
| 
 | |
| $(TST)/lin2cod:		$(TST)/lin2cod.o $(LIBGSM)
 | |
| 			$(LD) $(LFLAGS) -o $(TST)/lin2cod \
 | |
| 				$(TST)/lin2cod.o $(LIBGSM) $(LDLIB)
 | |
| 
 | |
| $(TST)/gsm2cod:		$(TST)/gsm2cod.o $(LIBGSM)
 | |
| 			$(LD) $(LFLAGS) -o $(TST)/gsm2cod \
 | |
| 				$(TST)/gsm2cod.o $(LIBGSM) $(LDLIB)
 | |
| 
 | |
| $(TST)/cod2txt:		$(TST)/cod2txt.o $(LIBGSM)
 | |
| 			$(LD) $(LFLAGS) -o $(TST)/cod2txt \
 | |
| 				$(TST)/cod2txt.o $(LIBGSM) $(LDLIB)
 | |
| 
 | |
| $(TST)/cod2lin:		$(TST)/cod2lin.o $(LIBGSM)
 | |
| 			$(LD) $(LFLAGS) -o $(TST)/cod2lin \
 | |
| 				$(TST)/cod2lin.o $(LIBGSM) $(LDLIB)
 |