aboutsummaryrefslogtreecommitdiffstats
path: root/comms/soundmodem
diff options
context:
space:
mode:
authordb <db@FreeBSD.org>2013-12-15 08:50:37 +0800
committerdb <db@FreeBSD.org>2013-12-15 08:50:37 +0800
commit3b2a208e86761ef0b18d96e29959aae96e5cc0fb (patch)
treedf9a085070a1919ff9435428e6c6abee3ca39cf4 /comms/soundmodem
parent60b1ed4602fd4fb97d9b4731f4780bfdeae86c5f (diff)
downloadfreebsd-ports-gnome-3b2a208e86761ef0b18d96e29959aae96e5cc0fb.tar.gz
freebsd-ports-gnome-3b2a208e86761ef0b18d96e29959aae96e5cc0fb.tar.zst
freebsd-ports-gnome-3b2a208e86761ef0b18d96e29959aae96e5cc0fb.zip
- Fix build on 10
- Add STAGEDIR - Add LICENSE
Diffstat (limited to 'comms/soundmodem')
-rw-r--r--comms/soundmodem/Makefile8
-rw-r--r--comms/soundmodem/files/patch-configapp_src_Makefile.in20
-rw-r--r--comms/soundmodem/files/patch-configapp_src_diag.c11
-rw-r--r--comms/soundmodem/files/patch-fsk_gendf9icfilt.cc21
-rw-r--r--comms/soundmodem/files/patch-matlib_mat.hh63
-rw-r--r--comms/soundmodem/files/patch-newqpsk_complex.h65
-rw-r--r--comms/soundmodem/files/patch-newqpsk_fec.h20
-rw-r--r--comms/soundmodem/files/patch-newqpsk_filter-i386.h11
-rw-r--r--comms/soundmodem/files/patch-newqpsk_filter.h11
-rw-r--r--comms/soundmodem/files/patch-newqpsk_misc.h80
-rw-r--r--comms/soundmodem/files/patch-p3dmodem_genp3dtbl.c11
-rw-r--r--comms/soundmodem/files/patch-pammodem_genpamtbl.c11
-rw-r--r--comms/soundmodem/files/patch-pskmodem_genpsktbl.c11
-rw-r--r--comms/soundmodem/files/patch-pskmodem_pskmodem.c11
-rw-r--r--comms/soundmodem/files/patch-soundcard_modem.h11
-rw-r--r--comms/soundmodem/files/patch-soundcard_simd.h79
-rw-r--r--comms/soundmodem/files/patch-soundcard_winlog.c11
-rw-r--r--comms/soundmodem/pkg-plist2
18 files changed, 453 insertions, 4 deletions
diff --git a/comms/soundmodem/Makefile b/comms/soundmodem/Makefile
index a705e2f7b64f..7896272efc39 100644
--- a/comms/soundmodem/Makefile
+++ b/comms/soundmodem/Makefile
@@ -10,16 +10,16 @@ MASTER_SITES= http://www.baycom.org/~tom/ham/soundmodem/ \
MAINTAINER= db@FreeBSD.org
COMMENT= Amateur Radio sound modem
+LICENSE= GPLv1
+
LIB_DEPENDS= libaudiofile.so:${PORTSDIR}/audio/libaudiofile
CONFIGURE_ARGS= --disable-alsatest
WRKSRC= ${WRKDIR}/${DISTNAME}
-USES= gmake pkgconfig
+USES= gmake pkgconfig gettext
HAS_CONFIGURE= yes
USE_GNOME= gtk20 libxml2
-MAN8= soundmodem.8 soundmodemconfig.8
-NO_STAGE= yes
pre-patch:
@${CP} ${FILESDIR}/soundmodem ${WRKSRC}
@@ -31,6 +31,6 @@ post-patch:
${WRKSRC}/configapp/src/main.c \
${WRKSRC}/soundmodem
post-install:
- ${INSTALL_SCRIPT} ${WRKSRC}/soundmodem ${PREFIX}/etc/rc.d
+ ${INSTALL_SCRIPT} ${WRKSRC}/soundmodem ${STAGEDIR}${PREFIX}/etc/rc.d
.include <bsd.port.mk>
diff --git a/comms/soundmodem/files/patch-configapp_src_Makefile.in b/comms/soundmodem/files/patch-configapp_src_Makefile.in
new file mode 100644
index 000000000000..be23bec4ccdd
--- /dev/null
+++ b/comms/soundmodem/files/patch-configapp_src_Makefile.in
@@ -0,0 +1,20 @@
+--- configapp/src/Makefile.in.orig 2012-11-07 05:55:36.000000000 -0500
++++ configapp/src/Makefile.in 2013-12-14 12:09:14.352210905 -0500
+@@ -87,7 +87,7 @@
+ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+ CCLD = $(CC)
+-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
++LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(INTLLIBS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+ SOURCES = $(soundmodemconfig_SOURCES)
+ DIST_SOURCES = $(soundmodemconfig_SOURCES)
+ am__can_run_installinfo = \
+@@ -300,7 +300,7 @@
+
+ soundmodemconfig_LDADD = ../../soundcard/liblog.a ../../soundcard/libaudioio.a ../../soundcard/libpttio.a \
+ $(MODEMLIBS) ../../matlib/libmat.a ../../libmisc/libmisc.a ../../soundcard/libcommon.a \
+- @LIBTHREAD@ @GTK_LIBS@ @XML_LIBS@ @AUDIOFILE_LIBS@ @ALSA_LIBS@ $(RCOBJ)
++ @LIBINTL@ @LIBTHREAD@ @GTK_LIBS@ @XML_LIBS@ @AUDIOFILE_LIBS@ @ALSA_LIBS@ $(RCOBJ)
+
+ soundmodemconfig_LDFLAGS = $(MWINDOWS)
+ EXTRA_DIST = configapp.rc soundmodemconfig.8
diff --git a/comms/soundmodem/files/patch-configapp_src_diag.c b/comms/soundmodem/files/patch-configapp_src_diag.c
new file mode 100644
index 000000000000..16e1410ba6d5
--- /dev/null
+++ b/comms/soundmodem/files/patch-configapp_src_diag.c
@@ -0,0 +1,11 @@
+--- configapp/src/diag.c.orig 2013-12-13 14:39:25.388350545 -0500
++++ configapp/src/diag.c 2013-12-13 14:40:12.600347047 -0500
+@@ -473,7 +473,7 @@
+ cp += sprintf(cp, "%c", diagstate.p3d.packet[i+j]);
+ }
+ }
+- cp += sprintf(cp, "\n%04x: %02x %02x%44s", 512, diagstate.p3d.packet[512], diagstate.p3d.packet[514], " ");
++ cp += sprintf(cp, "\n%04x: %02x %02x%44s", 512, diagstate.p3d.packet[512], diagstate.p3d.packet[513], " ");
+ for (i = 512; i < 514; i++) {
+ if (diagstate.p3d.packet[i] < ' ' || diagstate.p3d.packet[i] >= 0x80)
+ cp += sprintf(cp, ".");
diff --git a/comms/soundmodem/files/patch-fsk_gendf9icfilt.cc b/comms/soundmodem/files/patch-fsk_gendf9icfilt.cc
new file mode 100644
index 000000000000..9a4024637918
--- /dev/null
+++ b/comms/soundmodem/files/patch-fsk_gendf9icfilt.cc
@@ -0,0 +1,21 @@
+--- fsk/gendf9icfilt.cc.orig 2013-12-13 08:19:49.459920041 -0500
++++ fsk/gendf9icfilt.cc 2013-12-13 08:43:50.641820677 -0500
+@@ -41,6 +41,8 @@
+
+ #include "getopt.h"
+
++#define FFTSZ 2048
++
+ /* --------------------------------------------------------------------- */
+
+ template<typename T> complex<T> rxfilter(T freq)
+@@ -173,7 +175,8 @@
+ printtransferfunc(os, fftsz, over);
+ else
+ os << "/* this file is automatically generated, do not edit!! */\n\n";
+- complex<double> fftb[fftsz];
++// complex<double> fftb[fftsz];
++ complex<double> fftb[FFTSZ];
+ double rpulse[fftsz], tpulse[fftsz];
+ double dover = double(over) / fftsz;
+ double sum;
diff --git a/comms/soundmodem/files/patch-matlib_mat.hh b/comms/soundmodem/files/patch-matlib_mat.hh
new file mode 100644
index 000000000000..4884ad08fcef
--- /dev/null
+++ b/comms/soundmodem/files/patch-matlib_mat.hh
@@ -0,0 +1,63 @@
+--- matlib/mat.hh.orig 2013-12-13 08:25:15.148898287 -0500
++++ matlib/mat.hh 2013-12-13 08:45:23.061999828 -0500
+@@ -91,36 +91,6 @@
+ memcpy(c, r, d1 * d3 * sizeof(c[0]));
+ }
+
+-template<typename T> void mdet(const T *c, unsigned int d)
+-{
+- T *c2;
+- unsigned int i, j, k, l;
+- T det = 0, dr;
+-
+- if (!d)
+- return 0;
+- if (d == 1)
+- return c[0];
+- if (d == 2)
+- return c[0] * c[3] - c[1] * c[2];
+- c2 = alloca(sizeof(T)*(d-1)*(d-1));
+- for (i = 0; i < d; i++) {
+- for (j = k = 0; j < d; j++) {
+- if (j == i)
+- continue;
+- for (l = 0; l < d-1; l++)
+- c2[l*(d-1)+k] = c[(l+1)*d+j];
+- k++;
+- }
+- dr = mdet(c2, d-1);
+- if (i & 1)
+- det -= dr * c[i];
+- else
+- det += dr * c[i];
+- }
+- return det;
+-}
+-
+ /* Transpose a matrix (a el C^{d1 x d2}, b el C^{d2 x d1}) */
+ template<typename T> void mtranspose(T *b, const T *a, unsigned int d1, unsigned int d2)
+ {
+@@ -440,23 +410,6 @@
+ }
+ }
+
+-template<typename T> void minv(T *ainv, const T *a, unsigned int d)
+-{
+- T *u, *y;
+- unsigned int *p;
+- unsigned int k;
+-
+- u = alloca(d * d * sizeof(u[0]));
+- p = alloca((d-1) * sizeof(p[0]));
+- mlufact(u, p, a, d);
+- for (k = 0; k < d; k++) {
+- y = &ainv[k*d];
+- memset(y, 0, d * sizeof(y[0]));
+- y[k] = T(1);
+- mlusolve(y, y, u, p, d);
+- }
+- mtranspose(ainv, ainv, d, d);
+-}
+
+ /*
+ * Gauss-Seidel iterative solver
diff --git a/comms/soundmodem/files/patch-newqpsk_complex.h b/comms/soundmodem/files/patch-newqpsk_complex.h
new file mode 100644
index 000000000000..d7617bec6b6e
--- /dev/null
+++ b/comms/soundmodem/files/patch-newqpsk_complex.h
@@ -0,0 +1,65 @@
+--- newqpsk/complex.h.orig 2008-12-14 09:47:34.000000000 -0500
++++ newqpsk/complex.h 2013-12-14 17:54:58.000000000 -0500
+@@ -13,7 +13,7 @@
+ /*
+ * Complex multiplication.
+ */
+-extern __inline__ complex cmul(complex x, complex y)
++static __inline__ complex cmul(complex x, complex y)
+ {
+ complex z;
+
+@@ -27,7 +27,7 @@
+ * Complex ... yeah, what??? Returns a complex number that has the
+ * properties: |z| = |x| * |y| and arg(z) = arg(y) - arg(x)
+ */
+-extern __inline__ complex ccor(complex x, complex y)
++static __inline__ complex ccor(complex x, complex y)
+ {
+ complex z;
+
+@@ -40,7 +40,7 @@
+ /*
+ * Real part of the complex ???
+ */
+-extern __inline__ float ccorI(complex x, complex y)
++static __inline__ float ccorI(complex x, complex y)
+ {
+ return x.re * y.re + x.im * y.im;
+ }
+@@ -48,7 +48,7 @@
+ /*
+ * Imaginary part of the complex ???
+ */
+-extern __inline__ float ccorQ(complex x, complex y)
++static __inline__ float ccorQ(complex x, complex y)
+ {
+ return x.re * y.im - x.im * y.re;
+ }
+@@ -56,7 +56,7 @@
+ /*
+ * Modulo (absolute value) of a complex number.
+ */
+-extern __inline__ float cmod(complex x)
++static __inline__ float cmod(complex x)
+ {
+ return sqrt(x.re * x.re + x.im * x.im);
+ }
+@@ -64,7 +64,7 @@
+ /*
+ * Square of the absolute value (power).
+ */
+-extern __inline__ float cpwr(complex x)
++static __inline__ float cpwr(complex x)
+ {
+ return (x.re * x.re + x.im * x.im);
+ }
+@@ -72,7 +72,7 @@
+ /*
+ * Argument of a complex number.
+ */
+-extern __inline__ float carg(complex x)
++static __inline__ float carg(complex x)
+ {
+ return atan2(x.im, x.re);
+ }
diff --git a/comms/soundmodem/files/patch-newqpsk_fec.h b/comms/soundmodem/files/patch-newqpsk_fec.h
new file mode 100644
index 000000000000..1b209798ab8d
--- /dev/null
+++ b/comms/soundmodem/files/patch-newqpsk_fec.h
@@ -0,0 +1,20 @@
+--- newqpsk/fec.h.orig 2002-08-09 15:01:52.000000000 -0500
++++ newqpsk/fec.h 2013-12-14 17:37:25.000000000 -0500
+@@ -13,7 +13,7 @@
+
+ /* --------------------------------------------------------------------- */
+
+-extern inline void init_fec(struct fecstate *f)
++static inline void init_fec(struct fecstate *f)
+ {
+ switch (f->feclevel) {
+ case 0:
+@@ -33,7 +33,7 @@
+
+ /* --------------------------------------------------------------------- */
+
+-extern inline void init_inlv(struct fecstate *f)
++static inline void init_inlv(struct fecstate *f)
+ {
+ int i;
+
diff --git a/comms/soundmodem/files/patch-newqpsk_filter-i386.h b/comms/soundmodem/files/patch-newqpsk_filter-i386.h
new file mode 100644
index 000000000000..4d962b6e79bc
--- /dev/null
+++ b/comms/soundmodem/files/patch-newqpsk_filter-i386.h
@@ -0,0 +1,11 @@
+--- newqpsk/filter-i386.h.orig 2012-11-07 05:41:08.000000000 -0500
++++ newqpsk/filter-i386.h 2013-12-14 17:39:18.000000000 -0500
+@@ -1,7 +1,7 @@
+ #ifndef _FILTER_I386_H
+ #define _FILTER_I386_H
+ #define __HAVE_ARCH_MAC
+-extern inline float mac(const float *a, const float *b, unsigned int size)
++static inline float mac(const float *a, const float *b, unsigned int size)
+ {
+ float f;
+ asm volatile (
diff --git a/comms/soundmodem/files/patch-newqpsk_filter.h b/comms/soundmodem/files/patch-newqpsk_filter.h
new file mode 100644
index 000000000000..5c2bcc7cabe6
--- /dev/null
+++ b/comms/soundmodem/files/patch-newqpsk_filter.h
@@ -0,0 +1,11 @@
+--- newqpsk/filter.h.orig 2002-08-09 15:01:52.000000000 -0500
++++ newqpsk/filter.h 2013-12-14 17:39:02.000000000 -0500
+@@ -12,7 +12,7 @@
+ /* ---------------------------------------------------------------------- */
+
+ #ifndef __HAVE_ARCH_MAC
+-extern inline float mac(const float *a, const float *b, unsigned int size)
++static inline float mac(const float *a, const float *b, unsigned int size)
+ {
+ float sum = 0;
+ unsigned int i;
diff --git a/comms/soundmodem/files/patch-newqpsk_misc.h b/comms/soundmodem/files/patch-newqpsk_misc.h
new file mode 100644
index 000000000000..8c4ee56dd415
--- /dev/null
+++ b/comms/soundmodem/files/patch-newqpsk_misc.h
@@ -0,0 +1,80 @@
+--- newqpsk/misc.h.orig 2002-08-09 15:01:52.000000000 -0500
++++ newqpsk/misc.h 2013-12-14 17:36:50.000000000 -0500
+@@ -10,7 +10,7 @@
+ /*
+ * Hamming weight (number of bits that are ones).
+ */
+-extern inline unsigned int hweight32(unsigned int w)
++static inline unsigned int hweight32(unsigned int w)
+ {
+ w = (w & 0x55555555) + ((w >> 1) & 0x55555555);
+ w = (w & 0x33333333) + ((w >> 2) & 0x33333333);
+@@ -20,7 +20,7 @@
+ return w;
+ }
+
+-extern inline unsigned int hweight16(unsigned short w)
++static inline unsigned int hweight16(unsigned short w)
+ {
+ w = (w & 0x5555) + ((w >> 1) & 0x5555);
+ w = (w & 0x3333) + ((w >> 2) & 0x3333);
+@@ -29,7 +29,7 @@
+ return w;
+ }
+
+-extern inline unsigned int hweight8(unsigned char w)
++static inline unsigned int hweight8(unsigned char w)
+ {
+ w = (w & 0x55) + ((w >> 1) & 0x55);
+ w = (w & 0x33) + ((w >> 2) & 0x33);
+@@ -42,7 +42,7 @@
+ /*
+ * Reverse order of bits.
+ */
+-extern inline unsigned int rbits32(unsigned int w)
++static inline unsigned int rbits32(unsigned int w)
+ {
+ w = ((w >> 1) & 0x55555555) | ((w << 1) & 0xaaaaaaaa);
+ w = ((w >> 2) & 0x33333333) | ((w << 2) & 0xcccccccc);
+@@ -52,7 +52,7 @@
+ return w;
+ }
+
+-extern inline unsigned short rbits16(unsigned short w)
++static inline unsigned short rbits16(unsigned short w)
+ {
+ w = ((w >> 1) & 0x5555) | ((w << 1) & 0xaaaa);
+ w = ((w >> 2) & 0x3333) | ((w << 2) & 0xcccc);
+@@ -61,7 +61,7 @@
+ return w;
+ }
+
+-extern inline unsigned char rbits8(unsigned char w)
++static inline unsigned char rbits8(unsigned char w)
+ {
+ w = ((w >> 1) & 0x55) | ((w << 1) & 0xaa);
+ w = ((w >> 2) & 0x33) | ((w << 2) & 0xcc);
+@@ -71,7 +71,7 @@
+
+ /* ---------------------------------------------------------------------- */
+
+-extern inline float avg(float average, float input, int scale)
++static inline float avg(float average, float input, int scale)
+ {
+ int i;
+
+@@ -82,12 +82,12 @@
+ return (average + input);
+ }
+
+-extern inline float avg2(float average, float input, float weight)
++static inline float avg2(float average, float input, float weight)
+ {
+ return input * weight + average * (1.0 - weight);
+ }
+
+-extern inline float phaseavg(float *data, int len)
++static inline float phaseavg(float *data, int len)
+ {
+ float sum = 0.0;
+ float min = M_PI;
diff --git a/comms/soundmodem/files/patch-p3dmodem_genp3dtbl.c b/comms/soundmodem/files/patch-p3dmodem_genp3dtbl.c
new file mode 100644
index 000000000000..7d6c5e289d6b
--- /dev/null
+++ b/comms/soundmodem/files/patch-p3dmodem_genp3dtbl.c
@@ -0,0 +1,11 @@
+--- p3dmodem/genp3dtbl.c.orig 2002-08-09 15:01:52.000000000 -0500
++++ p3dmodem/genp3dtbl.c 2013-12-14 17:48:45.000000000 -0500
+@@ -39,6 +39,8 @@
+ #include <float.h>
+ #include <stdio.h>
+
++unsigned int log_verblevel;
++
+ /* ---------------------------------------------------------------------- */
+
+ extern inline unsigned int hweight32(unsigned int w)
diff --git a/comms/soundmodem/files/patch-pammodem_genpamtbl.c b/comms/soundmodem/files/patch-pammodem_genpamtbl.c
new file mode 100644
index 000000000000..3b5084bc93ee
--- /dev/null
+++ b/comms/soundmodem/files/patch-pammodem_genpamtbl.c
@@ -0,0 +1,11 @@
+--- pammodem/genpamtbl.c.orig 2002-08-09 15:01:52.000000000 -0500
++++ pammodem/genpamtbl.c 2013-12-14 17:52:08.000000000 -0500
+@@ -38,6 +38,8 @@
+ #include <math.h>
+ #include <stdio.h>
+
++unsigned int log_verblevel;
++
+ /* ---------------------------------------------------------------------- */
+
+ /*
diff --git a/comms/soundmodem/files/patch-pskmodem_genpsktbl.c b/comms/soundmodem/files/patch-pskmodem_genpsktbl.c
new file mode 100644
index 000000000000..73a284ae0b2e
--- /dev/null
+++ b/comms/soundmodem/files/patch-pskmodem_genpsktbl.c
@@ -0,0 +1,11 @@
+--- pskmodem/genpsktbl.c.orig 2013-12-14 14:02:09.000000000 -0500
++++ pskmodem/genpsktbl.c 2013-12-14 14:02:34.000000000 -0500
+@@ -40,6 +40,8 @@
+ #include <stdio.h>
+ #include <string.h>
+
++unsigned int log_verblevel;
++
+ /* ---------------------------------------------------------------------- */
+
+ /*
diff --git a/comms/soundmodem/files/patch-pskmodem_pskmodem.c b/comms/soundmodem/files/patch-pskmodem_pskmodem.c
new file mode 100644
index 000000000000..bcdb16ef9bdc
--- /dev/null
+++ b/comms/soundmodem/files/patch-pskmodem_pskmodem.c
@@ -0,0 +1,11 @@
+--- pskmodem/pskmodem.c.orig 2013-12-13 20:07:01.214995855 -0500
++++ pskmodem/pskmodem.c 2013-12-13 20:07:04.005995698 -0500
+@@ -262,7 +262,7 @@
+ }
+ }
+
+-extern inline int calcsync(int *toten, int *corren, cplxshort_t *samples)
++inline int calcsync(int *toten, int *corren, cplxshort_t *samples)
+ {
+ const cplxshort_t *tr = traincorrrotated;
+ unsigned int i;
diff --git a/comms/soundmodem/files/patch-soundcard_modem.h b/comms/soundmodem/files/patch-soundcard_modem.h
new file mode 100644
index 000000000000..a09ae14f6624
--- /dev/null
+++ b/comms/soundmodem/files/patch-soundcard_modem.h
@@ -0,0 +1,11 @@
+--- soundcard/modem.h.orig 2003-01-02 13:53:04.000000000 -0500
++++ soundcard/modem.h 2013-12-14 17:32:44.000000000 -0500
+@@ -103,7 +103,7 @@
+ extern void logprintf(unsigned int level, const char *fmt, ...);
+ extern void logerr(unsigned int level, const char *st);
+ extern unsigned int log_verblevel;
+-extern inline int logcheck(unsigned int vl)
++static inline int logcheck(unsigned int vl)
+ {
+ return vl <= log_verblevel;
+ }
diff --git a/comms/soundmodem/files/patch-soundcard_simd.h b/comms/soundmodem/files/patch-soundcard_simd.h
new file mode 100644
index 000000000000..9f0fa105eaa0
--- /dev/null
+++ b/comms/soundmodem/files/patch-soundcard_simd.h
@@ -0,0 +1,79 @@
+--- soundcard/simd.h.orig 2002-08-09 15:01:52.000000000 -0500
++++ soundcard/simd.h 2013-12-14 17:34:29.000000000 -0500
+@@ -54,16 +54,16 @@
+
+ #if !defined(USEMMX) && !defined(USEVIS)
+
+-extern inline void initsimd(int enable)
++static inline void initsimd(int enable)
+ {
+ }
+
+-extern inline int checksimd(void)
++static inline int checksimd(void)
+ {
+ return 0;
+ }
+
+-extern inline int simdfir16(const int16_t *p1, const int16_t *p2, unsigned int nr)
++static inline int simdfir16(const int16_t *p1, const int16_t *p2, unsigned int nr)
+ {
+ int s = 0;
+
+@@ -72,7 +72,7 @@
+ return s;
+ }
+
+-extern inline void simdpreparefpu(void)
++static inline void simdpreparefpu(void)
+ {
+ }
+
+@@ -80,9 +80,9 @@
+
+ extern unsigned int simd_enabled;
+
+-extern void initsimd(int enable);
++void initsimd(int enable);
+
+-extern inline int checksimd(void)
++static inline int checksimd(void)
+ {
+ return simd_enabled;
+ }
+@@ -91,7 +91,7 @@
+
+ #define MMXCLOBBER "st", "st(1)", "st(2)", "st(3)", "st(4)", "st(5)", "st(6)", "st(7)"
+
+-extern inline int simdfir16(const int16_t *p1, const int16_t *p2, unsigned int nr)
++static inline int simdfir16(const int16_t *p1, const int16_t *p2, unsigned int nr)
+ {
+ unsigned int i, j;
+ int s = 0;
+@@ -114,7 +114,7 @@
+ return s;
+ }
+
+-extern inline void simdpreparefpu(void)
++static inline void simdpreparefpu(void)
+ {
+ if (checksimd())
+ asm volatile("emms");
+@@ -122,7 +122,7 @@
+
+ #elif defined(USEVIS)
+
+-/*extern inline*/static int simdfir16(const int16_t *p1, const int16_t *p2, unsigned int nr)
++/*extern static inline*/static int simdfir16(const int16_t *p1, const int16_t *p2, unsigned int nr)
+ {
+ double dsum1, dsum2, dsum3, dsum4, arg1, arg2, arg3, arg4;
+ float sum, sum1, sum2;
+@@ -157,7 +157,7 @@
+ return s;
+ }
+
+-extern inline void simdpreparefpu(void)
++static inline void simdpreparefpu(void)
+ {
+ }
+
diff --git a/comms/soundmodem/files/patch-soundcard_winlog.c b/comms/soundmodem/files/patch-soundcard_winlog.c
new file mode 100644
index 000000000000..add5816cf9e3
--- /dev/null
+++ b/comms/soundmodem/files/patch-soundcard_winlog.c
@@ -0,0 +1,11 @@
+--- soundcard/winlog.c.orig 2013-12-13 08:55:02.797125391 -0500
++++ soundcard/winlog.c 2013-12-13 08:55:35.636772475 -0500
+@@ -44,7 +44,7 @@
+
+ /* ---------------------------------------------------------------------- */
+
+-unsigned int log_verblevel = 0;
++extern unsigned int log_verblevel = 0;
+ static HANDLE logh = NULL;
+
+ /* ---------------------------------------------------------------------- */
diff --git a/comms/soundmodem/pkg-plist b/comms/soundmodem/pkg-plist
index 24ad6a23356c..56633d5fdff6 100644
--- a/comms/soundmodem/pkg-plist
+++ b/comms/soundmodem/pkg-plist
@@ -5,6 +5,8 @@ include/modem.h
include/simd.h
share/locale/fr/LC_MESSAGES/soundmodem.mo
share/locale/sv/LC_MESSAGES/soundmodem.mo
+man/man8/soundmodem.8.gz
+man/man8/soundmodemconfig.8.gz
@dirrmtry share/locale/fr/LC_MESSAGES
@dirrmtry share/locale/sv/LC_MESSAGES
@dirrmtry share/locale/fr