--- gsm-1.0-pl13.old/Makefile +++ gsm-1.0-pl13/Makefile @@ -96,7 +96,7 @@ # Other tools SHELL = /bin/sh -LN = ln +LN = ln -s BASENAME = basename AR = ar ARFLAGS = cr @@ -140,6 +140,7 @@ # Targets LIBGSM = $(LIB)/libgsm.a +LIBGSMSO= $(LIB)/libgsm.so TOAST = $(BIN)/toast UNTOAST = $(BIN)/untoast @@ -151,7 +152,7 @@ HEADERS = $(INC)/proto.h \ $(INC)/unproto.h \ - $(INC)/config.h \ + $(INC)/gsm_config.h \ $(INC)/private.h \ $(INC)/gsm.h \ $(INC)/toast.h \ @@ -279,7 +280,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 @@ -299,6 +300,11 @@ # The basic API: libgsm +$(LIBGSMSO): $(LIB) $(GSM_OBJECTS) + $(LD) -o $@.1.0.12 -shared -Xlinker -soname -Xlinker libgsm.so.1 $(GSM_OBJECTS) -lc + ln -fs libgsm.so.1.0.12 lib/libgsm.so.1 + ln -fs libgsm.so.1.0.12 lib/libgsm.so + $(LIBGSM): $(LIB) $(GSM_OBJECTS) -rm $(RMFLAGS) $(LIBGSM) $(AR) $(ARFLAGS) $(LIBGSM) $(GSM_OBJECTS) @@ -308,15 +314,15 @@ # Toast, Untoast and Tcat -- the compress-like frontends to gsm. $(TOAST): $(BIN) $(TOAST_OBJECTS) $(LIBGSM) - $(LD) $(LFLAGS) -o $(TOAST) $(TOAST_OBJECTS) $(LIBGSM) $(LDLIB) + $(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 @@ -426,7 +432,9 @@ clean: semi-clean -rm $(RMFLAGS) $(LIBGSM) $(ADDTST)/add \ - $(TOAST) $(TCAT) $(UNTOAST) \ + $(LIBGSMSO) $(LIB)/libgsm.so.1.0.12 \ + $(LIB)libgsm.so.1 \ + $(TOAST) $(TCAT) $(UNTOAST) \ $(ROOT)/gsm-1.0.tar.Z --- gsm-1.0-pl13.old/inc/config.h +++ gsm-1.0-pl13/inc/config.h @@ -1,37 +0,0 @@ -/* - * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische - * Universitaet Berlin. See the accompanying file "COPYRIGHT" for - * details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE. - */ - -/*$Header: /tmp_amd/presto/export/kbs/jutta/src/gsm/RCS/config.h,v 1.5 1996/07/02 11:26:20 jutta Exp $*/ - -#ifndef CONFIG_H -#define CONFIG_H - -/*efine SIGHANDLER_T int /* signal handlers are void */ -/*efine HAS_SYSV_SIGNAL 1 /* sigs not blocked/reset? */ - -#define HAS_STDLIB_H 1 /* /usr/include/stdlib.h */ -#define HAS_LIMITS_H 1 /* /usr/include/limits.h */ -#define HAS_FCNTL_H 1 /* /usr/include/fcntl.h */ -#define HAS_ERRNO_DECL 1 /* errno.h declares errno */ - -#define HAS_FSTAT 1 /* fstat syscall */ -#define HAS_FCHMOD 1 /* fchmod syscall */ -#define HAS_CHMOD 1 /* chmod syscall */ -#define HAS_FCHOWN 1 /* fchown syscall */ -#define HAS_CHOWN 1 /* chown syscall */ -/*efine HAS__FSETMODE 1 /* _fsetmode -- set file mode */ - -#define HAS_STRING_H 1 /* /usr/include/string.h */ -/*efine HAS_STRINGS_H 1 /* /usr/include/strings.h */ - -#define HAS_UNISTD_H 1 /* /usr/include/unistd.h */ -#define HAS_UTIME 1 /* POSIX utime(path, times) */ -/*efine HAS_UTIMES 1 /* use utimes() syscall instead */ -#define HAS_UTIME_H 1 /* UTIME header file */ -#define HAS_UTIMBUF 1 /* struct utimbuf */ -/*efine HAS_UTIMEUSEC 1 /* microseconds in utimbuf? */ - -#endif /* CONFIG_H */ --- gsm-1.0-pl13.old/inc/gsm.h +++ gsm-1.0-pl13/inc/gsm.h @@ -54,6 +54,10 @@ #define GSM_OPT_FRAME_INDEX 5 #define GSM_OPT_FRAME_CHAIN 6 +#ifdef __cplusplus +extern "C" { +#endif + extern gsm gsm_create GSM_P((void)); extern void gsm_destroy GSM_P((gsm)); @@ -66,6 +70,10 @@ extern int gsm_explode GSM_P((gsm, gsm_byte *, gsm_signal *)); extern void gsm_implode GSM_P((gsm, gsm_signal *, gsm_byte *)); +#ifdef __cplusplus +} +#endif + #undef GSM_P #endif /* GSM_H */ --- gsm-1.0-pl13.old/inc/gsm_config.h +++ gsm-1.0-pl13/inc/gsm_config.h @@ -0,0 +1,37 @@ +/* + * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische + * Universitaet Berlin. See the accompanying file "COPYRIGHT" for + * details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE. + */ + +/*$Header: /tmp_amd/presto/export/kbs/jutta/src/gsm/RCS/config.h,v 1.5 1996/07/02 11:26:20 jutta Exp $*/ + +#ifndef CONFIG_H +#define CONFIG_H + +/*efine SIGHANDLER_T int -* signal handlers are void */ +/*efine HAS_SYSV_SIGNAL 1 -* sigs not blocked/reset? */ + +#define HAS_STDLIB_H 1 /* /usr/include/stdlib.h */ +#define HAS_STDIO_H 1 /* /usr/include/stdio.h */ +/*efine HAS_LIMITS_H 1 -* /usr/include/limits.h */ +#define HAS_FCNTL_H 1 /* /usr/include/fcntl.h */ + +#define HAS_FSTAT 1 /* fstat syscall */ +#define HAS_FCHMOD 1 /* fchmod syscall */ +#define HAS_CHMOD 1 /* chmod syscall */ +#define HAS_FCHOWN 1 /* fchown syscall */ +#define HAS_CHOWN 1 /* chown syscall */ +/*efine HAS__FSETMODE 1 -* _fsetmode -- set file mode */ + +#define HAS_STRING_H 1 /* /usr/include/string.h */ +/*efine HAS_STRINGS_H 1 -* /usr/include/strings.h */ + +#define HAS_UNISTD_H 1 /* /usr/include/unistd.h */ +#define HAS_UTIME 1 /* POSIX utime(path, times) */ +/*efine HAS_UTIMES 1 -* use utimes() syscall instead */ +#define HAS_UTIME_H 1 /* UTIME header file */ +/*efine HAS_UTIMBUF 1 -* struct utimbuf */ +/*efine HAS_UTIMEUSEC 1 -* microseconds in utimbuf? */ + +#endif /* CONFIG_H */ --- gsm-1.0-pl13.old/inc/toast.h +++ gsm-1.0-pl13/inc/toast.h @@ -9,18 +9,19 @@ #ifndef TOAST_H #define TOAST_H /* Guard against multiple includes */ -#include "config.h" +#include "gsm_config.h" #include #include #include #include +#include #include #include -#ifndef HAS_ERRNO_DECL - extern int errno; +#ifndef errno + extern int errno; #endif #ifdef HAS_LIMITS_H @@ -37,6 +38,10 @@ # endif #endif +#ifdef HAS_STDIO_H +# include +#endif + #include "gsm.h" #ifndef S_ISREG --- gsm-1.0-pl13.old/man/gsm.3 +++ gsm-1.0-pl13/man/gsm.3 @@ -3,7 +3,6 @@ .\" Universitaet Berlin. See the accompanying file "COPYRIGHT" for .\" details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE. .\" -.PU .TH GSM 3 .SH NAME gsm_create, gsm_destroy, gsm_encode, gsm_decode \(em GSM\ 06.10 lossy sound compression --- gsm-1.0-pl13.old/man/gsm_explode.3 +++ gsm-1.0-pl13/man/gsm_explode.3 @@ -3,7 +3,6 @@ .\" Universitaet Berlin. See the accompanying file "COPYRIGHT" for .\" details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE. .\" -.PU .TH GSM_EXPLODE 3 .SH NAME gsm_explode, gsm_implode \(em GSM\ 06.10 supplementary --- gsm-1.0-pl13.old/man/gsm_option.3 +++ gsm-1.0-pl13/man/gsm_option.3 @@ -3,7 +3,6 @@ .\" Universitaet Berlin. See the accompanying file "COPYRIGHT" for .\" details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE. .\" -.PU .TH GSM_OPTION 3 .SH NAME gsm_option \(em customizing the GSM 06.10 implementation @@ -39,19 +38,19 @@ .I GSM_OPT_VERBOSE Verbosity level. .br -.in+5 +.RS This option is only supported if the library was compiled with debugging turned on, and may be used by developers of compression algorithms to aid debugging. .br The verbosity level can be changed at any time during encoding or decoding. -.in-5 +.RE .sp .PP .I GSM_OPT_FAST Faster compression algorithm. .br -.in+5 +.RS This implementation offers a not strictly standard-compliant, but faster compression algorithm that is compatible with the regular method and does not noticably degrade audio quality. @@ -70,14 +69,13 @@ to set or query it. .br This option can be set any time during encoding or decoding. -.in-5 -.ne 5 +.RE .sp .PP .I GSM_OPT_LTP_CUT Enable, disable, or query the LTP cut-off optimization. .br -.in+5 +.RS During encoding, the search for the long-term correlation lag forms the bottleneck of the algorithm. The ltp-cut option enables an approximation that disregards most @@ -95,12 +93,13 @@ This option can be set any time during encoding or decoding; it will only affect the encoding pass, not the decoding. +.RE .sp .PP .I GSM_OPT_WAV49 WAV-style byte ordering. .br -.in+5 +.RS A WAV file of type #49 contains GSM 06.10-encoded frames. Unfortunately, the framing and code ordering of the WAV version are incompatible with the native ones of this GSM 06.10 library. @@ -131,12 +130,13 @@ .br Thanks to Jeff Chilton for the detective work and first free implementation of this version of the GSM 06.10 encoding. +.RE .sp .PP .I GSM_OPT_FRAME_CHAIN Query or set the chaining byte. .br -.in+5 +.RS Between the two frames of a WAV-style encoding, the GSM 06.10 library must keep track of one half-byte that is technically part of the first frame, but will be written as the first four bits of the second. @@ -148,13 +148,14 @@ .fi .br This option can be queried and set at any time. +.RE .sp .PP .I GSM_OPT_FRAME_INDEX Query or set the current frame's index in a format's alternating list of frames. .br -.in+5 +.RS The WAV #49 framing uses two alternating types of frames. Which type the next GSM-coded frame belongs to can be queried, or, when decoding, announced, using @@ -173,7 +174,7 @@ option, it can be used to position on arbitrary GSM frames within a format like WAV #49 (not accounting for the lost internal GSM state). -.in-5 +.RE .SH "RETURN VALUE" gsm_option() returns -1 if an option is not supported, the previous value of the option otherwise. --- gsm-1.0-pl13.old/man/gsm_print.3 +++ gsm-1.0-pl13/man/gsm_print.3 @@ -3,7 +3,6 @@ .\" Universitaet Berlin. See the accompanying file "COPYRIGHT" for .\" details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE. .\" -.PU .TH GSM_PRINT 3 .SH NAME gsm_print \(em GSM\ 06.10 supplementary function for debugging --- gsm-1.0-pl13.old/src/code.c +++ gsm-1.0-pl13/src/code.c @@ -6,11 +6,11 @@ /* $Header: /tmp_amd/presto/export/kbs/jutta/src/gsm/RCS/code.c,v 1.3 1996/07/02 09:59:05 jutta Exp $ */ -#include "config.h" +#include "gsm_config.h" -#ifdef HAS_STDLIB_H -#include +#ifdef HAS_STRING_H +#include #else # include "proto.h" extern char * memcpy P((char *, char *, int)); --- gsm-1.0-pl13.old/src/debug.c +++ gsm-1.0-pl13/src/debug.c @@ -49,7 +49,7 @@ fprintf( stderr, "%s [%d .. %d]: ", name, from, to ); while (from <= to) { - fprintf(stderr, "%d ", ptr[ from ] ); + fprintf(stderr, "%ld ", ptr[ from ] ); from++; if (nprinted++ >= 7) { nprinted = 0; @@ -63,14 +63,14 @@ char * name, longword value ) { - fprintf(stderr, "%s: %d\n", name, (long)value ); + fprintf(stderr, "%s: %ld\n", name, (long)value ); } void gsm_debug_word P2( (name, value), char * name, word value ) { - fprintf(stderr, "%s: %d\n", name, (long)value); + fprintf(stderr, "%s: %ld\n", name, (long)value); } #endif --- gsm-1.0-pl13.old/src/gsm_create.c +++ gsm-1.0-pl13/src/gsm_create.c @@ -6,7 +6,7 @@ static char const ident[] = "$Header: /tmp_amd/presto/export/kbs/jutta/src/gsm/RCS/gsm_create.c,v 1.4 1996/07/02 09:59:05 jutta Exp $"; -#include "config.h" +#include "gsm_config.h" #ifdef HAS_STRING_H #include --- gsm-1.0-pl13.old/src/gsm_destroy.c +++ gsm-1.0-pl13/src/gsm_destroy.c @@ -7,7 +7,7 @@ /* $Header: /tmp_amd/presto/export/kbs/jutta/src/gsm/RCS/gsm_destroy.c,v 1.3 1994/11/28 19:52:25 jutta Exp $ */ #include "gsm.h" -#include "config.h" +#include "gsm_config.h" #include "proto.h" #ifdef HAS_STDLIB_H --- gsm-1.0-pl13.old/src/toast.c +++ gsm-1.0-pl13/src/toast.c @@ -251,8 +251,8 @@ { char * s; if (!(s = malloc(len))) { - fprintf(stderr, "%s: failed to malloc %d bytes -- abort\n", - progname, len); + fprintf(stderr, "%s: failed to malloc %ld bytes -- abort\n", + progname, (long) len); onintr(); exit(1); } @@ -270,7 +270,7 @@ maxlen = strlen(name) + 1 + strlen(want) + strlen(cut); p = strcpy(emalloc(maxlen), name); - if (s = suffix(p, cut)) strcpy(s, want); + if ((s = suffix(p, cut))) strcpy(s, want); else if (*want && !suffix(p, want)) strcat(p, want); return p; @@ -386,7 +386,7 @@ ut[0] = instat.st_atime; ut[1] = instat.st_mtime; - (void) utime(outname, ut); + (void) utime(outname, (struct utimbuf *)ut); #endif /* UTIMBUF */ } @@ -416,7 +416,7 @@ } if (st->st_nlink > 1 && !f_cat && !f_precious) { fprintf(stderr, - "%s: \"%s\" has %s other link%s -- unchanged.\n", + "%s: \"%s\" has %d other link%s -- unchanged.\n", progname,name,st->st_nlink - 1,"s" + (st->st_nlink<=2)); return 0; } @@ -585,8 +585,8 @@ if (cc != sizeof(s)) { if (cc >= 0) fprintf(stderr, - "%s: incomplete frame (%d byte%s missing) from %s\n", - progname, sizeof(s) - cc, + "%s: incomplete frame (%ld byte%s missing) from %s\n", + progname, (long) sizeof(s) - cc, "s" + (sizeof(s) - cc == 1), inname ? inname : "stdin" ); gsm_destroy(r); @@ -624,8 +624,6 @@ static int process P1((name), char * name) { - int step = 0; - out = (FILE *)0; in = (FILE *)0; @@ -779,7 +777,6 @@ case 'h': help(); exit(0); default: - usage: fprintf(stderr, "Usage: %s [-fcpdhvuaslFC] [files...] (-h for help)\n", progname); --- gsm-1.0-pl13.old/tls/taste.c +++ gsm-1.0-pl13/tls/taste.c @@ -10,7 +10,7 @@ #include #include -#include "config.h" +#include "gsm_config.h" #ifdef HAS_STDLIB_H # include