+++ /dev/null
-#
-# Copyright (C) 2006-2014 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=gsm
-PKG_VERSION:=1.0.13
-PKG_RELEASE:=2
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://www.quut.com/gsm
-PKG_MD5SUM:=c1ba392ce61dc4aff1c29ea4e92f6df4
-
-PKG_LICENSE:=FREE
-PKG_LICENSE_FILES:=COPYRIGHT
-
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-1.0-pl13
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/gsm/Default
- TITLE:=GSM transcoding
- URL:=http://www.quut.com/gsm
-endef
-
-define Package/gsm/description/Default
- An implementation of the European GSM 06.10 provisional standard
- for full-rate speech transcoding, prI-ETS 300 036, which uses
- RPE/LTP (residual pulse excitation/long term prediction) coding
- at 13 kbit/s.
-endef
-
-define Package/libgsm
-$(call Package/gsm/Default)
- SECTION:=libs
- CATEGORY:=Libraries
- TITLE+= library
-endef
-
-define Package/libgsm/description
-$(call Package/gsm/description/Default)
- This package contains a shared GSM transcoding library, used by other
- programs.
-endef
-
-define Package/gsm-utils
-$(call Package/gsm/Default)
- SECTION:=utils
- CATEGORY:=Utilities
- DEPENDS:=+libgsm
- TITLE+= utilities
-endef
-
-define Package/gsm-utils/description
-$(call Package/gsm/description/Default)
- This package contains GSM transcoding utilities.
-endef
-
-define Build/Configure
-endef
-
-TARGET_CFLAGS += $(FPIC)
-
-define Build/Compile
- $(MAKE) -C $(PKG_BUILD_DIR) \
- $(TARGET_CONFIGURE_OPTS) \
- LD="$(TARGET_CC)" \
- COPTS="$(TARGET_CFLAGS)" \
- INSTALL_ROOT="$(PKG_INSTALL_DIR)" \
- all install
-endef
-
-define Package/libgsm/install
- $(INSTALL_DIR) $(1)/usr/lib
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libgsm.so.* $(1)/usr/lib/
-endef
-
-define Package/gsm-utils/install
- $(INSTALL_DIR) $(1)/usr/bin
- $(CP) $(PKG_INSTALL_DIR)/usr/bin/toast $(1)/usr/bin/
- (cd $(1)/usr/bin; ln -sf toast untoast; ln -sf toast tcat)
-endef
-
-define Build/InstallDev
- $(INSTALL_DIR) $(1)/usr/include/gsm
- $(CP) $(PKG_INSTALL_DIR)/usr/include/gsm.h $(1)/usr/include/gsm/
- $(INSTALL_DIR) $(1)/usr/lib
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libgsm.{a,so*} $(1)/usr/lib/
-endef
-
-$(eval $(call BuildPackage,libgsm))
-$(eval $(call BuildPackage,gsm-utils))
+++ /dev/null
---- a/Makefile
-+++ b/Makefile
-@@ -8,10 +8,12 @@ SASR = -DSASR
- ######### Define SASR if >> is a signed arithmetic shift (-1 >> 1 == -1)
-
- # MULHACK = -DUSE_FLOAT_MUL
-+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.
-
-@@ -22,8 +24,8 @@ LTP_CUT =
- ######### both integer and floating point multiplications.
- ######### This flag is still in the experimental stage.
-
--WAV49 = -DWAV49
--# WAV49 =
-+# 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,
-@@ -44,7 +46,8 @@ WAV49 = -DWAV49
- # CCFLAGS = -c -O
-
- CC = gcc -ansi -pedantic
--CCFLAGS = -c -O2 -DNeedFunctionPrototypes=1
-+COPTS = -O2
-+CCFLAGS = -c $(COPTS) -DNeedFunctionPrototypes=1
-
- LD = $(CC)
-
-@@ -78,10 +81,10 @@ INSTALL_ROOT =
- # Leave GSM_INSTALL_ROOT empty to not install the GSM library outside of
- # this directory.
-
--GSM_INSTALL_ROOT = $(INSTALL_ROOT)
-+GSM_INSTALL_ROOT = $(INSTALL_ROOT)/usr
- GSM_INSTALL_LIB = $(GSM_INSTALL_ROOT)/lib
--GSM_INSTALL_INC = $(GSM_INSTALL_ROOT)/inc
--GSM_INSTALL_MAN = $(GSM_INSTALL_ROOT)/man/man3
-+GSM_INSTALL_INC = $(GSM_INSTALL_ROOT)/include
-+GSM_INSTALL_MAN = $(GSM_INSTALL_ROOT)/share/man/man3
-
-
- # Where do you want to install the toast binaries and their manpage?
-@@ -89,14 +92,14 @@ GSM_INSTALL_MAN = $(GSM_INSTALL_ROOT)/ma
- # Leave TOAST_INSTALL_ROOT empty to not install the toast binaries outside
- # of this directory.
-
--TOAST_INSTALL_ROOT = $(INSTALL_ROOT)
-+TOAST_INSTALL_ROOT = $(INSTALL_ROOT)/usr
- TOAST_INSTALL_BIN = $(TOAST_INSTALL_ROOT)/bin
--TOAST_INSTALL_MAN = $(TOAST_INSTALL_ROOT)/man/man1
-+TOAST_INSTALL_MAN = $(TOAST_INSTALL_ROOT)/share/man/man1
-
- # Other tools
-
- SHELL = /bin/sh
--LN = ln
-+LN = ln -s
- BASENAME = basename
- AR = ar
- ARFLAGS = cr
-@@ -126,7 +129,7 @@ INC = $(ROOT)/inc
-
- # Flags
-
--# DEBUG = -DNDEBUG
-+DEBUG = -DNDEBUG
- ######### Remove -DNDEBUG to enable assertions.
-
- CFLAGS = $(CCFLAGS) $(SASR) $(DEBUG) $(MULHACK) $(FAST) $(LTP_CUT) \
-@@ -140,6 +143,7 @@ LFLAGS = $(LDFLAGS) $(LDINC)
- # Targets
-
- LIBGSM = $(LIB)/libgsm.a
-+LIBGSMSO= $(LIB)/libgsm.so
-
- TOAST = $(BIN)/toast
- UNTOAST = $(BIN)/untoast
-@@ -258,6 +262,9 @@ STUFF = ChangeLog \
-
- GSM_INSTALL_TARGETS = \
- $(GSM_INSTALL_LIB)/libgsm.a \
-+ $(GSM_INSTALL_LIB)/libgsm.so \
-+ $(GSM_INSTALL_LIB)/libgsm.so.1 \
-+ $(GSM_INSTALL_LIB)/libgsm.so.1.0.10 \
- $(GSM_INSTALL_INC)/gsm.h \
- $(GSM_INSTALL_MAN)/gsm.3 \
- $(GSM_INSTALL_MAN)/gsm_explode.3 \
-@@ -279,7 +286,7 @@ TOAST_INSTALL_TARGETS = \
-
- # 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 +306,11 @@ install: toastinstall gsminstall
-
- # The basic API: libgsm
-
-+$(LIBGSMSO): $(LIB) $(GSM_OBJECTS)
-+ $(LD) -o $@.1.0.10 -shared -Xlinker -soname -Xlinker 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): $(LIB) $(GSM_OBJECTS)
- -rm $(RMFLAGS) $(LIBGSM)
- $(AR) $(ARFLAGS) $(LIBGSM) $(GSM_OBJECTS)
-@@ -308,15 +320,15 @@ $(LIBGSM): $(LIB) $(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)
-+ $(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 +363,66 @@ toastuninstall:
- fi
-
- $(TOAST_INSTALL_BIN)/toast: $(TOAST)
-- -rm $@
-- cp $(TOAST) $@
-+ mkdir -p $(TOAST_INSTALL_BIN)
-+ cp -f $(TOAST) $@
- chmod 755 $@
-
- $(TOAST_INSTALL_BIN)/untoast: $(TOAST_INSTALL_BIN)/toast
-- -rm $@
-- ln $? $@
-+ mkdir -p $(TOAST_INSTALL_BIN)
-+ ln -sf $? $@
-
- $(TOAST_INSTALL_BIN)/tcat: $(TOAST_INSTALL_BIN)/toast
-- -rm $@
-- ln $? $@
-+ mkdir -p $(TOAST_INSTALL_BIN)
-+ ln -sf $? $@
-
- $(TOAST_INSTALL_MAN)/toast.1: $(MAN)/toast.1
-- -rm $@
-- cp $? $@
-+ mkdir -p $(TOAST_INSTALL_MAN)
-+ cp -f $? $@
- chmod 444 $@
-
- $(GSM_INSTALL_MAN)/gsm.3: $(MAN)/gsm.3
-- -rm $@
-- cp $? $@
-+ mkdir -p $(GSM_INSTALL_MAN)
-+ cp -f $? $@
- chmod 444 $@
-
- $(GSM_INSTALL_MAN)/gsm_option.3: $(MAN)/gsm_option.3
-- -rm $@
-- cp $? $@
-+ mkdir -p $(GSM_INSTALL_MAN)
-+ cp -f $? $@
- chmod 444 $@
-
- $(GSM_INSTALL_MAN)/gsm_explode.3: $(MAN)/gsm_explode.3
-- -rm $@
-- cp $? $@
-+ mkdir -p $(GSM_INSTALL_MAN)
-+ cp -f $? $@
- chmod 444 $@
-
- $(GSM_INSTALL_MAN)/gsm_print.3: $(MAN)/gsm_print.3
-- -rm $@
-- cp $? $@
-+ mkdir -p $(GSM_INSTALL_MAN)
-+ cp -f $? $@
- chmod 444 $@
-
- $(GSM_INSTALL_INC)/gsm.h: $(INC)/gsm.h
-- -rm $@
-- cp $? $@
-+ mkdir -p $(GSM_INSTALL_INC)
-+ cp -f $? $@
- chmod 444 $@
-
- $(GSM_INSTALL_LIB)/libgsm.a: $(LIBGSM)
-- -rm $@
-- cp $? $@
-+ mkdir -p $(GSM_INSTALL_LIB)
-+ cp -f $? $@
- chmod 444 $@
-
-+$(GSM_INSTALL_LIB)/libgsm.so: $(LIBGSMSO)
-+ mkdir -p $(GSM_INSTALL_LIB)
-+ cp -f $? $@
-+
-+$(GSM_INSTALL_LIB)/libgsm.so.1: $(LIBGSMSO)
-+ mkdir -p $(GSM_INSTALL_LIB)
-+ cp -f $? $@
-+
-+$(GSM_INSTALL_LIB)/libgsm.so.1.0.10: $(LIBGSMSO)
-+ mkdir -p $(GSM_INSTALL_LIB)
-+ cp -f $? $@
-+ chmod 755 $@
-+
-
- # Distribution
-
-@@ -426,7 +451,9 @@ semi-clean:
-
- clean: semi-clean
- -rm $(RMFLAGS) $(LIBGSM) $(ADDTST)/add \
-- $(TOAST) $(TCAT) $(UNTOAST) \
-+ $(LIBGSMSO) $(LIB)/libgsm.so.1.0.10 \
-+ $(LIB)libgsm.so.1 \
-+ $(TOAST) $(TCAT) $(UNTOAST) \
- $(ROOT)/gsm-1.0.tar.Z
-
-
---- a/inc/config.h
-+++ b/inc/config.h
-@@ -9,8 +9,8 @@
- #ifndef CONFIG_H
- #define CONFIG_H
-
--/*efine SIGHANDLER_T int /* signal handlers are void */
--/*efine HAS_SYSV_SIGNAL 1 /* sigs not blocked/reset? */
-+/*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 */
-@@ -22,16 +22,16 @@
- #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 */
-+/*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 */
-+/*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 */
-+/*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? */
-+/*efine HAS_UTIMEUSEC 1 *//* microseconds in utimbuf? */
-
- #endif /* CONFIG_H */
---- a/inc/gsm.h
-+++ b/inc/gsm.h
-@@ -54,6 +54,10 @@ typedef gsm_byte gsm_frame[33]; /* 33
- #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_decode GSM_P((gsm, gsm_
- 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 */
---- a/inc/toast.h
-+++ b/inc/toast.h
-@@ -16,11 +16,12 @@
-
- #include <stdio.h>
- #include <ctype.h>
-+#include <pthread.h>
- #include <signal.h>
-
- #include <errno.h>
--#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 <stdio.h>
-+#endif
-+
- #include "gsm.h"
-
- #ifndef S_ISREG
---- a/src/code.c
-+++ b/src/code.c
-@@ -9,8 +9,8 @@
- #include "config.h"
-
-
--#ifdef HAS_STDLIB_H
--#include <stdlib.h>
-+#ifdef HAS_STRING_H
-+#include <string.h>
- #else
- # include "proto.h"
- extern char * memcpy P((char *, char *, int));
---- a/src/debug.c
-+++ b/src/debug.c
-@@ -49,7 +49,7 @@ void gsm_debug_longwords P4( (name, from
- 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 @@ void gsm_debug_longword P2( (name, valu
- 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
---- a/src/toast.c
-+++ b/src/toast.c
-@@ -251,8 +251,8 @@ static char * emalloc P1((len), size_t l
- {
- 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 @@ static char* normalname P3((name, want,
- 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 @@ static void update_times P0()
- 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 @@ static int okay_as_input P3((name,f,st),
- }
- 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 @@ static int process_decode P0()
-
- 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_decode P0()
-
- static int process P1((name), char * name)
- {
-- int step = 0;
--
- out = (FILE *)0;
- in = (FILE *)0;
-
-@@ -779,7 +777,6 @@ int main P2((ac, av), int ac, char **av)
- case 'h': help(); exit(0);
-
- default:
-- usage:
- fprintf(stderr,
- "Usage: %s [-fcpdhvuaslFC] [files...] (-h for help)\n",
- progname);