]> code.delx.au - pulseaudio/blobdiff - src/Makefile.am
* split pa_cstrerror() into its own file polypcore/core-error.[ch]
[pulseaudio] / src / Makefile.am
index fbb14702f246693dd1f101a6cfd4fd4610e1029c..3a8c9bba7fdf0d6dafd1c5412ec2bb8cc6013007 100644 (file)
@@ -26,8 +26,6 @@ polypincludedir=$(includedir)/polyp
 polypcoreincludedir=$(includedir)/polypcore
 polypconfdir=$(sysconfdir)/polypaudio
 
-modlibdir=$(libdir)/polypaudio
-
 ###################################
 #            Defines              #
 ###################################
@@ -47,7 +45,7 @@ AM_CFLAGS = -I$(top_srcdir)/src
 AM_CFLAGS += $(PTHREAD_CFLAGS) -D_POSIX_PTHREAD_SEMANTICS
 AM_CFLAGS += $(LTDLINCL)
 AM_CFLAGS += $(LIBSAMPLERATE_CFLAGS) $(LIBSNDFILE_CFLAGS)
-AM_CFLAGS += -DDLSEARCHPATH=\"$(modlibdir)\"
+AM_CFLAGS += -DDLSEARCHPATH=\"$(modlibexecdir)\"
 #AM_CFLAGS += -DDLSEARCHPATH=\"$(shell pwd)\"
 AM_CFLAGS += -DDEFAULT_CONFIG_DIR=\"$(DEFAULT_CONFIG_DIR)\"
 AM_CFLAGS += -DPOLYPAUDIO_BINARY=\"$(POLYPAUDIO_BINARY)\"
@@ -80,6 +78,7 @@ EXTRA_DIST = \
                daemon/default.pa.in \
                depmod.py \
                daemon/esdcompat.sh.in \
+               utils/padsp \
                modules/module-defs.h.m4
 
 polypconf_DATA = \
@@ -113,7 +112,7 @@ polypaudio_LDADD = $(AM_LDADD) libpolypcore.la $(LIBLTDL) \
 if PREOPEN_MODS
 PREOPEN_LIBS = $(PREOPEN_MODS)
 else
-PREOPEN_LIBS = $(modlib_LTLIBRARIES)
+PREOPEN_LIBS = $(modlibexec_LTLIBRARIES)
 endif
 
 if FORCE_PREOPEN
@@ -146,32 +145,32 @@ endif
 bin_SCRIPTS = esdcompat.sh
 
 pacat_SOURCES = utils/pacat.c
-pacat_LDADD = $(AM_LDADD) libpolyp-@PA_MAJORMINOR@.la 
+pacat_LDADD = $(AM_LDADD) libpolyp.la 
 pacat_CFLAGS = $(AM_CFLAGS) 
 pacat_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 paplay_SOURCES = utils/paplay.c
-paplay_LDADD = $(AM_LDADD) libpolyp-@PA_MAJORMINOR@.la $(LIBSNDFILE_LIBS)
+paplay_LDADD = $(AM_LDADD) libpolyp.la $(LIBSNDFILE_LIBS)
 paplay_CFLAGS = $(AM_CFLAGS) $(LIBSNDFILE_CFLAGS)
 paplay_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 pactl_SOURCES = utils/pactl.c
-pactl_LDADD = $(AM_LDADD) libpolyp-@PA_MAJORMINOR@.la $(LIBSNDFILE_LIBS)
+pactl_LDADD = $(AM_LDADD) libpolyp.la $(LIBSNDFILE_LIBS)
 pactl_CFLAGS = $(AM_CFLAGS) $(LIBSNDFILE_CFLAGS)
 pactl_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 pacmd_SOURCES = utils/pacmd.c polypcore/pid.c polypcore/pid.h
 pacmd_CFLAGS = $(AM_CFLAGS)
-pacmd_LDADD = $(AM_LDADD) libpolyp-@PA_MAJORMINOR@.la
+pacmd_LDADD = $(AM_LDADD) libpolyp.la
 pacmd_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 pax11publish_SOURCES = utils/pax11publish.c
 pax11publish_CFLAGS = $(AM_CFLAGS) $(X_CFLAGS)
-pax11publish_LDADD = $(AM_LDADD) libpolyp-@PA_MAJORMINOR@.la $(X_PRE_LIBS) -lX11 $(X_LIBS) $(X_EXTRA_LIBS)
+pax11publish_LDADD = $(AM_LDADD) libpolyp.la $(X_PRE_LIBS) -lX11 $(X_LIBS) $(X_EXTRA_LIBS)
 pax11publish_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 pabrowse_SOURCES = utils/pabrowse.c
-pabrowse_LDADD = $(AM_LDADD) libpolyp-@PA_MAJORMINOR@.la libpolyp-browse-@PA_MAJORMINOR@.la
+pabrowse_LDADD = $(AM_LDADD) libpolyp.la libpolyp-browse.la
 pabrowse_CFLAGS = $(AM_CFLAGS)
 pabrowse_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
@@ -188,7 +187,9 @@ noinst_PROGRAMS = \
                voltest \
                memblockq-test \
                sync-playback \
-               channelmap-test
+               channelmap-test \
+               thread-mainloop-test \
+               utf8-test
 
 if HAVE_SIGXCPU
 noinst_PROGRAMS += \
@@ -208,21 +209,31 @@ endif
 
 mainloop_test_SOURCES = tests/mainloop-test.c
 mainloop_test_CFLAGS = $(AM_CFLAGS)
-mainloop_test_LDADD = $(AM_LDADD) libpolyp-@PA_MAJORMINOR@.la
+mainloop_test_LDADD = $(AM_LDADD) libpolyp.la
 mainloop_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
+thread_mainloop_test_SOURCES = tests/thread-mainloop-test.c
+thread_mainloop_test_CFLAGS = $(AM_CFLAGS)
+thread_mainloop_test_LDADD = $(AM_LDADD) libpolyp.la
+thread_mainloop_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
+
+utf8_test_SOURCES = tests/utf8-test.c
+utf8_test_CFLAGS = $(AM_CFLAGS)
+utf8_test_LDADD = $(AM_LDADD) libpolypcore.la
+utf8_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
+
 mcalign_test_SOURCES = tests/mcalign-test.c
 mcalign_test_CFLAGS = $(AM_CFLAGS)
 mcalign_test_LDADD = $(AM_LDADD) $(WINSOCK_LIBS) libpolypcore.la
 mcalign_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 pacat_simple_SOURCES = tests/pacat-simple.c
-pacat_simple_LDADD = $(AM_LDADD) libpolyp-@PA_MAJORMINOR@.la libpolyp-simple-@PA_MAJORMINOR@.la
+pacat_simple_LDADD = $(AM_LDADD) libpolyp.la libpolyp-simple.la
 pacat_simple_CFLAGS = $(AM_CFLAGS)
 pacat_simple_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 parec_simple_SOURCES = tests/parec-simple.c
-parec_simple_LDADD = $(AM_LDADD) libpolyp-@PA_MAJORMINOR@.la libpolyp-simple-@PA_MAJORMINOR@.la
+parec_simple_LDADD = $(AM_LDADD) libpolyp.la libpolyp-simple.la
 parec_simple_CFLAGS = $(AM_CFLAGS)
 parec_simple_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
@@ -233,12 +244,12 @@ strlist_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 voltest_SOURCES = tests/voltest.c
 voltest_CFLAGS = $(AM_CFLAGS)
-voltest_LDADD = $(AM_LDADD) libpolyp-@PA_MAJORMINOR@.la
+voltest_LDADD = $(AM_LDADD) libpolyp.la
 voltest_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 channelmap_test_SOURCES = tests/channelmap-test.c
 channelmap_test_CFLAGS = $(AM_CFLAGS)
-channelmap_test_LDADD = $(AM_LDADD) libpolyp-@PA_MAJORMINOR@.la
+channelmap_test_LDADD = $(AM_LDADD) libpolyp.la
 channelmap_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 cpulimit_test_SOURCES = tests/cpulimit-test.c daemon/cpulimit.c daemon/cpulimit.h
@@ -253,29 +264,21 @@ cpulimit_test2_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 mainloop_test_glib_SOURCES = $(mainloop_test_SOURCES)
 mainloop_test_glib_CFLAGS = $(mainloop_test_CFLAGS) $(GLIB20_CFLAGS) -DGLIB_MAIN_LOOP
-mainloop_test_glib_LDADD = $(mainloop_test_LDADD) $(GLIB20_LIBS) libpolyp-mainloop-glib-@PA_MAJORMINOR@.la
+mainloop_test_glib_LDADD = $(mainloop_test_LDADD) $(GLIB20_LIBS) libpolyp-mainloop-glib.la
 mainloop_test_glib_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 mainloop_test_glib12_SOURCES = $(mainloop_test_SOURCES)
 mainloop_test_glib12_CFLAGS = $(mainloop_test_CFLAGS) $(GLIB12_CFLAGS) -DGLIB_MAIN_LOOP
-mainloop_test_glib12_LDADD = $(mainloop_test_LDADD) $(GLIB12_LIBS) libpolyp-mainloop-glib12-@PA_MAJORMINOR@.la
+mainloop_test_glib12_LDADD = $(mainloop_test_LDADD) $(GLIB12_LIBS) libpolyp-mainloop-glib12.la
 mainloop_test_glib12_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
-memblockq_test_SOURCES = \
-       tests/memblockq-test.c \
-       polypcore/memblockq.c \
-       polypcore/log.c \
-       polypcore/memblock.c \
-       polypcore/xmalloc.c \
-       polypcore/util.c \
-       polypcore/mcalign.c \
-       polypcore/memchunk.c
+memblockq_test_SOURCES = tests/memblockq-test.c
 memblockq_test_CFLAGS = $(AM_CFLAGS)
-memblockq_test_LDADD = $(AM_LDADD) $(WINSOCK_LIBS)
+memblockq_test_LDADD = $(AM_LDADD) $(WINSOCK_LIBS) libpolypcore.la
 memblockq_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 sync_playback_SOURCES = tests/sync-playback.c
-sync_playback_LDADD = $(AM_LDADD) libpolyp-@PA_MAJORMINOR@.la
+sync_playback_LDADD = $(AM_LDADD) libpolyp.la
 sync_playback_CFLAGS = $(AM_CFLAGS) 
 sync_playback_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
@@ -286,79 +289,99 @@ sync_playback_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 polypinclude_HEADERS = \
                polyp/cdecl.h \
                polyp/channelmap.h \
-               polyp/glib-mainloop.h \
-               polyp/mainloop.h \
-               polyp/mainloop-api.h \
-               polyp/mainloop-signal.h \
-               polyp/polypaudio.h \
                polyp/context.h \
                polyp/def.h \
                polyp/error.h \
                polyp/introspect.h \
+               polyp/mainloop.h \
+               polyp/mainloop-api.h \
+               polyp/mainloop-signal.h \
                polyp/operation.h \
+               polyp/polypaudio.h \
+               polyp/sample.h \
                polyp/scache.h \
                polyp/simple.h \
                polyp/stream.h \
                polyp/subscribe.h \
+               polyp/thread-mainloop.h \
+               polyp/timeval.h \
+               polyp/utf8.h \
+               polyp/util.h \
                polyp/version.h \
-               polyp/sample.h \
-               polyp/volume.h
+               polyp/volume.h \
+               polyp/xmalloc.h
 
 if HAVE_HOWL
 polypinclude_HEADERS += \
                polyp/browser.h
 endif
 
+if HAVE_GLIB20
+polypinclude_HEADERS += \
+               polyp/glib-mainloop.h
+else
+if HAVE_GLIB12
+polypinclude_HEADERS += \
+               polyp/glib-mainloop.h
+endif
+endif
+
 lib_LTLIBRARIES = \
-               libpolyp-@PA_MAJORMINOR@.la \
-               libpolyp-simple-@PA_MAJORMINOR@.la
+               libpolyp.la \
+               libpolyp-simple.la
 
 if HAVE_HOWL
 lib_LTLIBRARIES += \
-               libpolyp-browse-@PA_MAJORMINOR@.la
+               libpolyp-browse.la
 endif
 
 if HAVE_GLIB20
 lib_LTLIBRARIES += \
-               libpolyp-mainloop-glib-@PA_MAJORMINOR@.la
+               libpolyp-mainloop-glib.la
 endif
 
 if HAVE_GLIB12
 lib_LTLIBRARIES += \
-               libpolyp-mainloop-glib12-@PA_MAJORMINOR@.la
+               libpolyp-mainloop-glib12.la
 endif
 
 # Public interface
-libpolyp_@PA_MAJORMINOR@_la_SOURCES = \
+libpolyp_la_SOURCES = \
                polyp/cdecl.h \
                polyp/channelmap.c polyp/channelmap.h \
                polyp/client-conf.c polyp/client-conf.h \
-               polyp/mainloop-api.c polyp/mainloop-api.h \
-               polyp/polypaudio.h \
                polyp/context.c polyp/context.h \
                polyp/def.h \
                polyp/error.c polyp/error.h \
                polyp/internal.h \
                polyp/introspect.c polyp/introspect.h \
+               polyp/mainloop.c polyp/mainloop.h \
+               polyp/mainloop-api.c polyp/mainloop-api.h \
+               polyp/mainloop-signal.c polyp/mainloop-signal.h \
                polyp/operation.c polyp/operation.h \
+               polyp/polypaudio.h \
+               polyp/sample.c polyp/sample.h \
                polyp/scache.c polyp/scache.h \
                polyp/stream.c polyp/stream.h \
                polyp/subscribe.c polyp/subscribe.h \
-               polyp/sample.c polyp/sample.h \
+               polyp/thread-mainloop.c polyp/thread-mainloop.h \
+               polyp/timeval.c polyp/timeval.h \
+               polyp/utf8.c polyp/utf8.h \
+               polyp/util.c polyp/util.h \
                polyp/volume.c polyp/volume.h \
-               polyp/mainloop.c polyp/mainloop.h \
-               polyp/mainloop-signal.c polyp/mainloop-signal.h \
-               polypcore/poll.c polypcore/poll.h
+               polyp/xmalloc.c polyp/xmalloc.h
 
 # Internal stuff that is shared with libpolypcore
-libpolyp_@PA_MAJORMINOR@_la_SOURCES += \
+libpolyp_la_SOURCES += \
                polypcore/authkey.c polypcore/authkey.h \
                polypcore/conf-parser.c polypcore/conf-parser.h \
+               polypcore/core-util.c polypcore/core-util.h \
                polypcore/dynarray.c polypcore/dynarray.h \
                polypcore/gccmacro.h \
                polypcore/hashmap.c polypcore/hashmap.h \
                polypcore/idxset.c polypcore/idxset.h \
                polypcore/iochannel.c polypcore/iochannel.h \
+               polypcore/llist.h \
                polypcore/log.c polypcore/log.h \
                polypcore/mcalign.c polypcore/mcalign.h \
                polypcore/memblock.c polypcore/memblock.h \
@@ -368,6 +391,8 @@ libpolyp_@PA_MAJORMINOR@_la_SOURCES += \
                polypcore/packet.c polypcore/packet.h \
                polypcore/parseaddr.c polypcore/parseaddr.h \
                polypcore/pdispatch.c polypcore/pdispatch.h \
+               polypcore/pipe.c polypcore/pipe.h \
+               polypcore/poll.c polypcore/poll.h \
                polypcore/pstream.c polypcore/pstream.h \
                polypcore/pstream-util.c polypcore/pstream-util.h \
                polypcore/queue.c polypcore/queue.h \
@@ -377,55 +402,70 @@ libpolyp_@PA_MAJORMINOR@_la_SOURCES += \
                polypcore/strbuf.c polypcore/strbuf.h \
                polypcore/strlist.c polypcore/strlist.h \
                polypcore/tagstruct.c polypcore/tagstruct.h \
-               polypcore/util.c polypcore/util.h \
-               polypcore/winsock.h \
-               polypcore/xmalloc.c polypcore/xmalloc.h \
-               polypcore/llist.h
+               polypcore/core-error.c polypcore/core-error.h \
+               polypcore/winsock.h
 
 if OS_IS_WIN32
-libpolyp_@PA_MAJORMINOR@_la_SOURCES += \
+libpolyp_la_SOURCES += \
                polypcore/dllmain.c 
 endif
 
 if HAVE_X11
-libpolyp_@PA_MAJORMINOR@_la_SOURCES += \
+libpolyp_la_SOURCES += \
                polyp/client-conf-x11.c polyp/client-conf-x11.h \
                polypcore/x11prop.c polypcore/x11prop.h
 endif
 
-libpolyp_@PA_MAJORMINOR@_la_CFLAGS = $(AM_CFLAGS)
-libpolyp_@PA_MAJORMINOR@_la_LDFLAGS = -version-info 0:0:0
-libpolyp_@PA_MAJORMINOR@_la_LIBADD = $(AM_LIBADD) $(WINSOCK_LIBS)
+libpolyp_la_CFLAGS = $(AM_CFLAGS)
+libpolyp_la_LDFLAGS = -version-info $(LIBPOLYP_VERSION_INFO)
+libpolyp_la_LIBADD = $(AM_LIBADD) $(WINSOCK_LIBS)
 
 if HAVE_X11
-libpolyp_@PA_MAJORMINOR@_la_CFLAGS += $(X_CFLAGS)
-libpolyp_@PA_MAJORMINOR@_la_LDFLAGS += $(X_PRE_LIBS) -lX11 $(X_LIBS) $(X_EXTRA_LIBS)
+libpolyp_la_CFLAGS += $(X_CFLAGS)
+libpolyp_la_LDFLAGS += $(X_PRE_LIBS) -lX11 $(X_LIBS) $(X_EXTRA_LIBS)
 endif
 
 if HAVE_LIBASYNCNS
-libpolyp_@PA_MAJORMINOR@_la_CFLAGS += $(LIBASYNCNS_CFLAGS)
-libpolyp_@PA_MAJORMINOR@_la_LIBADD += $(LIBASYNCNS_LIBS)
+libpolyp_la_CFLAGS += $(LIBASYNCNS_CFLAGS)
+libpolyp_la_LIBADD += $(LIBASYNCNS_LIBS)
 endif
 
-libpolyp_simple_@PA_MAJORMINOR@_la_SOURCES = polyp/simple.c polyp/simple.h 
-libpolyp_simple_@PA_MAJORMINOR@_la_CFLAGS = $(AM_CFLAGS)
-libpolyp_simple_@PA_MAJORMINOR@_la_LIBADD = $(AM_LIBADD) libpolyp-@PA_MAJORMINOR@.la
-libpolyp_simple_@PA_MAJORMINOR@_la_LDFLAGS = -version-info 0:0:0
+libpolyp_simple_la_SOURCES = polyp/simple.c polyp/simple.h 
+libpolyp_simple_la_CFLAGS = $(AM_CFLAGS)
+libpolyp_simple_la_LIBADD = $(AM_LIBADD) libpolyp.la
+libpolyp_simple_la_LDFLAGS = -version-info $(LIBPOLYP_SIMPLE_VERSION_INFO)
 
-libpolyp_browse_@PA_MAJORMINOR@_la_SOURCES = polyp/browser.c polyp/browser.h 
-libpolyp_browse_@PA_MAJORMINOR@_la_CFLAGS = $(AM_CFLAGS) $(HOWL_CFLAGS)
-libpolyp_browse_@PA_MAJORMINOR@_la_LIBADD = $(AM_LIBADD) libpolyp-@PA_MAJORMINOR@.la $(HOWL_LIBS)
-libpolyp_browse_@PA_MAJORMINOR@_la_LDFLAGS = -version-info 0:0:0 
+libpolyp_browse_la_SOURCES = polyp/browser.c polyp/browser.h 
+libpolyp_browse_la_CFLAGS = $(AM_CFLAGS) $(HOWL_CFLAGS)
+libpolyp_browse_la_LIBADD = $(AM_LIBADD) libpolyp.la $(HOWL_LIBS)
+libpolyp_browse_la_LDFLAGS = -version-info $(LIBPOLYP_BROWSE_VERSION_INFO)
 
-libpolyp_mainloop_glib_@PA_MAJORMINOR@_la_SOURCES = polyp/glib-mainloop.h polyp/glib-mainloop.c
-libpolyp_mainloop_glib_@PA_MAJORMINOR@_la_CFLAGS = $(AM_CFLAGS) $(GLIB20_CFLAGS)
-libpolyp_mainloop_glib_@PA_MAJORMINOR@_la_LIBADD = $(AM_LIBADD) libpolyp-@PA_MAJORMINOR@.la $(GLIB20_LIBS)
-libpolyp_mainloop_glib_@PA_MAJORMINOR@_la_LDFLAGS = -version-info 0:0:0
+libpolyp_mainloop_glib_la_SOURCES = polyp/glib-mainloop.h polyp/glib-mainloop.c
+libpolyp_mainloop_glib_la_CFLAGS = $(AM_CFLAGS) $(GLIB20_CFLAGS)
+libpolyp_mainloop_glib_la_LIBADD = $(AM_LIBADD) libpolyp.la $(GLIB20_LIBS)
+libpolyp_mainloop_glib_la_LDFLAGS = -version-info $(LIBPOLYP_MAINLOOP_GLIB_VERSION_INFO)
 
-libpolyp_mainloop_glib12_@PA_MAJORMINOR@_la_SOURCES = polyp/glib-mainloop.h polyp/glib12-mainloop.c
-libpolyp_mainloop_glib12_@PA_MAJORMINOR@_la_CFLAGS = $(AM_CFLAGS) $(GLIB12_CFLAGS)
-libpolyp_mainloop_glib12_@PA_MAJORMINOR@_la_LIBADD = $(AM_LIBADD) libpolyp-@PA_MAJORMINOR@.la $(GLIB12_LIBS)
-libpolyp_mainloop_glib12_@PA_MAJORMINOR@_la_LDFLAGS = -version-info 0:0:0
+libpolyp_mainloop_glib12_la_SOURCES = polyp/glib-mainloop.h polyp/glib12-mainloop.c
+libpolyp_mainloop_glib12_la_CFLAGS = $(AM_CFLAGS) $(GLIB12_CFLAGS)
+libpolyp_mainloop_glib12_la_LIBADD = $(AM_LIBADD) libpolyp.la $(GLIB12_LIBS)
+libpolyp_mainloop_glib12_la_LDFLAGS = -version-info $(LIBPOLYP_MAINLOOP_GLIB_VERSION_INFO)
+
+###################################
+#         OSS emulation           #
+###################################
+
+if HAVE_OSS
+
+lib_LTLIBRARIES += libpolypdsp.la
+
+bin_SCRIPTS += utils/padsp
+
+endif
+
+libpolypdsp_la_SOURCES = utils/padsp.c
+libpolypdsp_la_CFLAGS = $(AM_CFLAGS)
+libpolypdsp_la_LIBADD = $(AM_LIBADD) libpolyp.la
+libpolypdsp_la_LDFLAGS = -avoid-version
 
 ###################################
 #      Daemon core library        #
@@ -441,6 +481,7 @@ polypcoreinclude_HEADERS = \
                polypcore/core-scache.h \
                polypcore/core-subscribe.h \
                polypcore/conf-parser.h \
+               polypcore/core-util.h \
                polypcore/dynarray.h \
                polypcore/g711.h \
                polypcore/hashmap.h \
@@ -470,20 +511,23 @@ polypcoreinclude_HEADERS = \
                polypcore/source.h \
                polypcore/source-output.h \
                polypcore/strbuf.h \
-               polypcore/tokenizer.h \
-               polypcore/util.h \
-               polypcore/xmalloc.h
+               polypcore/tokenizer.h
 
 lib_LTLIBRARIES += libpolypcore.la
 
 # Some public stuff is used even in the core.
 libpolypcore_la_SOURCES = \
                polyp/channelmap.c polyp/channelmap.h \
+               polyp/error.c polyp/error.h \
                polyp/mainloop.c polyp/mainloop.h \
                polyp/mainloop-api.c polyp/mainloop-api.h \
                polyp/mainloop-signal.c polyp/mainloop-signal.h \
                polyp/sample.c polyp/sample.h \
-               polyp/volume.c polyp/volume.h
+               polyp/timeval.c polyp/timeval.h \
+               polyp/utf8.c polyp/utf8.h \
+               polyp/util.c polyp/util.h \
+               polyp/volume.c polyp/volume.h \
+               polyp/xmalloc.c polyp/xmalloc.h
 
 # Pure core stuff (some are shared in libpolyp though).
 libpolypcore_la_SOURCES += \
@@ -495,6 +539,7 @@ libpolypcore_la_SOURCES += \
                polypcore/core.c polypcore/core.h \
                polypcore/core-scache.c polypcore/core-scache.h \
                polypcore/core-subscribe.c polypcore/core-subscribe.h \
+               polypcore/core-util.c polypcore/core-util.h \
                polypcore/dynarray.c polypcore/dynarray.h \
                polypcore/endianmacros.h \
                polypcore/g711.c polypcore/g711.h \
@@ -510,6 +555,7 @@ libpolypcore_la_SOURCES += \
                polypcore/module.c polypcore/module.h \
                polypcore/namereg.c polypcore/namereg.h \
                polypcore/pid.c polypcore/pid.h \
+               polypcore/pipe.c polypcore/pipe.h \
                polypcore/play-memchunk.c polypcore/play-memchunk.h \
                polypcore/poll.c polypcore/poll.h \
                polypcore/props.c polypcore/props.h \
@@ -529,9 +575,8 @@ libpolypcore_la_SOURCES += \
                polypcore/source-output.c polypcore/source-output.h \
                polypcore/strbuf.c polypcore/strbuf.h \
                polypcore/tokenizer.c polypcore/tokenizer.h \
-               polypcore/util.c polypcore/util.h \
                polypcore/winsock.h \
-               polypcore/xmalloc.c polypcore/xmalloc.h
+               polypcore/core-error.c polypcore/core-error.h
 
 if OS_IS_WIN32
 libpolypcore_la_SOURCES += \
@@ -539,7 +584,7 @@ libpolypcore_la_SOURCES += \
 endif
 
 libpolypcore_la_CPPFLAGS = $(AM_CPPFLAGS) $(LIBOIL_CFLAGS)
-libpolypcore_la_LDFLAGS = -avoid-version
+libpolypcore_la_LDFLAGS = -version-info $(LIBPOLYPCORE_VERSION_INFO)
 libpolypcore_la_LIBADD = $(AM_LIBADD) $(LIBLTDL) $(LIBSAMPLERATE_LIBS) $(LIBSNDFILE_LIBS) $(WINSOCK_LIBS) $(LIBOIL_LIBS)
 
 ###################################
@@ -571,11 +616,11 @@ polypcoreinclude_HEADERS += \
                polypcore/protocol-http.h
 
 ### Warning! Due to an obscure bug in libtool/automake it is required
-### that the libraries in modlib_LTLIBRARIES are specified in-order,
+### that the libraries in modlibexec_LTLIBRARIES are specified in-order,
 ### i.e. libraries near the end of the list depend on libraries near
 ### the head, and not the other way!
 
-modlib_LTLIBRARIES = \
+modlibexec_LTLIBRARIES = \
                libsocket-util.la \
                libiochannel.la \
                libsocket-server.la \
@@ -599,7 +644,7 @@ modlib_LTLIBRARIES = \
 
 # We need to emulate sendmsg/recvmsg to support this on Win32
 if !OS_IS_WIN32
-modlib_LTLIBRARIES += \
+modlibexec_LTLIBRARIES += \
                librtp.la
 endif
 
@@ -608,7 +653,7 @@ polypcoreinclude_HEADERS += \
                polypcore/x11wrap.h \
                polypcore/x11prop.h
 
-modlib_LTLIBRARIES += \
+modlibexec_LTLIBRARIES += \
                libx11wrap.la \
                libx11prop.la
 endif
@@ -718,7 +763,7 @@ libx11prop_la_LIBADD = $(AM_LIBADD) $(X_PRE_LIBS) -lX11 $(X_LIBS) $(X_EXTRA_LIBS
 #        Plug-in libraries        #
 ###################################
 
-modlib_LTLIBRARIES += \
+modlibexec_LTLIBRARIES += \
                module-cli.la \
                module-cli-protocol-tcp.la \
                module-simple-protocol-tcp.la \
@@ -732,17 +777,18 @@ modlib_LTLIBRARIES += \
                module-null-sink.la \
                module-esound-sink.la \
                module-http-protocol-tcp.la \
-               module-detect.la
+               module-detect.la \
+               module-volume-restore.la
 
 # See comment at librtp.la above
 if !OS_IS_WIN32
-modlib_LTLIBRARIES += \
+modlibexec_LTLIBRARIES += \
                module-rtp-send.la \
                module-rtp-recv.la
 endif
 
 if HAVE_AF_UNIX
-modlib_LTLIBRARIES += \
+modlibexec_LTLIBRARIES += \
                module-cli-protocol-unix.la \
                module-simple-protocol-unix.la \
                module-esound-protocol-unix.la \
@@ -751,71 +797,71 @@ modlib_LTLIBRARIES += \
 endif
 
 if HAVE_MKFIFO
-modlib_LTLIBRARIES += \
+modlibexec_LTLIBRARIES += \
                module-pipe-sink.la \
                module-pipe-source.la
 endif
 
 if !OS_IS_WIN32
-modlib_LTLIBRARIES += \
+modlibexec_LTLIBRARIES += \
                module-esound-compat-spawnfd.la \
                module-esound-compat-spawnpid.la
 endif
 
 if HAVE_REGEX
-modlib_LTLIBRARIES += \
+modlibexec_LTLIBRARIES += \
                module-match.la
 endif
 
 if HAVE_X11
-modlib_LTLIBRARIES += \
+modlibexec_LTLIBRARIES += \
                module-x11-bell.la \
                module-x11-publish.la
 endif
 
 if HAVE_OSS
-modlib_LTLIBRARIES += \
+modlibexec_LTLIBRARIES += \
                liboss-util.la \
                module-oss.la \
                module-oss-mmap.la
 endif
 
 if HAVE_ALSA
-modlib_LTLIBRARIES += \
+modlibexec_LTLIBRARIES += \
                libalsa-util.la \
                module-alsa-sink.la \
                module-alsa-source.la
 endif
 
 if HAVE_SOLARIS
-modlib_LTLIBRARIES += \
+modlibexec_LTLIBRARIES += \
                module-solaris.la
 endif
 
 if HAVE_HOWL
-modlib_LTLIBRARIES += \
+modlibexec_LTLIBRARIES += \
                libhowl-wrap.la \
                module-zeroconf-publish.la
 endif
 
 if HAVE_LIRC
-modlib_LTLIBRARIES += \
+modlibexec_LTLIBRARIES += \
                module-lirc.la
 endif
 
 if HAVE_EVDEV
-modlib_LTLIBRARIES += \
+modlibexec_LTLIBRARIES += \
                module-mmkbd-evdev.la
 endif
 
 if HAVE_JACK
-modlib_LTLIBRARIES += \
+modlibexec_LTLIBRARIES += \
                module-jack-sink.la \
                module-jack-source.la
 endif
 
 if OS_IS_WIN32
-modlib_LTLIBRARIES += \
+modlibexec_LTLIBRARIES += \
                module-waveout.la
 endif
 
@@ -860,7 +906,8 @@ SYMDEF_FILES = \
                modules/rtp/module-rtp-send-symdef.h \
                modules/rtp/module-rtp-recv-symdef.h \
                modules/module-jack-sink-symdef.h \
-               modules/module-jack-source-symdef.h 
+               modules/module-jack-source-symdef.h \
+               modules/module-volume-restore-symdef.h
 
 
 EXTRA_DIST += $(SYMDEF_FILES)
@@ -1077,6 +1124,12 @@ module_detect_la_LDFLAGS = -module -avoid-version
 module_detect_la_LIBADD = $(AM_LIBADD) libpolypcore.la
 module_detect_la_CFLAGS = $(AM_CFLAGS)
 
+# Volume restore module
+module_volume_restore_la_SOURCES = modules/module-volume-restore.c
+module_volume_restore_la_LDFLAGS = -module -avoid-version
+module_volume_restore_la_LIBADD = $(AM_LIBADD) libpolypcore.la
+module_volume_restore_la_CFLAGS = $(AM_CFLAGS)
+
 # RTP modules
 module_rtp_send_la_SOURCES = modules/rtp/module-rtp-send.c
 module_rtp_send_la_LDFLAGS = -module -avoid-version
@@ -1108,7 +1161,7 @@ suid: polypaudio
        chown root $<
        chmod u+s $<
 
-CLEANFILES=esdcompat.sh client.conf default.pa daemon.conf
+CLEANFILES = esdcompat.sh client.conf default.pa daemon.conf
 
 esdcompat.sh: daemon/esdcompat.sh.in Makefile
        sed -e 's,@PACKAGE_VERSION\@,$(PACKAGE_VERSION),g' \
@@ -1127,10 +1180,13 @@ default.pa: daemon/default.pa.in Makefile
 endif
 
 daemon.conf: daemon/daemon.conf.in Makefile
-       sed -e 's,@DLSEARCHPATH\@,$(modlibdir),g' \
+       sed -e 's,@DLSEARCHPATH\@,$(modlibexecdir),g' \
                -e 's,@DEFAULT_CONFIG_FILE\@,$(DEFAULT_CONFIG_DIR),g' < $< > $@
 
 install-exec-hook:
        chown root $(DESTDIR)$(bindir)/polypaudio ; true
        chmod u+s $(DESTDIR)$(bindir)/polypaudio
        ln -sf pacat $(DESTDIR)$(bindir)/parec
+       rm -f $(DESTDIR)$(modlibexecdir)/*.a
+
+.PHONY: utils/padsp