diff --git a/.gitignore b/.gitignore index cc78368..b97f3d4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,52 @@ -*.so -*.o +module-config.h +module-config.h.in +build-aux/* +.deps/ +.libs/ +*.la +*.lo + +# http://www.gnu.org/software/automake + +Makefile +Makefile.in +/ar-lib +/mdate-sh +/py-compile +/test-driver +/ylwrap + +# http://www.gnu.org/software/autoconf + +autom4te.cache +/autoscan.log +/autoscan-*.log +/aclocal.m4 +/compile +/config.guess +/config.log +/config.status +/config.sub +/configure +/configure.scan +/depcomp +/install-sh +/missing +/stamp-h1 + +# https://www.gnu.org/software/libtool/ + +/ltmain.sh + +# http://www.gnu.org/software/texinfo + +/texinfo.tex + +# http://www.gnu.org/software/m4/ + +libtool +m4/libtool.m4 +m4/ltoptions.m4 +m4/ltsugar.m4 +m4/ltversion.m4 +m4/lt~obsolete.m4 diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..3bc4e60 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,4 @@ +ACLOCAL_AMFLAGS = -I m4 + +SUBDIRS = src +EXTRA_DIST = bootstrap.sh diff --git a/bootstrap.sh b/bootstrap.sh new file mode 100755 index 0000000..3b076d1 --- /dev/null +++ b/bootstrap.sh @@ -0,0 +1,2 @@ +#!/bin/sh +autoreconf -ivf diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..534e4e4 --- /dev/null +++ b/configure.ac @@ -0,0 +1,73 @@ +# -*- Autoconf -*- +# Process this file with autoconf to produce a configure script. + +AC_PREREQ([2.65]) +AC_INIT([pulseaudio-module-xrdp], [0.1], [xrdp-devel@googlegroups.com]) +# specify module-config.h so we don't collide with pulseaudio's config.h +AC_CONFIG_HEADERS([module-config.h]) +AC_CONFIG_SRCDIR([src]) +AC_CONFIG_AUX_DIR([build-aux]) +AC_CONFIG_MACRO_DIRS([m4]) + +AM_PROG_AR +AM_INIT_AUTOMAKE([-Wall foreign silent-rules]) +AM_SILENT_RULES([yes]) + +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) + +# get system's pulseaudio version +m4_define([pa_major], [`echo $(pulseaudio --version) | cut -d' ' -f2 | cut -d. -f1`]) +m4_define([pa_minor], [`echo $(pulseaudio --version) | cut -d' ' -f2 | cut -d. -f2`]) + +AC_SUBST([PA_MAJOR], [pa_major]) +AC_SUBST([PA_MINOR], [pa_minor]) +AC_SUBST([PA_MAJORMINOR], [pa_major].[pa_minor]) + +# Build shared libraries +LT_INIT([shared disable-static]) + +# Checks for programs. +AC_PROG_CXX +AC_PROG_AWK +AC_PROG_CC +AC_PROG_CPP +AC_PROG_INSTALL +AC_PROG_LN_S +AC_PROG_MAKE_SET + +# Checks for libraries. +PKG_CHECK_MODULES([XRDP], [xrdp >= 0.9.0]) +AC_SUBST(XRDP_CFLAGS) + +m4_define([PULSE_MSG], [pulseaudio source code directory not specified. + please download the required sources from: + https://freedesktop.org/software/pulseaudio/releases/ + and run ./configure PULSE_DIR=]) + +AC_ARG_VAR([PULSE_DIR], [pulseaudio source code directory]) +AS_IF([test x"$PULSE_DIR" == x""], + AC_MSG_ERROR([m4_text_box([PULSE_MSG])]) + ) + +# copied from pulseaudio +AC_ARG_WITH( + [module-dir], + [AS_HELP_STRING([--with-module-dir], + [Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINOR}/modules)])], + [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINOR}/modules"]) +AC_SUBST(modlibexecdir) + +# Checks for header files. +AC_CHECK_HEADERS([fcntl.h limits.h netinet/in.h stdlib.h string.h sys/ioctl.h sys/socket.h unistd.h]) + +# Checks for typedefs, structures, and compiler characteristics. +AC_TYPE_INT64_T +AC_TYPE_SIZE_T +AC_TYPE_UINT32_T + +# Checks for library functions. +AC_CHECK_FUNCS([memset socket]) + +AC_CONFIG_FILES([Makefile + src/Makefile]) +AC_OUTPUT diff --git a/src/Makefile.am b/src/Makefile.am new file mode 100644 index 0000000..9a82e18 --- /dev/null +++ b/src/Makefile.am @@ -0,0 +1,18 @@ +AM_CFLAGS = -O2 \ + -fPIC \ + -I $(PULSE_DIR) \ + -I $(PULSE_DIR)/src \ + $(XRDP_CFLAGS) + +AM_LDFLAGS = -module \ + -avoid-version + +modlibexec_LTLIBRARIES = module-xrdp-sink.la module-xrdp-source.la + +module_xrdp_sink_la_SOURCES = module-xrdp-sink.c +module_xrdp_sink_la_CFLAGS = $(AM_CFLAGS) +module_xrdp_sink_la_LDFLAGS = $(AM_LDFLAGS) + +module_xrdp_source_la_SOURCES = module-xrdp-source.c +module_xrdp_source_la_CFLAGS = $(AM_CFLAGS) +module_xrdp_source_la_LDFLAGS = $(AM_LDFLAGS) diff --git a/module-xrdp-sink-symdef.h b/src/module-xrdp-sink-symdef.h similarity index 100% rename from module-xrdp-sink-symdef.h rename to src/module-xrdp-sink-symdef.h diff --git a/module-xrdp-sink.c b/src/module-xrdp-sink.c similarity index 99% rename from module-xrdp-sink.c rename to src/module-xrdp-sink.c index 768b079..5daaf85 100644 --- a/module-xrdp-sink.c +++ b/src/module-xrdp-sink.c @@ -21,6 +21,7 @@ * see pulse-notes.txt */ +// config.h from pulseaudio sources #ifdef HAVE_CONFIG_H #include #endif @@ -58,6 +59,9 @@ #include #include +#include + + /* defined in pulse/version.h */ #if PA_PROTOCOL_VERSION > 28 /* these used to be defined in pulsecore/macro.h */ @@ -68,7 +72,7 @@ typedef bool pa_bool_t; #endif #include "module-xrdp-sink-symdef.h" -#include "../../../common/xrdp_sockets.h" + PA_MODULE_AUTHOR("Jay Sorg"); PA_MODULE_DESCRIPTION("xrdp sink"); diff --git a/module-xrdp-source-symdef.h b/src/module-xrdp-source-symdef.h similarity index 100% rename from module-xrdp-source-symdef.h rename to src/module-xrdp-source-symdef.h diff --git a/module-xrdp-source.c b/src/module-xrdp-source.c similarity index 99% rename from module-xrdp-source.c rename to src/module-xrdp-source.c index a7dd19c..a8ec94b 100644 --- a/module-xrdp-source.c +++ b/src/module-xrdp-source.c @@ -20,6 +20,7 @@ USA. ***/ +// config.h from pulseaudio sources #ifdef HAVE_CONFIG_H #include #endif @@ -45,6 +46,9 @@ #include #include +#include + + /* defined in pulse/version.h */ #if PA_PROTOCOL_VERSION > 28 /* these used to be defined in pulsecore/macro.h */ @@ -55,7 +59,6 @@ typedef bool pa_bool_t; #endif #include "module-xrdp-source-symdef.h" -#include "../../../common/xrdp_sockets.h" PA_MODULE_AUTHOR("Laxmikant Rashinkar"); PA_MODULE_DESCRIPTION("xrdp source");