[Pkg-mpd-commits] [pkg-mpd] 04/06: New upstream version 0.20.13
Florian Schlichting
fsfs at moszumanska.debian.org
Tue Dec 19 05:46:11 UTC 2017
This is an automated email from the git hooks/post-receive script.
fsfs pushed a commit to branch master
in repository pkg-mpd.
commit 00875a382aab0bf986f6c353148fead52b07eb5d
Author: Florian Schlichting <fsfs at debian.org>
Date: Tue Dec 19 06:21:14 2017 +0100
New upstream version 0.20.13
---
Makefile.am | 6 +
Makefile.in | 526 ++++++++++++++++++---
NEWS | 15 +
android/build.py | 16 +-
configure | 24 +-
configure.ac | 6 +-
doc/doxygen.conf | 2 +-
python/build/autotools.py | 46 ++
python/build/boost.py | 23 +
python/build/cmdline.py | 29 ++
python/build/dirs.py | 9 +
python/build/download.py | 26 +
python/build/ffmpeg.py | 54 +++
python/build/libs.py | 129 +++++
python/build/project.py | 59 +++
python/build/tar.py | 11 +
python/build/verify.py | 42 ++
python/build/zlib.py | 22 +
src/CommandLine.cxx | 4 +-
src/LocateUri.hxx | 2 +-
src/LogBackend.cxx | 2 +-
src/LogInit.cxx | 4 +-
src/LogLevel.hxx | 2 +-
src/Main.cxx | 12 +-
src/Main.hxx | 2 +-
src/MusicChunk.hxx | 10 +-
src/StateFile.cxx | 19 +-
src/StateFile.hxx | 4 +
src/Stats.cxx | 4 +-
src/TimePrint.cxx | 4 +-
src/client/ClientFile.cxx | 2 +-
src/client/ClientMessage.hxx | 2 +-
src/client/ClientNew.cxx | 2 +-
src/command/CommandResult.hxx | 2 +-
src/command/FileCommands.cxx | 4 +-
src/command/StorageCommands.cxx | 4 +-
src/config/ConfigOption.hxx | 4 +-
src/config/ConfigPath.cxx | 6 +-
src/db/plugins/simple/Directory.cxx | 4 +-
src/db/plugins/simple/Directory.hxx | 1 -
src/db/plugins/simple/Mount.cxx | 4 +-
src/db/plugins/simple/Mount.hxx | 2 +-
src/db/plugins/simple/SimpleDatabasePlugin.cxx | 17 +-
src/db/update/UpdateIO.cxx | 2 +-
src/db/update/Walk.cxx | 10 +-
src/db/update/Walk.hxx | 2 +-
src/decoder/plugins/FlacIOHandle.cxx | 2 +-
src/event/MultiSocketMonitor.cxx | 4 +-
src/event/MultiSocketMonitor.hxx | 6 +-
src/event/ServerSocket.cxx | 2 +-
src/event/SignalMonitor.cxx | 2 +-
src/event/SignalMonitor.hxx | 2 +-
src/event/SocketMonitor.cxx | 2 +-
src/event/SocketMonitor.hxx | 2 +-
src/fs/AllocatedPath.cxx | 4 +-
src/fs/Charset.cxx | 10 +-
src/fs/Charset.hxx | 2 +-
src/fs/CheckFile.cxx | 2 +-
src/fs/DirectoryReader.cxx | 2 +-
src/fs/DirectoryReader.hxx | 2 +-
src/fs/FileInfo.hxx | 20 +-
src/fs/FileSystem.cxx | 8 +-
src/fs/FileSystem.hxx | 16 +-
src/fs/Glob.hxx | 8 +-
src/fs/Limits.hxx | 2 +-
src/fs/StandardDirectory.cxx | 14 +-
src/fs/StandardDirectory.hxx | 2 +-
src/fs/Traits.cxx | 2 +-
src/fs/Traits.hxx | 20 +-
src/fs/io/FileOutputStream.cxx | 4 +-
src/fs/io/FileOutputStream.hxx | 12 +-
src/fs/io/FileReader.cxx | 2 +-
src/fs/io/FileReader.hxx | 16 +-
src/input/InputPlugin.hxx | 2 +-
src/input/plugins/CurlInputPlugin.cxx | 4 +-
src/lib/icu/CaseFold.cxx | 4 +-
src/lib/icu/Collate.cxx | 4 +-
src/lib/upnp/Action.hxx | 2 +-
src/lib/upnp/Callback.hxx | 2 +-
src/lib/upnp/ClientInit.cxx | 2 +-
src/lib/upnp/ClientInit.hxx | 2 +-
src/lib/upnp/Compat.hxx | 9 +-
src/lib/upnp/ContentDirectoryService.hxx | 2 +-
src/lib/upnp/Discovery.cxx | 2 +-
src/lib/upnp/Discovery.hxx | 2 +-
src/lib/upnp/Init.cxx | 6 +-
src/lib/upnp/UniqueIxml.hxx | 2 +-
src/lib/upnp/ixmlwrap.hxx | 2 +-
src/mixer/plugins/AlsaMixerPlugin.cxx | 4 +-
src/net/Resolver.cxx | 2 +-
src/net/SocketAddress.hxx | 4 +-
src/net/SocketError.cxx | 2 +-
src/net/SocketError.hxx | 14 +-
src/net/ToString.cxx | 2 +-
src/output/Source.cxx | 3 +-
src/output/plugins/OSXOutputPlugin.cxx | 9 +-
src/pcm/SampleFormat.hxx | 4 +-
src/player/Thread.cxx | 2 +
src/queue/PlaylistControl.cxx | 3 +-
src/queue/PlaylistEdit.cxx | 2 +-
src/queue/Queue.cxx | 14 +-
src/queue/Queue.hxx | 9 +-
src/storage/StorageState.cxx | 138 ++++++
src/{system/Clock.hxx => storage/StorageState.hxx} | 28 +-
src/storage/plugins/LocalStorage.cxx | 2 +-
src/system/Clock.cxx | 2 +-
src/system/Clock.hxx | 2 +-
src/system/EPollFD.cxx | 2 +-
src/system/Error.hxx | 12 +-
src/system/EventPipe.cxx | 14 +-
src/system/FatalError.cxx | 6 +-
src/system/FatalError.hxx | 4 +-
src/system/FileDescriptor.cxx | 6 +-
src/system/FileDescriptor.hxx | 4 +-
src/system/fd_util.c | 14 +-
src/system/fd_util.h | 2 +-
src/tag/Format.cxx | 4 +-
src/thread/Cond.hxx | 2 +-
src/thread/Id.hxx | 12 +-
src/thread/Mutex.hxx | 2 +-
src/thread/Thread.cxx | 6 +-
src/thread/Thread.hxx | 10 +-
src/thread/Util.cxx | 4 +-
src/unix/Daemon.cxx | 6 +-
src/unix/Daemon.hxx | 14 +-
src/unix/SignalHandlers.cxx | 4 +-
src/util/FormatString.cxx | 4 +-
src/util/HugeAllocator.cxx | 2 +-
src/util/HugeAllocator.hxx | 2 +-
src/util/StringAPI.hxx | 2 +-
src/util/TimeParser.cxx | 6 +-
src/util/WStringAPI.hxx | 2 +-
src/win32/Win32Main.cxx | 2 +-
test/ShutdownHandler.cxx | 2 +-
test/ShutdownHandler.hxx | 2 +-
test/run_resolver.cxx | 2 +-
win32/build.py | 126 +++++
137 files changed, 1558 insertions(+), 367 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 1d47c61..396bc0c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -702,6 +702,7 @@ libstorage_a_SOURCES = \
src/storage/MemoryDirectoryReader.cxx src/storage/MemoryDirectoryReader.hxx \
src/storage/Configured.cxx src/storage/Configured.hxx \
src/storage/plugins/LocalStorage.cxx src/storage/plugins/LocalStorage.hxx \
+ src/storage/StorageState.cxx src/storage/StorageState.hxx \
src/storage/FileInfo.hxx
libstorage_a_CPPFLAGS = $(AM_CPPFLAGS) \
@@ -754,6 +755,7 @@ libneighbor_a_SOURCES = \
src/neighbor/NeighborPlugin.hxx
libneighbor_a_CPPFLAGS = $(AM_CPPFLAGS) \
+ $(UPNP_CFLAGS) \
$(SMBCLIENT_CFLAGS)
if ENABLE_SMBCLIENT
@@ -803,6 +805,8 @@ libdb_plugins_a_SOURCES = \
src/db/plugins/simple/PrefixedLightSong.hxx \
src/db/plugins/simple/SimpleDatabasePlugin.cxx \
src/db/plugins/simple/SimpleDatabasePlugin.hxx
+libdb_plugins_a_CPPFLAGS = $(AM_CPPFLAGS) \
+ $(UPNP_CFLAGS)
if ENABLE_LIBMPDCLIENT
libdb_plugins_a_SOURCES += \
@@ -2412,6 +2416,7 @@ EXTRA_DIST = $(doc_DATA) autogen.sh \
$(man_MANS) $(DOCBOOK_FILES) doc/mpdconf.example doc/doxygen.conf \
$(wildcard $(srcdir)/doc/include/*.xml) \
systemd/system/mpd.socket \
+ $(wildcard $(srcdir)/python/build/*.py) \
android/AndroidManifest.xml \
android/build.py \
android/custom_rules.xml \
@@ -2419,5 +2424,6 @@ EXTRA_DIST = $(doc_DATA) autogen.sh \
android/src/Bridge.java \
android/src/Loader.java \
android/src/Main.java \
+ win32/build.py \
win32/res/mpd.rc.in win32/res/mpd.ico \
src/haiku/App_MusicPD
diff --git a/Makefile.in b/Makefile.in
index a22dfaa..ad743d3 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -747,32 +747,32 @@ am__libdb_plugins_a_SOURCES_DIST = src/PlaylistDatabase.cxx \
src/db/plugins/upnp/Directory.cxx \
src/db/plugins/upnp/Directory.hxx \
src/db/plugins/upnp/Object.cxx src/db/plugins/upnp/Object.hxx
- at ENABLE_DATABASE_TRUE@@ENABLE_LIBMPDCLIENT_TRUE at am__objects_4 = src/db/plugins/ProxyDatabasePlugin.$(OBJEXT)
-am__objects_5 = src/lib/upnp/Init.$(OBJEXT) \
- src/lib/upnp/ClientInit.$(OBJEXT) \
- src/lib/upnp/Device.$(OBJEXT) \
- src/lib/upnp/ContentDirectoryService.$(OBJEXT) \
- src/lib/upnp/Discovery.$(OBJEXT) \
- src/lib/upnp/ixmlwrap.$(OBJEXT) src/lib/upnp/Util.$(OBJEXT)
+ at ENABLE_DATABASE_TRUE@@ENABLE_LIBMPDCLIENT_TRUE at am__objects_4 = src/db/plugins/libdb_plugins_a-ProxyDatabasePlugin.$(OBJEXT)
+am__objects_5 = src/lib/upnp/libdb_plugins_a-Init.$(OBJEXT) \
+ src/lib/upnp/libdb_plugins_a-ClientInit.$(OBJEXT) \
+ src/lib/upnp/libdb_plugins_a-Device.$(OBJEXT) \
+ src/lib/upnp/libdb_plugins_a-ContentDirectoryService.$(OBJEXT) \
+ src/lib/upnp/libdb_plugins_a-Discovery.$(OBJEXT) \
+ src/lib/upnp/libdb_plugins_a-ixmlwrap.$(OBJEXT) \
+ src/lib/upnp/libdb_plugins_a-Util.$(OBJEXT)
@ENABLE_DATABASE_TRUE@@ENABLE_UPNP_TRUE at am__objects_6 = \
@ENABLE_DATABASE_TRUE@@ENABLE_UPNP_TRUE@ $(am__objects_5) \
- at ENABLE_DATABASE_TRUE@@ENABLE_UPNP_TRUE@ src/db/plugins/upnp/UpnpDatabasePlugin.$(OBJEXT) \
- at ENABLE_DATABASE_TRUE@@ENABLE_UPNP_TRUE@ src/db/plugins/upnp/Tags.$(OBJEXT) \
- at ENABLE_DATABASE_TRUE@@ENABLE_UPNP_TRUE@ src/db/plugins/upnp/ContentDirectoryService.$(OBJEXT) \
- at ENABLE_DATABASE_TRUE@@ENABLE_UPNP_TRUE@ src/db/plugins/upnp/Directory.$(OBJEXT) \
- at ENABLE_DATABASE_TRUE@@ENABLE_UPNP_TRUE@ src/db/plugins/upnp/Object.$(OBJEXT)
- at ENABLE_DATABASE_TRUE@am_libdb_plugins_a_OBJECTS = \
- at ENABLE_DATABASE_TRUE@ src/PlaylistDatabase.$(OBJEXT) \
- at ENABLE_DATABASE_TRUE@ src/db/Registry.$(OBJEXT) \
- at ENABLE_DATABASE_TRUE@ src/db/Helpers.$(OBJEXT) \
- at ENABLE_DATABASE_TRUE@ src/db/UniqueTags.$(OBJEXT) \
- at ENABLE_DATABASE_TRUE@ src/db/plugins/simple/DatabaseSave.$(OBJEXT) \
- at ENABLE_DATABASE_TRUE@ src/db/plugins/simple/DirectorySave.$(OBJEXT) \
- at ENABLE_DATABASE_TRUE@ src/db/plugins/simple/Directory.$(OBJEXT) \
- at ENABLE_DATABASE_TRUE@ src/db/plugins/simple/Song.$(OBJEXT) \
- at ENABLE_DATABASE_TRUE@ src/db/plugins/simple/SongSort.$(OBJEXT) \
- at ENABLE_DATABASE_TRUE@ src/db/plugins/simple/Mount.$(OBJEXT) \
- at ENABLE_DATABASE_TRUE@ src/db/plugins/simple/SimpleDatabasePlugin.$(OBJEXT) \
+ at ENABLE_DATABASE_TRUE@@ENABLE_UPNP_TRUE@ src/db/plugins/upnp/libdb_plugins_a-UpnpDatabasePlugin.$(OBJEXT) \
+ at ENABLE_DATABASE_TRUE@@ENABLE_UPNP_TRUE@ src/db/plugins/upnp/libdb_plugins_a-Tags.$(OBJEXT) \
+ at ENABLE_DATABASE_TRUE@@ENABLE_UPNP_TRUE@ src/db/plugins/upnp/libdb_plugins_a-ContentDirectoryService.$(OBJEXT) \
+ at ENABLE_DATABASE_TRUE@@ENABLE_UPNP_TRUE@ src/db/plugins/upnp/libdb_plugins_a-Directory.$(OBJEXT) \
+ at ENABLE_DATABASE_TRUE@@ENABLE_UPNP_TRUE@ src/db/plugins/upnp/libdb_plugins_a-Object.$(OBJEXT)
+ at ENABLE_DATABASE_TRUE@am_libdb_plugins_a_OBJECTS = src/libdb_plugins_a-PlaylistDatabase.$(OBJEXT) \
+ at ENABLE_DATABASE_TRUE@ src/db/libdb_plugins_a-Registry.$(OBJEXT) \
+ at ENABLE_DATABASE_TRUE@ src/db/libdb_plugins_a-Helpers.$(OBJEXT) \
+ at ENABLE_DATABASE_TRUE@ src/db/libdb_plugins_a-UniqueTags.$(OBJEXT) \
+ at ENABLE_DATABASE_TRUE@ src/db/plugins/simple/libdb_plugins_a-DatabaseSave.$(OBJEXT) \
+ at ENABLE_DATABASE_TRUE@ src/db/plugins/simple/libdb_plugins_a-DirectorySave.$(OBJEXT) \
+ at ENABLE_DATABASE_TRUE@ src/db/plugins/simple/libdb_plugins_a-Directory.$(OBJEXT) \
+ at ENABLE_DATABASE_TRUE@ src/db/plugins/simple/libdb_plugins_a-Song.$(OBJEXT) \
+ at ENABLE_DATABASE_TRUE@ src/db/plugins/simple/libdb_plugins_a-SongSort.$(OBJEXT) \
+ at ENABLE_DATABASE_TRUE@ src/db/plugins/simple/libdb_plugins_a-Mount.$(OBJEXT) \
+ at ENABLE_DATABASE_TRUE@ src/db/plugins/simple/libdb_plugins_a-SimpleDatabasePlugin.$(OBJEXT) \
@ENABLE_DATABASE_TRUE@ $(am__objects_4) $(am__objects_6)
libdb_plugins_a_OBJECTS = $(am_libdb_plugins_a_OBJECTS)
libdecoder_a_AR = $(AR) $(ARFLAGS)
@@ -1772,10 +1772,12 @@ am__libstorage_a_SOURCES_DIST = src/storage/StoragePlugin.hxx \
src/storage/MemoryDirectoryReader.hxx \
src/storage/Configured.cxx src/storage/Configured.hxx \
src/storage/plugins/LocalStorage.cxx \
- src/storage/plugins/LocalStorage.hxx src/storage/FileInfo.hxx \
- src/lib/smbclient/Domain.cxx src/lib/smbclient/Domain.hxx \
- src/lib/smbclient/Mutex.cxx src/lib/smbclient/Mutex.hxx \
- src/lib/smbclient/Init.cxx src/lib/smbclient/Init.hxx \
+ src/storage/plugins/LocalStorage.hxx \
+ src/storage/StorageState.cxx src/storage/StorageState.hxx \
+ src/storage/FileInfo.hxx src/lib/smbclient/Domain.cxx \
+ src/lib/smbclient/Domain.hxx src/lib/smbclient/Mutex.cxx \
+ src/lib/smbclient/Mutex.hxx src/lib/smbclient/Init.cxx \
+ src/lib/smbclient/Init.hxx \
src/storage/plugins/SmbclientStorage.cxx \
src/storage/plugins/SmbclientStorage.hxx \
src/lib/nfs/Callback.hxx src/lib/nfs/Cancellable.hxx \
@@ -1812,6 +1814,7 @@ am__objects_97 = src/lib/nfs/libstorage_a-Connection.$(OBJEXT) \
@ENABLE_DATABASE_TRUE@ src/storage/libstorage_a-MemoryDirectoryReader.$(OBJEXT) \
@ENABLE_DATABASE_TRUE@ src/storage/libstorage_a-Configured.$(OBJEXT) \
@ENABLE_DATABASE_TRUE@ src/storage/plugins/libstorage_a-LocalStorage.$(OBJEXT) \
+ at ENABLE_DATABASE_TRUE@ src/storage/libstorage_a-StorageState.$(OBJEXT) \
@ENABLE_DATABASE_TRUE@ $(am__objects_96) $(am__objects_98) \
@ENABLE_DATABASE_TRUE@ $(am__objects_99)
libstorage_a_OBJECTS = $(am_libstorage_a_OBJECTS)
@@ -3671,6 +3674,8 @@ NFS_SOURCES = \
@ENABLE_DATABASE_TRUE@ src/storage/Configured.hxx \
@ENABLE_DATABASE_TRUE@ src/storage/plugins/LocalStorage.cxx \
@ENABLE_DATABASE_TRUE@ src/storage/plugins/LocalStorage.hxx \
+ at ENABLE_DATABASE_TRUE@ src/storage/StorageState.cxx \
+ at ENABLE_DATABASE_TRUE@ src/storage/StorageState.hxx \
@ENABLE_DATABASE_TRUE@ src/storage/FileInfo.hxx \
@ENABLE_DATABASE_TRUE@ $(am__append_19) $(am__append_20) \
@ENABLE_DATABASE_TRUE@ $(am__append_21)
@@ -3697,6 +3702,7 @@ NFS_SOURCES = \
@ENABLE_NEIGHBOR_PLUGINS_TRUE@ $(am__append_24) \
@ENABLE_NEIGHBOR_PLUGINS_TRUE@ $(am__append_25)
@ENABLE_NEIGHBOR_PLUGINS_TRUE at libneighbor_a_CPPFLAGS = $(AM_CPPFLAGS) \
+ at ENABLE_NEIGHBOR_PLUGINS_TRUE@ $(UPNP_CFLAGS) \
@ENABLE_NEIGHBOR_PLUGINS_TRUE@ $(SMBCLIENT_CFLAGS)
@ENABLE_NEIGHBOR_PLUGINS_TRUE at NEIGHBOR_LIBS = $(SMBCLIENT_LIBS) \
@@ -3724,6 +3730,9 @@ NFS_SOURCES = \
@ENABLE_DATABASE_TRUE@ src/db/plugins/simple/SimpleDatabasePlugin.cxx \
@ENABLE_DATABASE_TRUE@ src/db/plugins/simple/SimpleDatabasePlugin.hxx \
@ENABLE_DATABASE_TRUE@ $(am__append_28) $(am__append_29)
+ at ENABLE_DATABASE_TRUE@libdb_plugins_a_CPPFLAGS = $(AM_CPPFLAGS) \
+ at ENABLE_DATABASE_TRUE@ $(UPNP_CFLAGS)
+
@ENABLE_DATABASE_TRUE at DB_LIBS = libdb_plugins.a $(LIBMPDCLIENT_LIBS) \
@ENABLE_DATABASE_TRUE@ $(am__append_30)
@ENABLE_ARCHIVE_TRUE at libarchive_a_SOURCES = \
@@ -4682,6 +4691,7 @@ EXTRA_DIST = $(doc_DATA) autogen.sh \
$(man_MANS) $(DOCBOOK_FILES) doc/mpdconf.example doc/doxygen.conf \
$(wildcard $(srcdir)/doc/include/*.xml) \
systemd/system/mpd.socket \
+ $(wildcard $(srcdir)/python/build/*.py) \
android/AndroidManifest.xml \
android/build.py \
android/custom_rules.xml \
@@ -4689,6 +4699,7 @@ EXTRA_DIST = $(doc_DATA) autogen.sh \
android/src/Bridge.java \
android/src/Loader.java \
android/src/Main.java \
+ win32/build.py \
win32/res/mpd.rc.in win32/res/mpd.ico \
src/haiku/App_MusicPD
@@ -4864,7 +4875,7 @@ libconf.a: $(libconf_a_OBJECTS) $(libconf_a_DEPENDENCIES) $(EXTRA_libconf_a_DEPE
$(AM_V_at)-rm -f libconf.a
$(AM_V_AR)$(libconf_a_AR) libconf.a $(libconf_a_OBJECTS) $(libconf_a_LIBADD)
$(AM_V_at)$(RANLIB) libconf.a
-src/PlaylistDatabase.$(OBJEXT): src/$(am__dirstamp) \
+src/libdb_plugins_a-PlaylistDatabase.$(OBJEXT): src/$(am__dirstamp) \
src/$(DEPDIR)/$(am__dirstamp)
src/db/$(am__dirstamp):
@$(MKDIR_P) src/db
@@ -4872,11 +4883,11 @@ src/db/$(am__dirstamp):
src/db/$(DEPDIR)/$(am__dirstamp):
@$(MKDIR_P) src/db/$(DEPDIR)
@: > src/db/$(DEPDIR)/$(am__dirstamp)
-src/db/Registry.$(OBJEXT): src/db/$(am__dirstamp) \
+src/db/libdb_plugins_a-Registry.$(OBJEXT): src/db/$(am__dirstamp) \
src/db/$(DEPDIR)/$(am__dirstamp)
-src/db/Helpers.$(OBJEXT): src/db/$(am__dirstamp) \
+src/db/libdb_plugins_a-Helpers.$(OBJEXT): src/db/$(am__dirstamp) \
src/db/$(DEPDIR)/$(am__dirstamp)
-src/db/UniqueTags.$(OBJEXT): src/db/$(am__dirstamp) \
+src/db/libdb_plugins_a-UniqueTags.$(OBJEXT): src/db/$(am__dirstamp) \
src/db/$(DEPDIR)/$(am__dirstamp)
src/db/plugins/simple/$(am__dirstamp):
@$(MKDIR_P) src/db/plugins/simple
@@ -4884,25 +4895,25 @@ src/db/plugins/simple/$(am__dirstamp):
src/db/plugins/simple/$(DEPDIR)/$(am__dirstamp):
@$(MKDIR_P) src/db/plugins/simple/$(DEPDIR)
@: > src/db/plugins/simple/$(DEPDIR)/$(am__dirstamp)
-src/db/plugins/simple/DatabaseSave.$(OBJEXT): \
+src/db/plugins/simple/libdb_plugins_a-DatabaseSave.$(OBJEXT): \
src/db/plugins/simple/$(am__dirstamp) \
src/db/plugins/simple/$(DEPDIR)/$(am__dirstamp)
-src/db/plugins/simple/DirectorySave.$(OBJEXT): \
+src/db/plugins/simple/libdb_plugins_a-DirectorySave.$(OBJEXT): \
src/db/plugins/simple/$(am__dirstamp) \
src/db/plugins/simple/$(DEPDIR)/$(am__dirstamp)
-src/db/plugins/simple/Directory.$(OBJEXT): \
+src/db/plugins/simple/libdb_plugins_a-Directory.$(OBJEXT): \
src/db/plugins/simple/$(am__dirstamp) \
src/db/plugins/simple/$(DEPDIR)/$(am__dirstamp)
-src/db/plugins/simple/Song.$(OBJEXT): \
+src/db/plugins/simple/libdb_plugins_a-Song.$(OBJEXT): \
src/db/plugins/simple/$(am__dirstamp) \
src/db/plugins/simple/$(DEPDIR)/$(am__dirstamp)
-src/db/plugins/simple/SongSort.$(OBJEXT): \
+src/db/plugins/simple/libdb_plugins_a-SongSort.$(OBJEXT): \
src/db/plugins/simple/$(am__dirstamp) \
src/db/plugins/simple/$(DEPDIR)/$(am__dirstamp)
-src/db/plugins/simple/Mount.$(OBJEXT): \
+src/db/plugins/simple/libdb_plugins_a-Mount.$(OBJEXT): \
src/db/plugins/simple/$(am__dirstamp) \
src/db/plugins/simple/$(DEPDIR)/$(am__dirstamp)
-src/db/plugins/simple/SimpleDatabasePlugin.$(OBJEXT): \
+src/db/plugins/simple/libdb_plugins_a-SimpleDatabasePlugin.$(OBJEXT): \
src/db/plugins/simple/$(am__dirstamp) \
src/db/plugins/simple/$(DEPDIR)/$(am__dirstamp)
src/db/plugins/$(am__dirstamp):
@@ -4911,7 +4922,7 @@ src/db/plugins/$(am__dirstamp):
src/db/plugins/$(DEPDIR)/$(am__dirstamp):
@$(MKDIR_P) src/db/plugins/$(DEPDIR)
@: > src/db/plugins/$(DEPDIR)/$(am__dirstamp)
-src/db/plugins/ProxyDatabasePlugin.$(OBJEXT): \
+src/db/plugins/libdb_plugins_a-ProxyDatabasePlugin.$(OBJEXT): \
src/db/plugins/$(am__dirstamp) \
src/db/plugins/$(DEPDIR)/$(am__dirstamp)
src/lib/upnp/$(am__dirstamp):
@@ -4920,20 +4931,26 @@ src/lib/upnp/$(am__dirstamp):
src/lib/upnp/$(DEPDIR)/$(am__dirstamp):
@$(MKDIR_P) src/lib/upnp/$(DEPDIR)
@: > src/lib/upnp/$(DEPDIR)/$(am__dirstamp)
-src/lib/upnp/Init.$(OBJEXT): src/lib/upnp/$(am__dirstamp) \
+src/lib/upnp/libdb_plugins_a-Init.$(OBJEXT): \
+ src/lib/upnp/$(am__dirstamp) \
src/lib/upnp/$(DEPDIR)/$(am__dirstamp)
-src/lib/upnp/ClientInit.$(OBJEXT): src/lib/upnp/$(am__dirstamp) \
+src/lib/upnp/libdb_plugins_a-ClientInit.$(OBJEXT): \
+ src/lib/upnp/$(am__dirstamp) \
src/lib/upnp/$(DEPDIR)/$(am__dirstamp)
-src/lib/upnp/Device.$(OBJEXT): src/lib/upnp/$(am__dirstamp) \
+src/lib/upnp/libdb_plugins_a-Device.$(OBJEXT): \
+ src/lib/upnp/$(am__dirstamp) \
src/lib/upnp/$(DEPDIR)/$(am__dirstamp)
-src/lib/upnp/ContentDirectoryService.$(OBJEXT): \
+src/lib/upnp/libdb_plugins_a-ContentDirectoryService.$(OBJEXT): \
src/lib/upnp/$(am__dirstamp) \
src/lib/upnp/$(DEPDIR)/$(am__dirstamp)
-src/lib/upnp/Discovery.$(OBJEXT): src/lib/upnp/$(am__dirstamp) \
+src/lib/upnp/libdb_plugins_a-Discovery.$(OBJEXT): \
+ src/lib/upnp/$(am__dirstamp) \
src/lib/upnp/$(DEPDIR)/$(am__dirstamp)
-src/lib/upnp/ixmlwrap.$(OBJEXT): src/lib/upnp/$(am__dirstamp) \
+src/lib/upnp/libdb_plugins_a-ixmlwrap.$(OBJEXT): \
+ src/lib/upnp/$(am__dirstamp) \
src/lib/upnp/$(DEPDIR)/$(am__dirstamp)
-src/lib/upnp/Util.$(OBJEXT): src/lib/upnp/$(am__dirstamp) \
+src/lib/upnp/libdb_plugins_a-Util.$(OBJEXT): \
+ src/lib/upnp/$(am__dirstamp) \
src/lib/upnp/$(DEPDIR)/$(am__dirstamp)
src/db/plugins/upnp/$(am__dirstamp):
@$(MKDIR_P) src/db/plugins/upnp
@@ -4941,19 +4958,19 @@ src/db/plugins/upnp/$(am__dirstamp):
src/db/plugins/upnp/$(DEPDIR)/$(am__dirstamp):
@$(MKDIR_P) src/db/plugins/upnp/$(DEPDIR)
@: > src/db/plugins/upnp/$(DEPDIR)/$(am__dirstamp)
-src/db/plugins/upnp/UpnpDatabasePlugin.$(OBJEXT): \
+src/db/plugins/upnp/libdb_plugins_a-UpnpDatabasePlugin.$(OBJEXT): \
src/db/plugins/upnp/$(am__dirstamp) \
src/db/plugins/upnp/$(DEPDIR)/$(am__dirstamp)
-src/db/plugins/upnp/Tags.$(OBJEXT): \
+src/db/plugins/upnp/libdb_plugins_a-Tags.$(OBJEXT): \
src/db/plugins/upnp/$(am__dirstamp) \
src/db/plugins/upnp/$(DEPDIR)/$(am__dirstamp)
-src/db/plugins/upnp/ContentDirectoryService.$(OBJEXT): \
+src/db/plugins/upnp/libdb_plugins_a-ContentDirectoryService.$(OBJEXT): \
src/db/plugins/upnp/$(am__dirstamp) \
src/db/plugins/upnp/$(DEPDIR)/$(am__dirstamp)
-src/db/plugins/upnp/Directory.$(OBJEXT): \
+src/db/plugins/upnp/libdb_plugins_a-Directory.$(OBJEXT): \
src/db/plugins/upnp/$(am__dirstamp) \
src/db/plugins/upnp/$(DEPDIR)/$(am__dirstamp)
-src/db/plugins/upnp/Object.$(OBJEXT): \
+src/db/plugins/upnp/libdb_plugins_a-Object.$(OBJEXT): \
src/db/plugins/upnp/$(am__dirstamp) \
src/db/plugins/upnp/$(DEPDIR)/$(am__dirstamp)
@@ -6357,6 +6374,9 @@ src/storage/plugins/$(DEPDIR)/$(am__dirstamp):
src/storage/plugins/libstorage_a-LocalStorage.$(OBJEXT): \
src/storage/plugins/$(am__dirstamp) \
src/storage/plugins/$(DEPDIR)/$(am__dirstamp)
+src/storage/libstorage_a-StorageState.$(OBJEXT): \
+ src/storage/$(am__dirstamp) \
+ src/storage/$(DEPDIR)/$(am__dirstamp)
src/lib/smbclient/libstorage_a-Domain.$(OBJEXT): \
src/lib/smbclient/$(am__dirstamp) \
src/lib/smbclient/$(DEPDIR)/$(am__dirstamp)
@@ -6672,6 +6692,8 @@ test/DumpDatabase.$(OBJEXT): test/$(am__dirstamp) \
test/$(DEPDIR)/$(am__dirstamp)
src/protocol/Ack.$(OBJEXT): src/protocol/$(am__dirstamp) \
src/protocol/$(DEPDIR)/$(am__dirstamp)
+src/db/Registry.$(OBJEXT): src/db/$(am__dirstamp) \
+ src/db/$(DEPDIR)/$(am__dirstamp)
src/db/Selection.$(OBJEXT): src/db/$(am__dirstamp) \
src/db/$(DEPDIR)/$(am__dirstamp)
src/db/PlaylistVector.$(OBJEXT): src/db/$(am__dirstamp) \
@@ -7105,13 +7127,13 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote at src/$(DEPDIR)/Log.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at src/$(DEPDIR)/LogBackend.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at src/$(DEPDIR)/Main.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at src/$(DEPDIR)/PlaylistDatabase.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at src/$(DEPDIR)/ReplayGainInfo.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at src/$(DEPDIR)/ReplayGainMode.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at src/$(DEPDIR)/SongFilter.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at src/$(DEPDIR)/SongSave.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at src/$(DEPDIR)/TagFile.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at src/$(DEPDIR)/TagSave.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/$(DEPDIR)/libdb_plugins_a-PlaylistDatabase.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at src/$(DEPDIR)/libinput_a-IcyMetaDataParser.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at src/$(DEPDIR)/libmain_a-Main.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at src/$(DEPDIR)/libmpd_a-CommandLine.Po at am__quote@
@@ -7221,11 +7243,12 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote at src/config/$(DEPDIR)/Data.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at src/config/$(DEPDIR)/Param.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at src/db/$(DEPDIR)/DatabaseLock.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at src/db/$(DEPDIR)/Helpers.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at src/db/$(DEPDIR)/PlaylistVector.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at src/db/$(DEPDIR)/Registry.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at src/db/$(DEPDIR)/Selection.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at src/db/$(DEPDIR)/UniqueTags.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/db/$(DEPDIR)/libdb_plugins_a-Helpers.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/db/$(DEPDIR)/libdb_plugins_a-Registry.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/db/$(DEPDIR)/libdb_plugins_a-UniqueTags.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at src/db/$(DEPDIR)/libmpd_a-Configured.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at src/db/$(DEPDIR)/libmpd_a-Count.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at src/db/$(DEPDIR)/libmpd_a-DatabaseGlue.Po at am__quote@
@@ -7237,19 +7260,19 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote at src/db/$(DEPDIR)/libmpd_a-LightSong.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at src/db/$(DEPDIR)/libmpd_a-PlaylistVector.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at src/db/$(DEPDIR)/libmpd_a-Selection.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at src/db/plugins/$(DEPDIR)/ProxyDatabasePlugin.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at src/db/plugins/simple/$(DEPDIR)/DatabaseSave.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at src/db/plugins/simple/$(DEPDIR)/Directory.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at src/db/plugins/simple/$(DEPDIR)/DirectorySave.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at src/db/plugins/simple/$(DEPDIR)/Mount.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at src/db/plugins/simple/$(DEPDIR)/SimpleDatabasePlugin.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at src/db/plugins/simple/$(DEPDIR)/Song.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at src/db/plugins/simple/$(DEPDIR)/SongSort.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at src/db/plugins/upnp/$(DEPDIR)/ContentDirectoryService.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at src/db/plugins/upnp/$(DEPDIR)/Directory.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at src/db/plugins/upnp/$(DEPDIR)/Object.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at src/db/plugins/upnp/$(DEPDIR)/Tags.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at src/db/plugins/upnp/$(DEPDIR)/UpnpDatabasePlugin.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/db/plugins/$(DEPDIR)/libdb_plugins_a-ProxyDatabasePlugin.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-DatabaseSave.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-Directory.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-DirectorySave.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-Mount.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-SimpleDatabasePlugin.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-Song.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-SongSort.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/db/plugins/upnp/$(DEPDIR)/libdb_plugins_a-ContentDirectoryService.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/db/plugins/upnp/$(DEPDIR)/libdb_plugins_a-Directory.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/db/plugins/upnp/$(DEPDIR)/libdb_plugins_a-Object.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/db/plugins/upnp/$(DEPDIR)/libdb_plugins_a-Tags.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/db/plugins/upnp/$(DEPDIR)/libdb_plugins_a-UpnpDatabasePlugin.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at src/db/update/$(DEPDIR)/InotifyDomain.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at src/db/update/$(DEPDIR)/InotifySource.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at src/db/update/$(DEPDIR)/libmpd_a-Archive.Po at am__quote@
@@ -7447,13 +7470,13 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote at src/lib/smbclient/$(DEPDIR)/libstorage_a-Init.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at src/lib/smbclient/$(DEPDIR)/libstorage_a-Mutex.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at src/lib/sqlite/$(DEPDIR)/libmpd_a-Error.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at src/lib/upnp/$(DEPDIR)/ClientInit.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at src/lib/upnp/$(DEPDIR)/ContentDirectoryService.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at src/lib/upnp/$(DEPDIR)/Device.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at src/lib/upnp/$(DEPDIR)/Discovery.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at src/lib/upnp/$(DEPDIR)/Init.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at src/lib/upnp/$(DEPDIR)/Util.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at src/lib/upnp/$(DEPDIR)/ixmlwrap.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/lib/upnp/$(DEPDIR)/libdb_plugins_a-ClientInit.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/lib/upnp/$(DEPDIR)/libdb_plugins_a-ContentDirectoryService.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/lib/upnp/$(DEPDIR)/libdb_plugins_a-Device.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/lib/upnp/$(DEPDIR)/libdb_plugins_a-Discovery.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/lib/upnp/$(DEPDIR)/libdb_plugins_a-Init.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/lib/upnp/$(DEPDIR)/libdb_plugins_a-Util.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/lib/upnp/$(DEPDIR)/libdb_plugins_a-ixmlwrap.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at src/lib/upnp/$(DEPDIR)/libneighbor_a-ClientInit.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at src/lib/upnp/$(DEPDIR)/libneighbor_a-ContentDirectoryService.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at src/lib/upnp/$(DEPDIR)/libneighbor_a-Device.Po at am__quote@
@@ -7612,6 +7635,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote at src/storage/$(DEPDIR)/libstorage_a-MemoryDirectoryReader.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at src/storage/$(DEPDIR)/libstorage_a-Registry.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at src/storage/$(DEPDIR)/libstorage_a-StorageInterface.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/storage/$(DEPDIR)/libstorage_a-StorageState.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at src/storage/plugins/$(DEPDIR)/libstorage_a-CurlStorage.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at src/storage/plugins/$(DEPDIR)/libstorage_a-LocalStorage.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at src/storage/plugins/$(DEPDIR)/libstorage_a-NfsStorage.Po at am__quote@
@@ -7947,6 +7971,342 @@ src/archive/plugins/libarchive_a-Iso9660ArchivePlugin.obj: src/archive/plugins/I
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/archive/plugins/libarchive_a-Iso9660ArchivePlugin.obj `if test -f 'src/archive/plugins/Iso9660ArchivePlugin.cxx'; then $(CYGPATH_W) 'src/archive/plugins/Iso9660ArchivePlugin.cxx'; else $(CYGPATH_W) '$(srcdir)/src/archive/plugins/Iso9660ArchivePlugin.cxx'; fi`
+src/libdb_plugins_a-PlaylistDatabase.o: src/PlaylistDatabase.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/libdb_plugins_a-PlaylistDatabase.o -MD -MP -MF src/$(DEPDIR)/libdb_plugins_a-PlaylistDatabase.Tpo -c -o src/libdb_plugins_a-PlaylistDatabase.o `test -f 'src/PlaylistDatabase.cxx' || echo '$(srcdir)/'`src/PlaylistDatabase.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libdb_plugins_a-PlaylistDatabase.Tpo src/$(DEPDIR)/libdb_plugins_a-PlaylistDatabase.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/PlaylistDatabase.cxx' object='src/libdb_plugins_a-PlaylistDatabase.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/libdb_plugins_a-PlaylistDatabase.o `test -f 'src/PlaylistDatabase.cxx' || echo '$(srcdir)/'`src/PlaylistDatabase.cxx
+
+src/libdb_plugins_a-PlaylistDatabase.obj: src/PlaylistDatabase.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/libdb_plugins_a-PlaylistDatabase.obj -MD -MP -MF src/$(DEPDIR)/libdb_plugins_a-PlaylistDatabase.Tpo -c -o src/libdb_plugins_a-PlaylistDatabase.obj `if test -f 'src/PlaylistDatabase.cxx'; then $(CYGPATH_W) 'src/PlaylistDatabase.cxx'; else $(CYGPATH_W) '$(srcdir)/src/PlaylistDatabase.cxx'; fi`
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libdb_plugins_a-PlaylistDatabase.Tpo src/$(DEPDIR)/libdb_plugins_a-PlaylistDatabase.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/PlaylistDatabase.cxx' object='src/libdb_plugins_a-PlaylistDatabase.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/libdb_plugins_a-PlaylistDatabase.obj `if test -f 'src/PlaylistDatabase.cxx'; then $(CYGPATH_W) 'src/PlaylistDatabase.cxx'; else $(CYGPATH_W) '$(srcdir)/src/PlaylistDatabase.cxx'; fi`
+
+src/db/libdb_plugins_a-Registry.o: src/db/Registry.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/db/libdb_plugins_a-Registry.o -MD -MP -MF src/db/$(DEPDIR)/libdb_plugins_a-Registry.Tpo -c -o src/db/libdb_plugins_a-Registry.o `test -f 'src/db/Registry.cxx' || echo '$(srcdir)/'`src/db/Registry.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/db/$(DEPDIR)/libdb_plugins_a-Registry.Tpo src/db/$(DEPDIR)/libdb_plugins_a-Registry.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/db/Registry.cxx' object='src/db/libdb_plugins_a-Registry.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/db/libdb_plugins_a-Registry.o `test -f 'src/db/Registry.cxx' || echo '$(srcdir)/'`src/db/Registry.cxx
+
+src/db/libdb_plugins_a-Registry.obj: src/db/Registry.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/db/libdb_plugins_a-Registry.obj -MD -MP -MF src/db/$(DEPDIR)/libdb_plugins_a-Registry.Tpo -c -o src/db/libdb_plugins_a-Registry.obj `if test -f 'src/db/Registry.cxx'; then $(CYGPATH_W) 'src/db/Registry.cxx'; else $(CYGPATH_W) '$(srcdir)/src/db/Registry.cxx'; fi`
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/db/$(DEPDIR)/libdb_plugins_a-Registry.Tpo src/db/$(DEPDIR)/libdb_plugins_a-Registry.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/db/Registry.cxx' object='src/db/libdb_plugins_a-Registry.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/db/libdb_plugins_a-Registry.obj `if test -f 'src/db/Registry.cxx'; then $(CYGPATH_W) 'src/db/Registry.cxx'; else $(CYGPATH_W) '$(srcdir)/src/db/Registry.cxx'; fi`
+
+src/db/libdb_plugins_a-Helpers.o: src/db/Helpers.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/db/libdb_plugins_a-Helpers.o -MD -MP -MF src/db/$(DEPDIR)/libdb_plugins_a-Helpers.Tpo -c -o src/db/libdb_plugins_a-Helpers.o `test -f 'src/db/Helpers.cxx' || echo '$(srcdir)/'`src/db/Helpers.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/db/$(DEPDIR)/libdb_plugins_a-Helpers.Tpo src/db/$(DEPDIR)/libdb_plugins_a-Helpers.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/db/Helpers.cxx' object='src/db/libdb_plugins_a-Helpers.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/db/libdb_plugins_a-Helpers.o `test -f 'src/db/Helpers.cxx' || echo '$(srcdir)/'`src/db/Helpers.cxx
+
+src/db/libdb_plugins_a-Helpers.obj: src/db/Helpers.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/db/libdb_plugins_a-Helpers.obj -MD -MP -MF src/db/$(DEPDIR)/libdb_plugins_a-Helpers.Tpo -c -o src/db/libdb_plugins_a-Helpers.obj `if test -f 'src/db/Helpers.cxx'; then $(CYGPATH_W) 'src/db/Helpers.cxx'; else $(CYGPATH_W) '$(srcdir)/src/db/Helpers.cxx'; fi`
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/db/$(DEPDIR)/libdb_plugins_a-Helpers.Tpo src/db/$(DEPDIR)/libdb_plugins_a-Helpers.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/db/Helpers.cxx' object='src/db/libdb_plugins_a-Helpers.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/db/libdb_plugins_a-Helpers.obj `if test -f 'src/db/Helpers.cxx'; then $(CYGPATH_W) 'src/db/Helpers.cxx'; else $(CYGPATH_W) '$(srcdir)/src/db/Helpers.cxx'; fi`
+
+src/db/libdb_plugins_a-UniqueTags.o: src/db/UniqueTags.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/db/libdb_plugins_a-UniqueTags.o -MD -MP -MF src/db/$(DEPDIR)/libdb_plugins_a-UniqueTags.Tpo -c -o src/db/libdb_plugins_a-UniqueTags.o `test -f 'src/db/UniqueTags.cxx' || echo '$(srcdir)/'`src/db/UniqueTags.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/db/$(DEPDIR)/libdb_plugins_a-UniqueTags.Tpo src/db/$(DEPDIR)/libdb_plugins_a-UniqueTags.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/db/UniqueTags.cxx' object='src/db/libdb_plugins_a-UniqueTags.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/db/libdb_plugins_a-UniqueTags.o `test -f 'src/db/UniqueTags.cxx' || echo '$(srcdir)/'`src/db/UniqueTags.cxx
+
+src/db/libdb_plugins_a-UniqueTags.obj: src/db/UniqueTags.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/db/libdb_plugins_a-UniqueTags.obj -MD -MP -MF src/db/$(DEPDIR)/libdb_plugins_a-UniqueTags.Tpo -c -o src/db/libdb_plugins_a-UniqueTags.obj `if test -f 'src/db/UniqueTags.cxx'; then $(CYGPATH_W) 'src/db/UniqueTags.cxx'; else $(CYGPATH_W) '$(srcdir)/src/db/UniqueTags.cxx'; fi`
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/db/$(DEPDIR)/libdb_plugins_a-UniqueTags.Tpo src/db/$(DEPDIR)/libdb_plugins_a-UniqueTags.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/db/UniqueTags.cxx' object='src/db/libdb_plugins_a-UniqueTags.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/db/libdb_plugins_a-UniqueTags.obj `if test -f 'src/db/UniqueTags.cxx'; then $(CYGPATH_W) 'src/db/UniqueTags.cxx'; else $(CYGPATH_W) '$(srcdir)/src/db/UniqueTags.cxx'; fi`
+
+src/db/plugins/simple/libdb_plugins_a-DatabaseSave.o: src/db/plugins/simple/DatabaseSave.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/db/plugins/simple/libdb_plugins_a-DatabaseSave.o -MD -MP -MF src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-DatabaseSave.Tpo -c -o src/db/plugins/simple/libdb_plugins_a-DatabaseSave.o `test -f 'src/db/plugins/simple/DatabaseSave.cxx' || echo '$(srcdir)/'`src/db/plugins/simple/DatabaseSave.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-DatabaseSave.Tpo src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-DatabaseSave.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/db/plugins/simple/DatabaseSave.cxx' object='src/db/plugins/simple/libdb_plugins_a-DatabaseSave.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/db/plugins/simple/libdb_plugins_a-DatabaseSave.o `test -f 'src/db/plugins/simple/DatabaseSave.cxx' || echo '$(srcdir)/'`src/db/plugins/simple/DatabaseSave.cxx
+
+src/db/plugins/simple/libdb_plugins_a-DatabaseSave.obj: src/db/plugins/simple/DatabaseSave.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/db/plugins/simple/libdb_plugins_a-DatabaseSave.obj -MD -MP -MF src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-DatabaseSave.Tpo -c -o src/db/plugins/simple/libdb_plugins_a-DatabaseSave.obj `if test -f 'src/db/plugins/simple/DatabaseSave.cxx'; then $(CYGPATH_W) 'src/db/plugins/simple/DatabaseSave.cxx'; else $(CYGPATH_W) '$(srcdir)/src/d [...]
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-DatabaseSave.Tpo src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-DatabaseSave.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/db/plugins/simple/DatabaseSave.cxx' object='src/db/plugins/simple/libdb_plugins_a-DatabaseSave.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/db/plugins/simple/libdb_plugins_a-DatabaseSave.obj `if test -f 'src/db/plugins/simple/DatabaseSave.cxx'; then $(CYGPATH_W) 'src/db/plugins/simple/DatabaseSave.cxx'; else $(CYGPATH_W) '$(srcdir)/src/db/plugins/simple/DatabaseSave.cxx'; fi`
+
+src/db/plugins/simple/libdb_plugins_a-DirectorySave.o: src/db/plugins/simple/DirectorySave.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/db/plugins/simple/libdb_plugins_a-DirectorySave.o -MD -MP -MF src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-DirectorySave.Tpo -c -o src/db/plugins/simple/libdb_plugins_a-DirectorySave.o `test -f 'src/db/plugins/simple/DirectorySave.cxx' || echo '$(srcdir)/'`src/db/plugins/simple/DirectorySave.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-DirectorySave.Tpo src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-DirectorySave.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/db/plugins/simple/DirectorySave.cxx' object='src/db/plugins/simple/libdb_plugins_a-DirectorySave.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/db/plugins/simple/libdb_plugins_a-DirectorySave.o `test -f 'src/db/plugins/simple/DirectorySave.cxx' || echo '$(srcdir)/'`src/db/plugins/simple/DirectorySave.cxx
+
+src/db/plugins/simple/libdb_plugins_a-DirectorySave.obj: src/db/plugins/simple/DirectorySave.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/db/plugins/simple/libdb_plugins_a-DirectorySave.obj -MD -MP -MF src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-DirectorySave.Tpo -c -o src/db/plugins/simple/libdb_plugins_a-DirectorySave.obj `if test -f 'src/db/plugins/simple/DirectorySave.cxx'; then $(CYGPATH_W) 'src/db/plugins/simple/DirectorySave.cxx'; else $(CYGPATH_W) '$(srcdir)/ [...]
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-DirectorySave.Tpo src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-DirectorySave.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/db/plugins/simple/DirectorySave.cxx' object='src/db/plugins/simple/libdb_plugins_a-DirectorySave.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/db/plugins/simple/libdb_plugins_a-DirectorySave.obj `if test -f 'src/db/plugins/simple/DirectorySave.cxx'; then $(CYGPATH_W) 'src/db/plugins/simple/DirectorySave.cxx'; else $(CYGPATH_W) '$(srcdir)/src/db/plugins/simple/DirectorySave.cxx'; fi`
+
+src/db/plugins/simple/libdb_plugins_a-Directory.o: src/db/plugins/simple/Directory.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/db/plugins/simple/libdb_plugins_a-Directory.o -MD -MP -MF src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-Directory.Tpo -c -o src/db/plugins/simple/libdb_plugins_a-Directory.o `test -f 'src/db/plugins/simple/Directory.cxx' || echo '$(srcdir)/'`src/db/plugins/simple/Directory.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-Directory.Tpo src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-Directory.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/db/plugins/simple/Directory.cxx' object='src/db/plugins/simple/libdb_plugins_a-Directory.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/db/plugins/simple/libdb_plugins_a-Directory.o `test -f 'src/db/plugins/simple/Directory.cxx' || echo '$(srcdir)/'`src/db/plugins/simple/Directory.cxx
+
+src/db/plugins/simple/libdb_plugins_a-Directory.obj: src/db/plugins/simple/Directory.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/db/plugins/simple/libdb_plugins_a-Directory.obj -MD -MP -MF src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-Directory.Tpo -c -o src/db/plugins/simple/libdb_plugins_a-Directory.obj `if test -f 'src/db/plugins/simple/Directory.cxx'; then $(CYGPATH_W) 'src/db/plugins/simple/Directory.cxx'; else $(CYGPATH_W) '$(srcdir)/src/db/plugins/simpl [...]
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-Directory.Tpo src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-Directory.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/db/plugins/simple/Directory.cxx' object='src/db/plugins/simple/libdb_plugins_a-Directory.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/db/plugins/simple/libdb_plugins_a-Directory.obj `if test -f 'src/db/plugins/simple/Directory.cxx'; then $(CYGPATH_W) 'src/db/plugins/simple/Directory.cxx'; else $(CYGPATH_W) '$(srcdir)/src/db/plugins/simple/Directory.cxx'; fi`
+
+src/db/plugins/simple/libdb_plugins_a-Song.o: src/db/plugins/simple/Song.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/db/plugins/simple/libdb_plugins_a-Song.o -MD -MP -MF src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-Song.Tpo -c -o src/db/plugins/simple/libdb_plugins_a-Song.o `test -f 'src/db/plugins/simple/Song.cxx' || echo '$(srcdir)/'`src/db/plugins/simple/Song.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-Song.Tpo src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-Song.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/db/plugins/simple/Song.cxx' object='src/db/plugins/simple/libdb_plugins_a-Song.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/db/plugins/simple/libdb_plugins_a-Song.o `test -f 'src/db/plugins/simple/Song.cxx' || echo '$(srcdir)/'`src/db/plugins/simple/Song.cxx
+
+src/db/plugins/simple/libdb_plugins_a-Song.obj: src/db/plugins/simple/Song.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/db/plugins/simple/libdb_plugins_a-Song.obj -MD -MP -MF src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-Song.Tpo -c -o src/db/plugins/simple/libdb_plugins_a-Song.obj `if test -f 'src/db/plugins/simple/Song.cxx'; then $(CYGPATH_W) 'src/db/plugins/simple/Song.cxx'; else $(CYGPATH_W) '$(srcdir)/src/db/plugins/simple/Song.cxx'; fi`
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-Song.Tpo src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-Song.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/db/plugins/simple/Song.cxx' object='src/db/plugins/simple/libdb_plugins_a-Song.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/db/plugins/simple/libdb_plugins_a-Song.obj `if test -f 'src/db/plugins/simple/Song.cxx'; then $(CYGPATH_W) 'src/db/plugins/simple/Song.cxx'; else $(CYGPATH_W) '$(srcdir)/src/db/plugins/simple/Song.cxx'; fi`
+
+src/db/plugins/simple/libdb_plugins_a-SongSort.o: src/db/plugins/simple/SongSort.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/db/plugins/simple/libdb_plugins_a-SongSort.o -MD -MP -MF src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-SongSort.Tpo -c -o src/db/plugins/simple/libdb_plugins_a-SongSort.o `test -f 'src/db/plugins/simple/SongSort.cxx' || echo '$(srcdir)/'`src/db/plugins/simple/SongSort.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-SongSort.Tpo src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-SongSort.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/db/plugins/simple/SongSort.cxx' object='src/db/plugins/simple/libdb_plugins_a-SongSort.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/db/plugins/simple/libdb_plugins_a-SongSort.o `test -f 'src/db/plugins/simple/SongSort.cxx' || echo '$(srcdir)/'`src/db/plugins/simple/SongSort.cxx
+
+src/db/plugins/simple/libdb_plugins_a-SongSort.obj: src/db/plugins/simple/SongSort.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/db/plugins/simple/libdb_plugins_a-SongSort.obj -MD -MP -MF src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-SongSort.Tpo -c -o src/db/plugins/simple/libdb_plugins_a-SongSort.obj `if test -f 'src/db/plugins/simple/SongSort.cxx'; then $(CYGPATH_W) 'src/db/plugins/simple/SongSort.cxx'; else $(CYGPATH_W) '$(srcdir)/src/db/plugins/simple/Son [...]
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-SongSort.Tpo src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-SongSort.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/db/plugins/simple/SongSort.cxx' object='src/db/plugins/simple/libdb_plugins_a-SongSort.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/db/plugins/simple/libdb_plugins_a-SongSort.obj `if test -f 'src/db/plugins/simple/SongSort.cxx'; then $(CYGPATH_W) 'src/db/plugins/simple/SongSort.cxx'; else $(CYGPATH_W) '$(srcdir)/src/db/plugins/simple/SongSort.cxx'; fi`
+
+src/db/plugins/simple/libdb_plugins_a-Mount.o: src/db/plugins/simple/Mount.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/db/plugins/simple/libdb_plugins_a-Mount.o -MD -MP -MF src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-Mount.Tpo -c -o src/db/plugins/simple/libdb_plugins_a-Mount.o `test -f 'src/db/plugins/simple/Mount.cxx' || echo '$(srcdir)/'`src/db/plugins/simple/Mount.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-Mount.Tpo src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-Mount.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/db/plugins/simple/Mount.cxx' object='src/db/plugins/simple/libdb_plugins_a-Mount.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/db/plugins/simple/libdb_plugins_a-Mount.o `test -f 'src/db/plugins/simple/Mount.cxx' || echo '$(srcdir)/'`src/db/plugins/simple/Mount.cxx
+
+src/db/plugins/simple/libdb_plugins_a-Mount.obj: src/db/plugins/simple/Mount.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/db/plugins/simple/libdb_plugins_a-Mount.obj -MD -MP -MF src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-Mount.Tpo -c -o src/db/plugins/simple/libdb_plugins_a-Mount.obj `if test -f 'src/db/plugins/simple/Mount.cxx'; then $(CYGPATH_W) 'src/db/plugins/simple/Mount.cxx'; else $(CYGPATH_W) '$(srcdir)/src/db/plugins/simple/Mount.cxx'; fi`
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-Mount.Tpo src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-Mount.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/db/plugins/simple/Mount.cxx' object='src/db/plugins/simple/libdb_plugins_a-Mount.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/db/plugins/simple/libdb_plugins_a-Mount.obj `if test -f 'src/db/plugins/simple/Mount.cxx'; then $(CYGPATH_W) 'src/db/plugins/simple/Mount.cxx'; else $(CYGPATH_W) '$(srcdir)/src/db/plugins/simple/Mount.cxx'; fi`
+
+src/db/plugins/simple/libdb_plugins_a-SimpleDatabasePlugin.o: src/db/plugins/simple/SimpleDatabasePlugin.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/db/plugins/simple/libdb_plugins_a-SimpleDatabasePlugin.o -MD -MP -MF src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-SimpleDatabasePlugin.Tpo -c -o src/db/plugins/simple/libdb_plugins_a-SimpleDatabasePlugin.o `test -f 'src/db/plugins/simple/SimpleDatabasePlugin.cxx' || echo '$(srcdir)/'`src/db/plugins/simple/SimpleDatabasePlugin.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-SimpleDatabasePlugin.Tpo src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-SimpleDatabasePlugin.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/db/plugins/simple/SimpleDatabasePlugin.cxx' object='src/db/plugins/simple/libdb_plugins_a-SimpleDatabasePlugin.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/db/plugins/simple/libdb_plugins_a-SimpleDatabasePlugin.o `test -f 'src/db/plugins/simple/SimpleDatabasePlugin.cxx' || echo '$(srcdir)/'`src/db/plugins/simple/SimpleDatabasePlugin.cxx
+
+src/db/plugins/simple/libdb_plugins_a-SimpleDatabasePlugin.obj: src/db/plugins/simple/SimpleDatabasePlugin.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/db/plugins/simple/libdb_plugins_a-SimpleDatabasePlugin.obj -MD -MP -MF src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-SimpleDatabasePlugin.Tpo -c -o src/db/plugins/simple/libdb_plugins_a-SimpleDatabasePlugin.obj `if test -f 'src/db/plugins/simple/SimpleDatabasePlugin.cxx'; then $(CYGPATH_W) 'src/db/plugins/simple/SimpleDatabasePlugin. [...]
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-SimpleDatabasePlugin.Tpo src/db/plugins/simple/$(DEPDIR)/libdb_plugins_a-SimpleDatabasePlugin.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/db/plugins/simple/SimpleDatabasePlugin.cxx' object='src/db/plugins/simple/libdb_plugins_a-SimpleDatabasePlugin.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/db/plugins/simple/libdb_plugins_a-SimpleDatabasePlugin.obj `if test -f 'src/db/plugins/simple/SimpleDatabasePlugin.cxx'; then $(CYGPATH_W) 'src/db/plugins/simple/SimpleDatabasePlugin.cxx'; else $(CYGPATH_W) '$(srcdir)/src/db/plugins/simple/SimpleDatabasePlugin.cxx'; fi`
+
+src/db/plugins/libdb_plugins_a-ProxyDatabasePlugin.o: src/db/plugins/ProxyDatabasePlugin.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/db/plugins/libdb_plugins_a-ProxyDatabasePlugin.o -MD -MP -MF src/db/plugins/$(DEPDIR)/libdb_plugins_a-ProxyDatabasePlugin.Tpo -c -o src/db/plugins/libdb_plugins_a-ProxyDatabasePlugin.o `test -f 'src/db/plugins/ProxyDatabasePlugin.cxx' || echo '$(srcdir)/'`src/db/plugins/ProxyDatabasePlugin.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/db/plugins/$(DEPDIR)/libdb_plugins_a-ProxyDatabasePlugin.Tpo src/db/plugins/$(DEPDIR)/libdb_plugins_a-ProxyDatabasePlugin.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/db/plugins/ProxyDatabasePlugin.cxx' object='src/db/plugins/libdb_plugins_a-ProxyDatabasePlugin.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/db/plugins/libdb_plugins_a-ProxyDatabasePlugin.o `test -f 'src/db/plugins/ProxyDatabasePlugin.cxx' || echo '$(srcdir)/'`src/db/plugins/ProxyDatabasePlugin.cxx
+
+src/db/plugins/libdb_plugins_a-ProxyDatabasePlugin.obj: src/db/plugins/ProxyDatabasePlugin.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/db/plugins/libdb_plugins_a-ProxyDatabasePlugin.obj -MD -MP -MF src/db/plugins/$(DEPDIR)/libdb_plugins_a-ProxyDatabasePlugin.Tpo -c -o src/db/plugins/libdb_plugins_a-ProxyDatabasePlugin.obj `if test -f 'src/db/plugins/ProxyDatabasePlugin.cxx'; then $(CYGPATH_W) 'src/db/plugins/ProxyDatabasePlugin.cxx'; else $(CYGPATH_W) '$(srcdir)/src/d [...]
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/db/plugins/$(DEPDIR)/libdb_plugins_a-ProxyDatabasePlugin.Tpo src/db/plugins/$(DEPDIR)/libdb_plugins_a-ProxyDatabasePlugin.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/db/plugins/ProxyDatabasePlugin.cxx' object='src/db/plugins/libdb_plugins_a-ProxyDatabasePlugin.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/db/plugins/libdb_plugins_a-ProxyDatabasePlugin.obj `if test -f 'src/db/plugins/ProxyDatabasePlugin.cxx'; then $(CYGPATH_W) 'src/db/plugins/ProxyDatabasePlugin.cxx'; else $(CYGPATH_W) '$(srcdir)/src/db/plugins/ProxyDatabasePlugin.cxx'; fi`
+
+src/lib/upnp/libdb_plugins_a-Init.o: src/lib/upnp/Init.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/lib/upnp/libdb_plugins_a-Init.o -MD -MP -MF src/lib/upnp/$(DEPDIR)/libdb_plugins_a-Init.Tpo -c -o src/lib/upnp/libdb_plugins_a-Init.o `test -f 'src/lib/upnp/Init.cxx' || echo '$(srcdir)/'`src/lib/upnp/Init.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/lib/upnp/$(DEPDIR)/libdb_plugins_a-Init.Tpo src/lib/upnp/$(DEPDIR)/libdb_plugins_a-Init.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/lib/upnp/Init.cxx' object='src/lib/upnp/libdb_plugins_a-Init.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/lib/upnp/libdb_plugins_a-Init.o `test -f 'src/lib/upnp/Init.cxx' || echo '$(srcdir)/'`src/lib/upnp/Init.cxx
+
+src/lib/upnp/libdb_plugins_a-Init.obj: src/lib/upnp/Init.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/lib/upnp/libdb_plugins_a-Init.obj -MD -MP -MF src/lib/upnp/$(DEPDIR)/libdb_plugins_a-Init.Tpo -c -o src/lib/upnp/libdb_plugins_a-Init.obj `if test -f 'src/lib/upnp/Init.cxx'; then $(CYGPATH_W) 'src/lib/upnp/Init.cxx'; else $(CYGPATH_W) '$(srcdir)/src/lib/upnp/Init.cxx'; fi`
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/lib/upnp/$(DEPDIR)/libdb_plugins_a-Init.Tpo src/lib/upnp/$(DEPDIR)/libdb_plugins_a-Init.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/lib/upnp/Init.cxx' object='src/lib/upnp/libdb_plugins_a-Init.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/lib/upnp/libdb_plugins_a-Init.obj `if test -f 'src/lib/upnp/Init.cxx'; then $(CYGPATH_W) 'src/lib/upnp/Init.cxx'; else $(CYGPATH_W) '$(srcdir)/src/lib/upnp/Init.cxx'; fi`
+
+src/lib/upnp/libdb_plugins_a-ClientInit.o: src/lib/upnp/ClientInit.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/lib/upnp/libdb_plugins_a-ClientInit.o -MD -MP -MF src/lib/upnp/$(DEPDIR)/libdb_plugins_a-ClientInit.Tpo -c -o src/lib/upnp/libdb_plugins_a-ClientInit.o `test -f 'src/lib/upnp/ClientInit.cxx' || echo '$(srcdir)/'`src/lib/upnp/ClientInit.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/lib/upnp/$(DEPDIR)/libdb_plugins_a-ClientInit.Tpo src/lib/upnp/$(DEPDIR)/libdb_plugins_a-ClientInit.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/lib/upnp/ClientInit.cxx' object='src/lib/upnp/libdb_plugins_a-ClientInit.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/lib/upnp/libdb_plugins_a-ClientInit.o `test -f 'src/lib/upnp/ClientInit.cxx' || echo '$(srcdir)/'`src/lib/upnp/ClientInit.cxx
+
+src/lib/upnp/libdb_plugins_a-ClientInit.obj: src/lib/upnp/ClientInit.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/lib/upnp/libdb_plugins_a-ClientInit.obj -MD -MP -MF src/lib/upnp/$(DEPDIR)/libdb_plugins_a-ClientInit.Tpo -c -o src/lib/upnp/libdb_plugins_a-ClientInit.obj `if test -f 'src/lib/upnp/ClientInit.cxx'; then $(CYGPATH_W) 'src/lib/upnp/ClientInit.cxx'; else $(CYGPATH_W) '$(srcdir)/src/lib/upnp/ClientInit.cxx'; fi`
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/lib/upnp/$(DEPDIR)/libdb_plugins_a-ClientInit.Tpo src/lib/upnp/$(DEPDIR)/libdb_plugins_a-ClientInit.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/lib/upnp/ClientInit.cxx' object='src/lib/upnp/libdb_plugins_a-ClientInit.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/lib/upnp/libdb_plugins_a-ClientInit.obj `if test -f 'src/lib/upnp/ClientInit.cxx'; then $(CYGPATH_W) 'src/lib/upnp/ClientInit.cxx'; else $(CYGPATH_W) '$(srcdir)/src/lib/upnp/ClientInit.cxx'; fi`
+
+src/lib/upnp/libdb_plugins_a-Device.o: src/lib/upnp/Device.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/lib/upnp/libdb_plugins_a-Device.o -MD -MP -MF src/lib/upnp/$(DEPDIR)/libdb_plugins_a-Device.Tpo -c -o src/lib/upnp/libdb_plugins_a-Device.o `test -f 'src/lib/upnp/Device.cxx' || echo '$(srcdir)/'`src/lib/upnp/Device.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/lib/upnp/$(DEPDIR)/libdb_plugins_a-Device.Tpo src/lib/upnp/$(DEPDIR)/libdb_plugins_a-Device.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/lib/upnp/Device.cxx' object='src/lib/upnp/libdb_plugins_a-Device.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/lib/upnp/libdb_plugins_a-Device.o `test -f 'src/lib/upnp/Device.cxx' || echo '$(srcdir)/'`src/lib/upnp/Device.cxx
+
+src/lib/upnp/libdb_plugins_a-Device.obj: src/lib/upnp/Device.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/lib/upnp/libdb_plugins_a-Device.obj -MD -MP -MF src/lib/upnp/$(DEPDIR)/libdb_plugins_a-Device.Tpo -c -o src/lib/upnp/libdb_plugins_a-Device.obj `if test -f 'src/lib/upnp/Device.cxx'; then $(CYGPATH_W) 'src/lib/upnp/Device.cxx'; else $(CYGPATH_W) '$(srcdir)/src/lib/upnp/Device.cxx'; fi`
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/lib/upnp/$(DEPDIR)/libdb_plugins_a-Device.Tpo src/lib/upnp/$(DEPDIR)/libdb_plugins_a-Device.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/lib/upnp/Device.cxx' object='src/lib/upnp/libdb_plugins_a-Device.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/lib/upnp/libdb_plugins_a-Device.obj `if test -f 'src/lib/upnp/Device.cxx'; then $(CYGPATH_W) 'src/lib/upnp/Device.cxx'; else $(CYGPATH_W) '$(srcdir)/src/lib/upnp/Device.cxx'; fi`
+
+src/lib/upnp/libdb_plugins_a-ContentDirectoryService.o: src/lib/upnp/ContentDirectoryService.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/lib/upnp/libdb_plugins_a-ContentDirectoryService.o -MD -MP -MF src/lib/upnp/$(DEPDIR)/libdb_plugins_a-ContentDirectoryService.Tpo -c -o src/lib/upnp/libdb_plugins_a-ContentDirectoryService.o `test -f 'src/lib/upnp/ContentDirectoryService.cxx' || echo '$(srcdir)/'`src/lib/upnp/ContentDirectoryService.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/lib/upnp/$(DEPDIR)/libdb_plugins_a-ContentDirectoryService.Tpo src/lib/upnp/$(DEPDIR)/libdb_plugins_a-ContentDirectoryService.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/lib/upnp/ContentDirectoryService.cxx' object='src/lib/upnp/libdb_plugins_a-ContentDirectoryService.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/lib/upnp/libdb_plugins_a-ContentDirectoryService.o `test -f 'src/lib/upnp/ContentDirectoryService.cxx' || echo '$(srcdir)/'`src/lib/upnp/ContentDirectoryService.cxx
+
+src/lib/upnp/libdb_plugins_a-ContentDirectoryService.obj: src/lib/upnp/ContentDirectoryService.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/lib/upnp/libdb_plugins_a-ContentDirectoryService.obj -MD -MP -MF src/lib/upnp/$(DEPDIR)/libdb_plugins_a-ContentDirectoryService.Tpo -c -o src/lib/upnp/libdb_plugins_a-ContentDirectoryService.obj `if test -f 'src/lib/upnp/ContentDirectoryService.cxx'; then $(CYGPATH_W) 'src/lib/upnp/ContentDirectoryService.cxx'; else $(CYGPATH_W) '$(src [...]
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/lib/upnp/$(DEPDIR)/libdb_plugins_a-ContentDirectoryService.Tpo src/lib/upnp/$(DEPDIR)/libdb_plugins_a-ContentDirectoryService.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/lib/upnp/ContentDirectoryService.cxx' object='src/lib/upnp/libdb_plugins_a-ContentDirectoryService.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/lib/upnp/libdb_plugins_a-ContentDirectoryService.obj `if test -f 'src/lib/upnp/ContentDirectoryService.cxx'; then $(CYGPATH_W) 'src/lib/upnp/ContentDirectoryService.cxx'; else $(CYGPATH_W) '$(srcdir)/src/lib/upnp/ContentDirectoryService.cxx'; fi`
+
+src/lib/upnp/libdb_plugins_a-Discovery.o: src/lib/upnp/Discovery.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/lib/upnp/libdb_plugins_a-Discovery.o -MD -MP -MF src/lib/upnp/$(DEPDIR)/libdb_plugins_a-Discovery.Tpo -c -o src/lib/upnp/libdb_plugins_a-Discovery.o `test -f 'src/lib/upnp/Discovery.cxx' || echo '$(srcdir)/'`src/lib/upnp/Discovery.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/lib/upnp/$(DEPDIR)/libdb_plugins_a-Discovery.Tpo src/lib/upnp/$(DEPDIR)/libdb_plugins_a-Discovery.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/lib/upnp/Discovery.cxx' object='src/lib/upnp/libdb_plugins_a-Discovery.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/lib/upnp/libdb_plugins_a-Discovery.o `test -f 'src/lib/upnp/Discovery.cxx' || echo '$(srcdir)/'`src/lib/upnp/Discovery.cxx
+
+src/lib/upnp/libdb_plugins_a-Discovery.obj: src/lib/upnp/Discovery.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/lib/upnp/libdb_plugins_a-Discovery.obj -MD -MP -MF src/lib/upnp/$(DEPDIR)/libdb_plugins_a-Discovery.Tpo -c -o src/lib/upnp/libdb_plugins_a-Discovery.obj `if test -f 'src/lib/upnp/Discovery.cxx'; then $(CYGPATH_W) 'src/lib/upnp/Discovery.cxx'; else $(CYGPATH_W) '$(srcdir)/src/lib/upnp/Discovery.cxx'; fi`
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/lib/upnp/$(DEPDIR)/libdb_plugins_a-Discovery.Tpo src/lib/upnp/$(DEPDIR)/libdb_plugins_a-Discovery.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/lib/upnp/Discovery.cxx' object='src/lib/upnp/libdb_plugins_a-Discovery.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/lib/upnp/libdb_plugins_a-Discovery.obj `if test -f 'src/lib/upnp/Discovery.cxx'; then $(CYGPATH_W) 'src/lib/upnp/Discovery.cxx'; else $(CYGPATH_W) '$(srcdir)/src/lib/upnp/Discovery.cxx'; fi`
+
+src/lib/upnp/libdb_plugins_a-ixmlwrap.o: src/lib/upnp/ixmlwrap.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/lib/upnp/libdb_plugins_a-ixmlwrap.o -MD -MP -MF src/lib/upnp/$(DEPDIR)/libdb_plugins_a-ixmlwrap.Tpo -c -o src/lib/upnp/libdb_plugins_a-ixmlwrap.o `test -f 'src/lib/upnp/ixmlwrap.cxx' || echo '$(srcdir)/'`src/lib/upnp/ixmlwrap.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/lib/upnp/$(DEPDIR)/libdb_plugins_a-ixmlwrap.Tpo src/lib/upnp/$(DEPDIR)/libdb_plugins_a-ixmlwrap.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/lib/upnp/ixmlwrap.cxx' object='src/lib/upnp/libdb_plugins_a-ixmlwrap.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/lib/upnp/libdb_plugins_a-ixmlwrap.o `test -f 'src/lib/upnp/ixmlwrap.cxx' || echo '$(srcdir)/'`src/lib/upnp/ixmlwrap.cxx
+
+src/lib/upnp/libdb_plugins_a-ixmlwrap.obj: src/lib/upnp/ixmlwrap.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/lib/upnp/libdb_plugins_a-ixmlwrap.obj -MD -MP -MF src/lib/upnp/$(DEPDIR)/libdb_plugins_a-ixmlwrap.Tpo -c -o src/lib/upnp/libdb_plugins_a-ixmlwrap.obj `if test -f 'src/lib/upnp/ixmlwrap.cxx'; then $(CYGPATH_W) 'src/lib/upnp/ixmlwrap.cxx'; else $(CYGPATH_W) '$(srcdir)/src/lib/upnp/ixmlwrap.cxx'; fi`
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/lib/upnp/$(DEPDIR)/libdb_plugins_a-ixmlwrap.Tpo src/lib/upnp/$(DEPDIR)/libdb_plugins_a-ixmlwrap.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/lib/upnp/ixmlwrap.cxx' object='src/lib/upnp/libdb_plugins_a-ixmlwrap.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/lib/upnp/libdb_plugins_a-ixmlwrap.obj `if test -f 'src/lib/upnp/ixmlwrap.cxx'; then $(CYGPATH_W) 'src/lib/upnp/ixmlwrap.cxx'; else $(CYGPATH_W) '$(srcdir)/src/lib/upnp/ixmlwrap.cxx'; fi`
+
+src/lib/upnp/libdb_plugins_a-Util.o: src/lib/upnp/Util.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/lib/upnp/libdb_plugins_a-Util.o -MD -MP -MF src/lib/upnp/$(DEPDIR)/libdb_plugins_a-Util.Tpo -c -o src/lib/upnp/libdb_plugins_a-Util.o `test -f 'src/lib/upnp/Util.cxx' || echo '$(srcdir)/'`src/lib/upnp/Util.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/lib/upnp/$(DEPDIR)/libdb_plugins_a-Util.Tpo src/lib/upnp/$(DEPDIR)/libdb_plugins_a-Util.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/lib/upnp/Util.cxx' object='src/lib/upnp/libdb_plugins_a-Util.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/lib/upnp/libdb_plugins_a-Util.o `test -f 'src/lib/upnp/Util.cxx' || echo '$(srcdir)/'`src/lib/upnp/Util.cxx
+
+src/lib/upnp/libdb_plugins_a-Util.obj: src/lib/upnp/Util.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/lib/upnp/libdb_plugins_a-Util.obj -MD -MP -MF src/lib/upnp/$(DEPDIR)/libdb_plugins_a-Util.Tpo -c -o src/lib/upnp/libdb_plugins_a-Util.obj `if test -f 'src/lib/upnp/Util.cxx'; then $(CYGPATH_W) 'src/lib/upnp/Util.cxx'; else $(CYGPATH_W) '$(srcdir)/src/lib/upnp/Util.cxx'; fi`
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/lib/upnp/$(DEPDIR)/libdb_plugins_a-Util.Tpo src/lib/upnp/$(DEPDIR)/libdb_plugins_a-Util.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/lib/upnp/Util.cxx' object='src/lib/upnp/libdb_plugins_a-Util.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/lib/upnp/libdb_plugins_a-Util.obj `if test -f 'src/lib/upnp/Util.cxx'; then $(CYGPATH_W) 'src/lib/upnp/Util.cxx'; else $(CYGPATH_W) '$(srcdir)/src/lib/upnp/Util.cxx'; fi`
+
+src/db/plugins/upnp/libdb_plugins_a-UpnpDatabasePlugin.o: src/db/plugins/upnp/UpnpDatabasePlugin.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/db/plugins/upnp/libdb_plugins_a-UpnpDatabasePlugin.o -MD -MP -MF src/db/plugins/upnp/$(DEPDIR)/libdb_plugins_a-UpnpDatabasePlugin.Tpo -c -o src/db/plugins/upnp/libdb_plugins_a-UpnpDatabasePlugin.o `test -f 'src/db/plugins/upnp/UpnpDatabasePlugin.cxx' || echo '$(srcdir)/'`src/db/plugins/upnp/UpnpDatabasePlugin.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/db/plugins/upnp/$(DEPDIR)/libdb_plugins_a-UpnpDatabasePlugin.Tpo src/db/plugins/upnp/$(DEPDIR)/libdb_plugins_a-UpnpDatabasePlugin.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/db/plugins/upnp/UpnpDatabasePlugin.cxx' object='src/db/plugins/upnp/libdb_plugins_a-UpnpDatabasePlugin.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/db/plugins/upnp/libdb_plugins_a-UpnpDatabasePlugin.o `test -f 'src/db/plugins/upnp/UpnpDatabasePlugin.cxx' || echo '$(srcdir)/'`src/db/plugins/upnp/UpnpDatabasePlugin.cxx
+
+src/db/plugins/upnp/libdb_plugins_a-UpnpDatabasePlugin.obj: src/db/plugins/upnp/UpnpDatabasePlugin.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/db/plugins/upnp/libdb_plugins_a-UpnpDatabasePlugin.obj -MD -MP -MF src/db/plugins/upnp/$(DEPDIR)/libdb_plugins_a-UpnpDatabasePlugin.Tpo -c -o src/db/plugins/upnp/libdb_plugins_a-UpnpDatabasePlugin.obj `if test -f 'src/db/plugins/upnp/UpnpDatabasePlugin.cxx'; then $(CYGPATH_W) 'src/db/plugins/upnp/UpnpDatabasePlugin.cxx'; else $(CYGPATH [...]
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/db/plugins/upnp/$(DEPDIR)/libdb_plugins_a-UpnpDatabasePlugin.Tpo src/db/plugins/upnp/$(DEPDIR)/libdb_plugins_a-UpnpDatabasePlugin.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/db/plugins/upnp/UpnpDatabasePlugin.cxx' object='src/db/plugins/upnp/libdb_plugins_a-UpnpDatabasePlugin.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/db/plugins/upnp/libdb_plugins_a-UpnpDatabasePlugin.obj `if test -f 'src/db/plugins/upnp/UpnpDatabasePlugin.cxx'; then $(CYGPATH_W) 'src/db/plugins/upnp/UpnpDatabasePlugin.cxx'; else $(CYGPATH_W) '$(srcdir)/src/db/plugins/upnp/UpnpDatabasePlugin.cxx'; fi`
+
+src/db/plugins/upnp/libdb_plugins_a-Tags.o: src/db/plugins/upnp/Tags.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/db/plugins/upnp/libdb_plugins_a-Tags.o -MD -MP -MF src/db/plugins/upnp/$(DEPDIR)/libdb_plugins_a-Tags.Tpo -c -o src/db/plugins/upnp/libdb_plugins_a-Tags.o `test -f 'src/db/plugins/upnp/Tags.cxx' || echo '$(srcdir)/'`src/db/plugins/upnp/Tags.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/db/plugins/upnp/$(DEPDIR)/libdb_plugins_a-Tags.Tpo src/db/plugins/upnp/$(DEPDIR)/libdb_plugins_a-Tags.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/db/plugins/upnp/Tags.cxx' object='src/db/plugins/upnp/libdb_plugins_a-Tags.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/db/plugins/upnp/libdb_plugins_a-Tags.o `test -f 'src/db/plugins/upnp/Tags.cxx' || echo '$(srcdir)/'`src/db/plugins/upnp/Tags.cxx
+
+src/db/plugins/upnp/libdb_plugins_a-Tags.obj: src/db/plugins/upnp/Tags.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/db/plugins/upnp/libdb_plugins_a-Tags.obj -MD -MP -MF src/db/plugins/upnp/$(DEPDIR)/libdb_plugins_a-Tags.Tpo -c -o src/db/plugins/upnp/libdb_plugins_a-Tags.obj `if test -f 'src/db/plugins/upnp/Tags.cxx'; then $(CYGPATH_W) 'src/db/plugins/upnp/Tags.cxx'; else $(CYGPATH_W) '$(srcdir)/src/db/plugins/upnp/Tags.cxx'; fi`
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/db/plugins/upnp/$(DEPDIR)/libdb_plugins_a-Tags.Tpo src/db/plugins/upnp/$(DEPDIR)/libdb_plugins_a-Tags.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/db/plugins/upnp/Tags.cxx' object='src/db/plugins/upnp/libdb_plugins_a-Tags.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/db/plugins/upnp/libdb_plugins_a-Tags.obj `if test -f 'src/db/plugins/upnp/Tags.cxx'; then $(CYGPATH_W) 'src/db/plugins/upnp/Tags.cxx'; else $(CYGPATH_W) '$(srcdir)/src/db/plugins/upnp/Tags.cxx'; fi`
+
+src/db/plugins/upnp/libdb_plugins_a-ContentDirectoryService.o: src/db/plugins/upnp/ContentDirectoryService.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/db/plugins/upnp/libdb_plugins_a-ContentDirectoryService.o -MD -MP -MF src/db/plugins/upnp/$(DEPDIR)/libdb_plugins_a-ContentDirectoryService.Tpo -c -o src/db/plugins/upnp/libdb_plugins_a-ContentDirectoryService.o `test -f 'src/db/plugins/upnp/ContentDirectoryService.cxx' || echo '$(srcdir)/'`src/db/plugins/upnp/ContentDirectoryService.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/db/plugins/upnp/$(DEPDIR)/libdb_plugins_a-ContentDirectoryService.Tpo src/db/plugins/upnp/$(DEPDIR)/libdb_plugins_a-ContentDirectoryService.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/db/plugins/upnp/ContentDirectoryService.cxx' object='src/db/plugins/upnp/libdb_plugins_a-ContentDirectoryService.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/db/plugins/upnp/libdb_plugins_a-ContentDirectoryService.o `test -f 'src/db/plugins/upnp/ContentDirectoryService.cxx' || echo '$(srcdir)/'`src/db/plugins/upnp/ContentDirectoryService.cxx
+
+src/db/plugins/upnp/libdb_plugins_a-ContentDirectoryService.obj: src/db/plugins/upnp/ContentDirectoryService.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/db/plugins/upnp/libdb_plugins_a-ContentDirectoryService.obj -MD -MP -MF src/db/plugins/upnp/$(DEPDIR)/libdb_plugins_a-ContentDirectoryService.Tpo -c -o src/db/plugins/upnp/libdb_plugins_a-ContentDirectoryService.obj `if test -f 'src/db/plugins/upnp/ContentDirectoryService.cxx'; then $(CYGPATH_W) 'src/db/plugins/upnp/ContentDirectorySer [...]
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/db/plugins/upnp/$(DEPDIR)/libdb_plugins_a-ContentDirectoryService.Tpo src/db/plugins/upnp/$(DEPDIR)/libdb_plugins_a-ContentDirectoryService.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/db/plugins/upnp/ContentDirectoryService.cxx' object='src/db/plugins/upnp/libdb_plugins_a-ContentDirectoryService.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/db/plugins/upnp/libdb_plugins_a-ContentDirectoryService.obj `if test -f 'src/db/plugins/upnp/ContentDirectoryService.cxx'; then $(CYGPATH_W) 'src/db/plugins/upnp/ContentDirectoryService.cxx'; else $(CYGPATH_W) '$(srcdir)/src/db/plugins/upnp/ContentDirectoryService.cxx'; fi`
+
+src/db/plugins/upnp/libdb_plugins_a-Directory.o: src/db/plugins/upnp/Directory.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/db/plugins/upnp/libdb_plugins_a-Directory.o -MD -MP -MF src/db/plugins/upnp/$(DEPDIR)/libdb_plugins_a-Directory.Tpo -c -o src/db/plugins/upnp/libdb_plugins_a-Directory.o `test -f 'src/db/plugins/upnp/Directory.cxx' || echo '$(srcdir)/'`src/db/plugins/upnp/Directory.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/db/plugins/upnp/$(DEPDIR)/libdb_plugins_a-Directory.Tpo src/db/plugins/upnp/$(DEPDIR)/libdb_plugins_a-Directory.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/db/plugins/upnp/Directory.cxx' object='src/db/plugins/upnp/libdb_plugins_a-Directory.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/db/plugins/upnp/libdb_plugins_a-Directory.o `test -f 'src/db/plugins/upnp/Directory.cxx' || echo '$(srcdir)/'`src/db/plugins/upnp/Directory.cxx
+
+src/db/plugins/upnp/libdb_plugins_a-Directory.obj: src/db/plugins/upnp/Directory.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/db/plugins/upnp/libdb_plugins_a-Directory.obj -MD -MP -MF src/db/plugins/upnp/$(DEPDIR)/libdb_plugins_a-Directory.Tpo -c -o src/db/plugins/upnp/libdb_plugins_a-Directory.obj `if test -f 'src/db/plugins/upnp/Directory.cxx'; then $(CYGPATH_W) 'src/db/plugins/upnp/Directory.cxx'; else $(CYGPATH_W) '$(srcdir)/src/db/plugins/upnp/Directory. [...]
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/db/plugins/upnp/$(DEPDIR)/libdb_plugins_a-Directory.Tpo src/db/plugins/upnp/$(DEPDIR)/libdb_plugins_a-Directory.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/db/plugins/upnp/Directory.cxx' object='src/db/plugins/upnp/libdb_plugins_a-Directory.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/db/plugins/upnp/libdb_plugins_a-Directory.obj `if test -f 'src/db/plugins/upnp/Directory.cxx'; then $(CYGPATH_W) 'src/db/plugins/upnp/Directory.cxx'; else $(CYGPATH_W) '$(srcdir)/src/db/plugins/upnp/Directory.cxx'; fi`
+
+src/db/plugins/upnp/libdb_plugins_a-Object.o: src/db/plugins/upnp/Object.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/db/plugins/upnp/libdb_plugins_a-Object.o -MD -MP -MF src/db/plugins/upnp/$(DEPDIR)/libdb_plugins_a-Object.Tpo -c -o src/db/plugins/upnp/libdb_plugins_a-Object.o `test -f 'src/db/plugins/upnp/Object.cxx' || echo '$(srcdir)/'`src/db/plugins/upnp/Object.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/db/plugins/upnp/$(DEPDIR)/libdb_plugins_a-Object.Tpo src/db/plugins/upnp/$(DEPDIR)/libdb_plugins_a-Object.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/db/plugins/upnp/Object.cxx' object='src/db/plugins/upnp/libdb_plugins_a-Object.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/db/plugins/upnp/libdb_plugins_a-Object.o `test -f 'src/db/plugins/upnp/Object.cxx' || echo '$(srcdir)/'`src/db/plugins/upnp/Object.cxx
+
+src/db/plugins/upnp/libdb_plugins_a-Object.obj: src/db/plugins/upnp/Object.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/db/plugins/upnp/libdb_plugins_a-Object.obj -MD -MP -MF src/db/plugins/upnp/$(DEPDIR)/libdb_plugins_a-Object.Tpo -c -o src/db/plugins/upnp/libdb_plugins_a-Object.obj `if test -f 'src/db/plugins/upnp/Object.cxx'; then $(CYGPATH_W) 'src/db/plugins/upnp/Object.cxx'; else $(CYGPATH_W) '$(srcdir)/src/db/plugins/upnp/Object.cxx'; fi`
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/db/plugins/upnp/$(DEPDIR)/libdb_plugins_a-Object.Tpo src/db/plugins/upnp/$(DEPDIR)/libdb_plugins_a-Object.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/db/plugins/upnp/Object.cxx' object='src/db/plugins/upnp/libdb_plugins_a-Object.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdb_plugins_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/db/plugins/upnp/libdb_plugins_a-Object.obj `if test -f 'src/db/plugins/upnp/Object.cxx'; then $(CYGPATH_W) 'src/db/plugins/upnp/Object.cxx'; else $(CYGPATH_W) '$(srcdir)/src/db/plugins/upnp/Object.cxx'; fi`
+
src/decoder/plugins/libdecoder_a-PcmDecoderPlugin.o: src/decoder/plugins/PcmDecoderPlugin.cxx
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdecoder_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/decoder/plugins/libdecoder_a-PcmDecoderPlugin.o -MD -MP -MF src/decoder/plugins/$(DEPDIR)/libdecoder_a-PcmDecoderPlugin.Tpo -c -o src/decoder/plugins/libdecoder_a-PcmDecoderPlugin.o `test -f 'src/decoder/plugins/PcmDecoderPlugin.cxx' || echo '$(srcdir)/'`src/decoder/plugins/PcmDecoderPlugin.cxx
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/decoder/plugins/$(DEPDIR)/libdecoder_a-PcmDecoderPlugin.Tpo src/decoder/plugins/$(DEPDIR)/libdecoder_a-PcmDecoderPlugin.Po
@@ -13085,6 +13445,20 @@ src/storage/plugins/libstorage_a-LocalStorage.obj: src/storage/plugins/LocalStor
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstorage_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/storage/plugins/libstorage_a-LocalStorage.obj `if test -f 'src/storage/plugins/LocalStorage.cxx'; then $(CYGPATH_W) 'src/storage/plugins/LocalStorage.cxx'; else $(CYGPATH_W) '$(srcdir)/src/storage/plugins/LocalStorage.cxx'; fi`
+src/storage/libstorage_a-StorageState.o: src/storage/StorageState.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstorage_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/storage/libstorage_a-StorageState.o -MD -MP -MF src/storage/$(DEPDIR)/libstorage_a-StorageState.Tpo -c -o src/storage/libstorage_a-StorageState.o `test -f 'src/storage/StorageState.cxx' || echo '$(srcdir)/'`src/storage/StorageState.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/storage/$(DEPDIR)/libstorage_a-StorageState.Tpo src/storage/$(DEPDIR)/libstorage_a-StorageState.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/storage/StorageState.cxx' object='src/storage/libstorage_a-StorageState.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstorage_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/storage/libstorage_a-StorageState.o `test -f 'src/storage/StorageState.cxx' || echo '$(srcdir)/'`src/storage/StorageState.cxx
+
+src/storage/libstorage_a-StorageState.obj: src/storage/StorageState.cxx
+ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstorage_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/storage/libstorage_a-StorageState.obj -MD -MP -MF src/storage/$(DEPDIR)/libstorage_a-StorageState.Tpo -c -o src/storage/libstorage_a-StorageState.obj `if test -f 'src/storage/StorageState.cxx'; then $(CYGPATH_W) 'src/storage/StorageState.cxx'; else $(CYGPATH_W) '$(srcdir)/src/storage/StorageState.cxx'; fi`
+ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/storage/$(DEPDIR)/libstorage_a-StorageState.Tpo src/storage/$(DEPDIR)/libstorage_a-StorageState.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/storage/StorageState.cxx' object='src/storage/libstorage_a-StorageState.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstorage_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/storage/libstorage_a-StorageState.obj `if test -f 'src/storage/StorageState.cxx'; then $(CYGPATH_W) 'src/storage/StorageState.cxx'; else $(CYGPATH_W) '$(srcdir)/src/storage/StorageState.cxx'; fi`
+
src/lib/smbclient/libstorage_a-Domain.o: src/lib/smbclient/Domain.cxx
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstorage_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/lib/smbclient/libstorage_a-Domain.o -MD -MP -MF src/lib/smbclient/$(DEPDIR)/libstorage_a-Domain.Tpo -c -o src/lib/smbclient/libstorage_a-Domain.o `test -f 'src/lib/smbclient/Domain.cxx' || echo '$(srcdir)/'`src/lib/smbclient/Domain.cxx
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/lib/smbclient/$(DEPDIR)/libstorage_a-Domain.Tpo src/lib/smbclient/$(DEPDIR)/libstorage_a-Domain.Po
@@ -15229,8 +15603,8 @@ maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
- at ENABLE_DOCUMENTATION_FALSE@install-data-local:
@ANDROID_FALSE@@ENABLE_DOCUMENTATION_FALSE@@ENABLE_HAIKU_FALSE at clean-local:
+ at ENABLE_DOCUMENTATION_FALSE@install-data-local:
@ENABLE_DOCUMENTATION_FALSE at uninstall-local:
clean: clean-am
diff --git a/NEWS b/NEWS
index bac4597..4f73e39 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,18 @@
+ver 0.20.13 (2017/12/18)
+* output
+ - osx: set up ring buffer to hold at least 100ms
+* mixer
+ - alsa: fix rounding errors
+* database
+ - simple: don't purge mount points on update/rescan
+ - simple: fix "mount" bug caused by bad compiler optimization
+ - simple: fix "lsinfo" into mount points
+ - upnp: work around libupnp 1.6.24 API breakage
+* queue: fix spuriously misplaced prioritized songs
+* save and restore mountpoints within the state file
+* include Windows cross-build script in source tarball
+* fix Windows build failures
+
ver 0.20.12 (2017/11/25)
* database
- upnp: adapt to libupnp 1.8 API changes
diff --git a/android/build.py b/android/build.py
index 3ec3d9b..fab6ecb 100755
--- a/android/build.py
+++ b/android/build.py
@@ -46,13 +46,14 @@ class AndroidNdkToolchain:
self.ndk_arch = 'arm'
android_abi = 'armeabi-v7a'
- ndk_platform = 'android-14'
+ ndk_platform = 'android-21'
# select the NDK compiler
gcc_version = '4.9'
ndk_platform_path = os.path.join(ndk_path, 'platforms', ndk_platform)
- sysroot = os.path.join(ndk_platform_path, 'arch-' + self.ndk_arch)
+ sysroot = os.path.join(ndk_path, 'sysroot')
+ target_root = os.path.join(ndk_platform_path, 'arch-' + self.ndk_arch)
install_prefix = os.path.join(arch_path, 'root')
@@ -79,8 +80,15 @@ class AndroidNdkToolchain:
self.cflags = '-Os -g ' + common_flags
self.cxxflags = '-Os -g ' + common_flags
- self.cppflags = '--sysroot=' + self.sysroot + ' -isystem ' + os.path.join(install_prefix, 'include')
- self.ldflags = '--sysroot=' + self.sysroot + ' ' + common_flags + ' -L' + os.path.join(install_prefix, 'lib')
+ self.cppflags = '--sysroot=' + sysroot + \
+ ' -isystem ' + os.path.join(install_prefix, 'include') + \
+ ' -isystem ' + os.path.join(sysroot, 'usr', 'include', arch) + \
+ ' -D__ANDROID_API__=21'
+ self.ldflags = '--sysroot=' + sysroot + \
+ ' -L' + os.path.join(install_prefix, 'lib') + \
+ ' -L' + os.path.join(target_root, 'usr', 'lib') + \
+ ' -B' + os.path.join(target_root, 'usr', 'lib') + \
+ ' ' + common_flags
self.libs = ''
self.is_arm = self.ndk_arch == 'arm'
diff --git a/configure b/configure
index 9e282f9..4429caa 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for mpd 0.20.12.
+# Generated by GNU Autoconf 2.69 for mpd 0.20.13.
#
# Report bugs to <musicpd-dev-team at lists.sourceforge.net>.
#
@@ -580,8 +580,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='mpd'
PACKAGE_TARNAME='mpd'
-PACKAGE_VERSION='0.20.12'
-PACKAGE_STRING='mpd 0.20.12'
+PACKAGE_VERSION='0.20.13'
+PACKAGE_STRING='mpd 0.20.13'
PACKAGE_BUGREPORT='musicpd-dev-team at lists.sourceforge.net'
PACKAGE_URL=''
@@ -1785,7 +1785,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures mpd 0.20.12 to adapt to many kinds of systems.
+\`configure' configures mpd 0.20.13 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1856,7 +1856,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of mpd 0.20.12:";;
+ short | recursive ) echo "Configuration of mpd 0.20.13:";;
esac
cat <<\_ACEOF
@@ -2209,7 +2209,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-mpd configure 0.20.12
+mpd configure 0.20.13
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2616,7 +2616,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by mpd $as_me 0.20.12, which was
+It was created by mpd $as_me 0.20.13, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2967,7 +2967,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
VERSION_MAJOR=0
VERSION_MINOR=20
-VERSION_REVISION=12
+VERSION_REVISION=13
VERSION_EXTRA=0
@@ -3486,7 +3486,7 @@ fi
# Define the identity of the package.
PACKAGE='mpd'
- VERSION='0.20.12'
+ VERSION='0.20.13'
cat >>confdefs.h <<_ACEOF
@@ -9629,7 +9629,7 @@ $as_echo_n "checking for ipv6... " >&6; }
/* end confdefs.h. */
#include <sys/types.h>
-#ifdef WIN32
+#ifdef _WIN32
#include <winsock2.h>
#else
#include <sys/socket.h>
@@ -21779,7 +21779,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by mpd $as_me 0.20.12, which was
+This file was extended by mpd $as_me 0.20.13, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -21845,7 +21845,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-mpd config.status 0.20.12
+mpd config.status 0.20.13
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index 5249044..26a5381 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,10 +1,10 @@
AC_PREREQ(2.60)
-AC_INIT(mpd, 0.20.12, musicpd-dev-team at lists.sourceforge.net)
+AC_INIT(mpd, 0.20.13, musicpd-dev-team at lists.sourceforge.net)
VERSION_MAJOR=0
VERSION_MINOR=20
-VERSION_REVISION=12
+VERSION_REVISION=13
VERSION_EXTRA=0
AC_CONFIG_SRCDIR([src/Main.cxx])
@@ -492,7 +492,7 @@ if test x$enable_ipv6 = xyes; then
AC_EGREP_CPP([AP_maGiC_VALUE],
[
#include <sys/types.h>
-#ifdef WIN32
+#ifdef _WIN32
#include <winsock2.h>
#else
#include <sys/socket.h>
diff --git a/doc/doxygen.conf b/doc/doxygen.conf
index 777050c..c3b1655 100644
--- a/doc/doxygen.conf
+++ b/doc/doxygen.conf
@@ -38,7 +38,7 @@ PROJECT_NAME = MPD
# could be handy for archiving the generated documentation or if some version
# control system is used.
-PROJECT_NUMBER = 0.20.12
+PROJECT_NUMBER = 0.20.13
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
diff --git a/python/build/autotools.py b/python/build/autotools.py
new file mode 100644
index 0000000..d9a1f15
--- /dev/null
+++ b/python/build/autotools.py
@@ -0,0 +1,46 @@
+import os.path, subprocess
+
+from build.project import Project
+
+class AutotoolsProject(Project):
+ def __init__(self, url, md5, installed, configure_args=[],
+ autogen=False,
+ cppflags='',
+ **kwargs):
+ Project.__init__(self, url, md5, installed, **kwargs)
+ self.configure_args = configure_args
+ self.autogen = autogen
+ self.cppflags = cppflags
+
+ def build(self, toolchain):
+ src = self.unpack(toolchain)
+ if self.autogen:
+ subprocess.check_call(['libtoolize', '--force'], cwd=src)
+ subprocess.check_call(['aclocal'], cwd=src)
+ subprocess.check_call(['automake', '--add-missing', '--force-missing', '--foreign'], cwd=src)
+ subprocess.check_call(['autoconf'], cwd=src)
+
+ build = self.make_build_path(toolchain)
+
+ configure = [
+ os.path.join(src, 'configure'),
+ 'CC=' + toolchain.cc,
+ 'CXX=' + toolchain.cxx,
+ 'CFLAGS=' + toolchain.cflags,
+ 'CXXFLAGS=' + toolchain.cxxflags,
+ 'CPPFLAGS=' + toolchain.cppflags + ' ' + self.cppflags,
+ 'LDFLAGS=' + toolchain.ldflags,
+ 'LIBS=' + toolchain.libs,
+ 'AR=' + toolchain.ar,
+ 'RANLIB=' + toolchain.ranlib,
+ 'STRIP=' + toolchain.strip,
+ '--host=' + toolchain.arch,
+ '--prefix=' + toolchain.install_prefix,
+ '--enable-silent-rules',
+ ] + self.configure_args
+
+ subprocess.check_call(configure, cwd=build, env=toolchain.env)
+ subprocess.check_call(['/usr/bin/make', '--quiet', '-j12'],
+ cwd=build, env=toolchain.env)
+ subprocess.check_call(['/usr/bin/make', '--quiet', 'install'],
+ cwd=build, env=toolchain.env)
diff --git a/python/build/boost.py b/python/build/boost.py
new file mode 100644
index 0000000..26cdfae
--- /dev/null
+++ b/python/build/boost.py
@@ -0,0 +1,23 @@
+import os, shutil
+import re
+
+from build.project import Project
+
+class BoostProject(Project):
+ def __init__(self, url, md5, installed,
+ **kwargs):
+ m = re.match(r'.*/boost_(\d+)_(\d+)_(\d+)\.tar\.bz2$', url)
+ version = "%s.%s.%s" % (m.group(1), m.group(2), m.group(3))
+ Project.__init__(self, url, md5, installed,
+ name='boost', version=version,
+ **kwargs)
+
+ def build(self, toolchain):
+ src = self.unpack(toolchain)
+
+ # install the headers manually; don't build any library
+ # (because right now, we only use header-only libraries)
+ includedir = os.path.join(toolchain.install_prefix, 'include')
+ dest = os.path.join(includedir, 'boost')
+ shutil.rmtree(dest, ignore_errors=True)
+ shutil.copytree(os.path.join(src, 'boost'), dest)
diff --git a/python/build/cmdline.py b/python/build/cmdline.py
new file mode 100644
index 0000000..50245f5
--- /dev/null
+++ b/python/build/cmdline.py
@@ -0,0 +1,29 @@
+def concatenate_cmdline_variables(src, names):
+ """Find duplicate variable declarations on the given source list, and
+ concatenate the values of those in the 'names' list."""
+
+ # the result list being constructed
+ dest = []
+
+ # a map of variable name to destination list index
+ positions = {}
+
+ for item in src:
+ i = item.find('=')
+ if i > 0:
+ # it's a variable
+ name = item[:i]
+ if name in names:
+ # it's a known variable
+ if name in positions:
+ # already specified: concatenate instead of
+ # appending it
+ dest[positions[name]] += ' ' + item[i + 1:]
+ continue
+ else:
+ # not yet seen: append it and remember the list
+ # index
+ positions[name] = len(dest)
+ dest.append(item)
+
+ return dest
diff --git a/python/build/dirs.py b/python/build/dirs.py
new file mode 100644
index 0000000..bdbf2b1
--- /dev/null
+++ b/python/build/dirs.py
@@ -0,0 +1,9 @@
+import os.path
+
+lib_path = os.path.abspath('lib')
+
+shared_path = lib_path
+if 'MPD_SHARED_LIB' in os.environ:
+ shared_path = os.environ['MPD_SHARED_LIB']
+tarball_path = os.path.join(shared_path, 'download')
+src_path = os.path.join(shared_path, 'src')
diff --git a/python/build/download.py b/python/build/download.py
new file mode 100644
index 0000000..9cc710c
--- /dev/null
+++ b/python/build/download.py
@@ -0,0 +1,26 @@
+from build.verify import verify_file_digest
+import os
+import urllib.request
+
+def download_and_verify(url, md5, parent_path):
+ """Download a file, verify its MD5 checksum and return the local path."""
+
+ os.makedirs(parent_path, exist_ok=True)
+ path = os.path.join(parent_path, os.path.basename(url))
+
+ try:
+ if verify_file_digest(path, md5): return path
+ os.unlink(path)
+ except FileNotFoundError:
+ pass
+
+ tmp_path = path + '.tmp'
+
+ print("download", url)
+ urllib.request.urlretrieve(url, tmp_path)
+ if not verify_file_digest(tmp_path, md5):
+ os.unlink(tmp_path)
+ raise RuntimeError("Digest mismatch")
+
+ os.rename(tmp_path, path)
+ return path
diff --git a/python/build/ffmpeg.py b/python/build/ffmpeg.py
new file mode 100644
index 0000000..d75e980
--- /dev/null
+++ b/python/build/ffmpeg.py
@@ -0,0 +1,54 @@
+import os.path, subprocess
+
+from build.project import Project
+
+class FfmpegProject(Project):
+ def __init__(self, url, md5, installed, configure_args=[],
+ cppflags='',
+ **kwargs):
+ Project.__init__(self, url, md5, installed, **kwargs)
+ self.configure_args = configure_args
+ self.cppflags = cppflags
+
+ def _filter_cflags(self, flags):
+ # FFmpeg expects the GNU as syntax
+ flags = flags.replace(' -integrated-as ', ' -no-integrated-as ')
+ return flags
+
+ def build(self, toolchain):
+ src = self.unpack(toolchain)
+ build = self.make_build_path(toolchain)
+
+ if toolchain.is_arm:
+ arch = 'arm'
+ else:
+ arch = 'x86'
+
+ if toolchain.is_windows:
+ target_os = 'mingw32'
+ else:
+ target_os = 'linux'
+
+ configure = [
+ os.path.join(src, 'configure'),
+ '--cc=' + toolchain.cc,
+ '--cxx=' + toolchain.cxx,
+ '--nm=' + toolchain.nm,
+ '--extra-cflags=' + self._filter_cflags(toolchain.cflags) + ' ' + toolchain.cppflags + ' ' + self.cppflags,
+ '--extra-cxxflags=' + self._filter_cflags(toolchain.cxxflags) + ' ' + toolchain.cppflags + ' ' + self.cppflags,
+ '--extra-ldflags=' + toolchain.ldflags,
+ '--extra-libs=' + toolchain.libs,
+ '--ar=' + toolchain.ar,
+ '--ranlib=' + toolchain.ranlib,
+ '--enable-cross-compile',
+ '--arch=' + arch,
+ '--target-os=' + target_os,
+ '--prefix=' + toolchain.install_prefix,
+ ] + self.configure_args
+
+ if toolchain.is_armv7:
+ configure.append('--cpu=cortex-a8')
+
+ subprocess.check_call(configure, cwd=build, env=toolchain.env)
+ subprocess.check_call(['/usr/bin/make', '--quiet', '-j12'], cwd=build, env=toolchain.env)
+ subprocess.check_call(['/usr/bin/make', '--quiet', 'install'], cwd=build, env=toolchain.env)
diff --git a/python/build/libs.py b/python/build/libs.py
new file mode 100644
index 0000000..5acabf6
--- /dev/null
+++ b/python/build/libs.py
@@ -0,0 +1,129 @@
+from build.project import Project
+from build.zlib import ZlibProject
+from build.autotools import AutotoolsProject
+from build.ffmpeg import FfmpegProject
+from build.boost import BoostProject
+
+libogg = AutotoolsProject(
+ 'http://downloads.xiph.org/releases/ogg/libogg-1.3.2.tar.xz',
+ '5c3a34309d8b98640827e5d0991a4015',
+ 'lib/libogg.a',
+ ['--disable-shared', '--enable-static'],
+)
+
+libvorbis = AutotoolsProject(
+ 'http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.5.tar.xz',
+ '28cb28097c07a735d6af56e598e1c90f',
+ 'lib/libvorbis.a',
+ ['--disable-shared', '--enable-static'],
+)
+
+opus = AutotoolsProject(
+ 'https://archive.mozilla.org/pub/opus/opus-1.2.1.tar.gz',
+ 'cfafd339ccd9c5ef8d6ab15d7e1a412c054bf4cb4ecbbbcc78c12ef2def70732',
+ 'lib/libopus.a',
+ ['--disable-shared', '--enable-static'],
+)
+
+flac = AutotoolsProject(
+ 'http://downloads.xiph.org/releases/flac/flac-1.3.2.tar.xz',
+ '91cfc3ed61dc40f47f050a109b08610667d73477af6ef36dcad31c31a4a8d53f',
+ 'lib/libFLAC.a',
+ [
+ '--disable-shared', '--enable-static',
+ '--disable-xmms-plugin', '--disable-cpplibs',
+ ],
+)
+
+zlib = ZlibProject(
+ 'http://zlib.net/zlib-1.2.11.tar.xz',
+ '4ff941449631ace0d4d203e3483be9dbc9da454084111f97ea0a2114e19bf066',
+ 'lib/libz.a',
+)
+
+libid3tag = AutotoolsProject(
+ 'ftp://ftp.mars.org/pub/mpeg/libid3tag-0.15.1b.tar.gz',
+ 'e5808ad997ba32c498803822078748c3',
+ 'lib/libid3tag.a',
+ ['--disable-shared', '--enable-static'],
+ autogen=True,
+)
+
+libmad = AutotoolsProject(
+ 'ftp://ftp.mars.org/pub/mpeg/libmad-0.15.1b.tar.gz',
+ '1be543bc30c56fb6bea1d7bf6a64e66c',
+ 'lib/libmad.a',
+ ['--disable-shared', '--enable-static'],
+ autogen=True,
+)
+
+liblame = AutotoolsProject(
+ 'http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz',
+ '24346b4158e4af3bd9f2e194bb23eb473c75fb7377011523353196b19b9a23ff',
+ 'lib/libmp3lame.a',
+ [
+ '--disable-shared', '--enable-static',
+ '--disable-gtktest', '--disable-analyzer-hooks',
+ '--disable-decoder', '--disable-frontend',
+ ],
+)
+
+ffmpeg = FfmpegProject(
+ 'http://ffmpeg.org/releases/ffmpeg-3.4.1.tar.xz',
+ '5a77278a63741efa74e26bf197b9bb09ac6381b9757391b922407210f0f991c0',
+ 'lib/libavcodec.a',
+ [
+ '--disable-shared', '--enable-static',
+ '--enable-gpl',
+ '--enable-small',
+ '--disable-pthreads',
+ '--disable-programs',
+ '--disable-doc',
+ '--disable-avdevice',
+ '--disable-swresample',
+ '--disable-swscale',
+ '--disable-postproc',
+ '--disable-avfilter',
+ '--disable-lzo',
+ '--disable-faan',
+ '--disable-pixelutils',
+ '--disable-network',
+ '--disable-encoders',
+ '--disable-protocols',
+ '--disable-devices',
+ '--disable-filters',
+ '--disable-v4l2_m2m',
+
+ # clang misinterprets the "B0" in hevc_mvs.c as binary
+ # literal, which breaks the build; but we don't need that
+ # video codec anyway
+ '--disable-decoder=hevc',
+ ],
+)
+
+curl = AutotoolsProject(
+ 'http://curl.haxx.se/download/curl-7.57.0.tar.xz',
+ 'f5f6fd3c72b7b8389969f4fb671ed8532fa9b5bb7a5cae7ca89bc1cea45c7878',
+ 'lib/libcurl.a',
+ [
+ '--disable-shared', '--enable-static',
+ '--disable-debug',
+ '--enable-http',
+ '--enable-ipv6',
+ '--disable-ftp', '--disable-file',
+ '--disable-ldap', '--disable-ldaps',
+ '--disable-rtsp', '--disable-proxy', '--disable-dict', '--disable-telnet',
+ '--disable-tftp', '--disable-pop3', '--disable-imap', '--disable-smtp',
+ '--disable-gopher',
+ '--disable-manual',
+ '--disable-threaded-resolver', '--disable-verbose', '--disable-sspi',
+ '--disable-crypto-auth', '--disable-ntlm-wb', '--disable-tls-srp', '--disable-cookies',
+ '--without-ssl', '--without-gnutls', '--without-nss', '--without-libssh2',
+ ],
+)
+
+boost = BoostProject(
+ 'http://downloads.sourceforge.net/project/boost/boost/1.65.1/boost_1_65_1.tar.bz2',
+ '9807a5d16566c57fd74fb522764e0b134a8bbe6b6e8967b83afefd30dcd3be81',
+ 'include/boost/version.hpp',
+)
diff --git a/python/build/project.py b/python/build/project.py
new file mode 100644
index 0000000..c79c4f5
--- /dev/null
+++ b/python/build/project.py
@@ -0,0 +1,59 @@
+import os, shutil
+import re
+
+from build.download import download_and_verify
+from build.tar import untar
+
+class Project:
+ def __init__(self, url, md5, installed, name=None, version=None,
+ base=None,
+ use_cxx=False):
+ if base is None:
+ basename = os.path.basename(url)
+ m = re.match(r'^(.+)\.(tar(\.(gz|bz2|xz|lzma))?|zip)$', basename)
+ if not m: raise
+ self.base = m.group(1)
+ else:
+ self.base = base
+
+ if name is None or version is None:
+ m = re.match(r'^([-\w]+)-(\d[\d.]*[a-z]?)$', self.base)
+ if name is None: name = m.group(1)
+ if version is None: version = m.group(2)
+
+ self.name = name
+ self.version = version
+
+ self.url = url
+ self.md5 = md5
+ self.installed = installed
+
+ self.use_cxx = use_cxx
+
+ def download(self, toolchain):
+ return download_and_verify(self.url, self.md5, toolchain.tarball_path)
+
+ def is_installed(self, toolchain):
+ tarball = self.download(toolchain)
+ installed = os.path.join(toolchain.install_prefix, self.installed)
+ tarball_mtime = os.path.getmtime(tarball)
+ try:
+ return os.path.getmtime(installed) >= tarball_mtime
+ except FileNotFoundError:
+ return False
+
+ def unpack(self, toolchain, out_of_tree=True):
+ if out_of_tree:
+ parent_path = toolchain.src_path
+ else:
+ parent_path = toolchain.build_path
+ return untar(self.download(toolchain), parent_path, self.base)
+
+ def make_build_path(self, toolchain):
+ path = os.path.join(toolchain.build_path, self.base)
+ try:
+ shutil.rmtree(path)
+ except FileNotFoundError:
+ pass
+ os.makedirs(path, exist_ok=True)
+ return path
diff --git a/python/build/tar.py b/python/build/tar.py
new file mode 100644
index 0000000..15bbfca
--- /dev/null
+++ b/python/build/tar.py
@@ -0,0 +1,11 @@
+import os, shutil, subprocess
+
+def untar(tarball_path, parent_path, base):
+ path = os.path.join(parent_path, base)
+ try:
+ shutil.rmtree(path)
+ except FileNotFoundError:
+ pass
+ os.makedirs(parent_path, exist_ok=True)
+ subprocess.check_call(['/bin/tar', 'xfC', tarball_path, parent_path])
+ return path
diff --git a/python/build/verify.py b/python/build/verify.py
new file mode 100644
index 0000000..b730c4e
--- /dev/null
+++ b/python/build/verify.py
@@ -0,0 +1,42 @@
+import hashlib
+
+def feed_file(h, f):
+ """Feed data read from an open file into the hashlib instance."""
+
+ while True:
+ data = f.read(65536)
+ if len(data) == 0:
+ # end of file
+ break
+ h.update(data)
+
+def feed_file_path(h, path):
+ """Feed data read from a file (to be opened by this function) into the hashlib instance."""
+
+ with open(path, 'rb') as f:
+ feed_file(h, f)
+
+def file_digest(algorithm, path):
+ """Calculate the digest of a file and return it in hexadecimal notation."""
+
+ h = algorithm()
+ feed_file_path(h, path)
+ return h.hexdigest()
+
+def guess_digest_algorithm(digest):
+ l = len(digest)
+ if l == 32:
+ return hashlib.md5
+ elif l == 40:
+ return hashlib.sha1
+ elif l == 64:
+ return hashlib.sha256
+ else:
+ return None
+
+def verify_file_digest(path, expected_digest):
+ """Verify the digest of a file, and return True if the digest matches with the given expected digest."""
+
+ algorithm = guess_digest_algorithm(expected_digest)
+ assert(algorithm is not None)
+ return file_digest(algorithm, path) == expected_digest
diff --git a/python/build/zlib.py b/python/build/zlib.py
new file mode 100644
index 0000000..0518e77
--- /dev/null
+++ b/python/build/zlib.py
@@ -0,0 +1,22 @@
+import os.path, subprocess
+
+from build.project import Project
+
+class ZlibProject(Project):
+ def __init__(self, url, md5, installed,
+ **kwargs):
+ Project.__init__(self, url, md5, installed, **kwargs)
+
+ def build(self, toolchain):
+ src = self.unpack(toolchain, out_of_tree=False)
+
+ subprocess.check_call(['/usr/bin/make', '--quiet',
+ '-f', 'win32/Makefile.gcc',
+ 'PREFIX=' + toolchain.arch + '-',
+ '-j12',
+ 'install',
+ 'INCLUDE_PATH='+ os.path.join(toolchain.install_prefix, 'include'),
+ 'LIBRARY_PATH=' + os.path.join(toolchain.install_prefix, 'lib'),
+ 'BINARY_PATH=' + os.path.join(toolchain.install_prefix, 'bin'),
+ 'SHARED_MODE=1'],
+ cwd=src, env=toolchain.env)
diff --git a/src/CommandLine.cxx b/src/CommandLine.cxx
index 9429af5..0d04846 100644
--- a/src/CommandLine.cxx
+++ b/src/CommandLine.cxx
@@ -67,7 +67,7 @@
#include <stdio.h>
#include <stdlib.h>
-#ifdef WIN32
+#ifdef _WIN32
#define CONFIG_FILE_LOCATION PATH_LITERAL("mpd\\mpd.conf")
#define APP_CONFIG_FILE_LOCATION PATH_LITERAL("conf\\mpd.conf")
#else
@@ -389,7 +389,7 @@ ParseCommandLine(int argc, char **argv, struct options *options)
ConfigLoader loader;
bool found =
-#ifdef WIN32
+#ifdef _WIN32
loader.TryFile(GetUserConfigDir(), CONFIG_FILE_LOCATION) ||
loader.TryFile(GetSystemConfigDir(), CONFIG_FILE_LOCATION) ||
loader.TryFile(GetAppBaseDir(), APP_CONFIG_FILE_LOCATION);
diff --git a/src/LocateUri.hxx b/src/LocateUri.hxx
index 8d1a6d8..aa216f3 100644
--- a/src/LocateUri.hxx
+++ b/src/LocateUri.hxx
@@ -24,7 +24,7 @@
#include "Compiler.h"
#include "fs/AllocatedPath.hxx"
-#ifdef WIN32
+#ifdef _WIN32
#include <windows.h>
/* damn you, windows.h! */
#ifdef ABSOLUTE
diff --git a/src/LogBackend.cxx b/src/LogBackend.cxx
index b2e2dab..ea3d2e2 100644
--- a/src/LogBackend.cxx
+++ b/src/LogBackend.cxx
@@ -162,7 +162,7 @@ FileLog(const Domain &domain, const char *message)
domain.GetName(),
chomp_length(message), message);
-#ifdef WIN32
+#ifdef _WIN32
/* force-flush the log file, because setvbuf() does not seem
to have an effect on WIN32 */
fflush(stderr);
diff --git a/src/LogInit.cxx b/src/LogInit.cxx
index 1678660..1fde300 100644
--- a/src/LogInit.cxx
+++ b/src/LogInit.cxx
@@ -72,7 +72,7 @@ log_init_file(int line)
out_fd = open_log_file();
if (out_fd < 0) {
-#ifdef WIN32
+#ifdef _WIN32
const std::string out_path_utf8 = out_path.ToUTF8();
throw FormatRuntimeError("failed to open log file \"%s\" (config line %d)",
out_path_utf8.c_str(), line);
@@ -182,7 +182,7 @@ void setup_log_output()
fflush(nullptr);
if (out_fd < 0) {
-#ifdef WIN32
+#ifdef _WIN32
return;
#else
out_fd = open("/dev/null", O_WRONLY);
diff --git a/src/LogLevel.hxx b/src/LogLevel.hxx
index 36aad47..e91ed84 100644
--- a/src/LogLevel.hxx
+++ b/src/LogLevel.hxx
@@ -20,7 +20,7 @@
#ifndef MPD_LOG_LEVEL_HXX
#define MPD_LOG_LEVEL_HXX
-#ifdef WIN32
+#ifdef _WIN32
#include <windows.h>
/* damn you, windows.h! */
#ifdef ERROR
diff --git a/src/Main.cxx b/src/Main.cxx
index e05afe6..121ae9c 100644
--- a/src/Main.cxx
+++ b/src/Main.cxx
@@ -106,7 +106,7 @@
#include <locale.h>
#endif
-#ifdef WIN32
+#ifdef _WIN32
#include <winsock2.h>
#include <ws2tcpip.h>
#endif
@@ -289,7 +289,7 @@ glue_state_file_init()
*/
static void winsock_init(void)
{
-#ifdef WIN32
+#ifdef _WIN32
WSADATA sockinfo;
int retval = WSAStartup(MAKEWORD(2, 2), &sockinfo);
@@ -418,7 +418,7 @@ Instance::OnIdle(unsigned flags)
int main(int argc, char *argv[])
{
-#ifdef WIN32
+#ifdef _WIN32
return win32_main(argc, argv);
#else
return mpd_main(argc, argv);
@@ -615,7 +615,7 @@ try {
playlist_state_restore() */
instance->partition->pc.LockUpdateAudio();
-#ifdef WIN32
+#ifdef _WIN32
win32_app_started();
#endif
@@ -630,7 +630,7 @@ try {
/* run the main loop */
instance->event_loop.Run();
-#ifdef WIN32
+#ifdef _WIN32
win32_app_stopping();
#endif
@@ -702,7 +702,7 @@ try {
daemonize_finish();
#endif
-#ifdef WIN32
+#ifdef _WIN32
WSACleanup();
#endif
diff --git a/src/Main.hxx b/src/Main.hxx
index 6b89eb0..9b41abf 100644
--- a/src/Main.hxx
+++ b/src/Main.hxx
@@ -42,7 +42,7 @@ int mpd_main(int argc, char *argv[]);
#endif
-#ifdef WIN32
+#ifdef _WIN32
/**
* If program is run as windows service performs nessesary initialization
diff --git a/src/MusicChunk.hxx b/src/MusicChunk.hxx
index c5be179..a730a0b 100644
--- a/src/MusicChunk.hxx
+++ b/src/MusicChunk.hxx
@@ -80,11 +80,19 @@ struct MusicChunk {
ReplayGainInfo replay_gain_info;
/**
+ * A magic value for #replay_gain_serial which omits updating
+ * the #ReplayGainFilter. This is used by "silence" chunks
+ * (see PlayerThread::SendSilence()) so they don't affect the
+ * replay gain.
+ */
+ static constexpr unsigned IGNORE_REPLAY_GAIN = ~0u;
+
+ /**
* A serial number for checking if replay gain info has
* changed since the last chunk. The magic value 0 indicates
* that there is no replay gain info available.
*/
- unsigned replay_gain_serial = 0;
+ unsigned replay_gain_serial;
/** the data (probably PCM) */
uint8_t data[CHUNK_SIZE];
diff --git a/src/StateFile.cxx b/src/StateFile.cxx
index cc02d0f..e8cf7d1 100644
--- a/src/StateFile.cxx
+++ b/src/StateFile.cxx
@@ -24,6 +24,7 @@
#include "fs/io/TextFile.hxx"
#include "fs/io/FileOutputStream.hxx"
#include "fs/io/BufferedOutputStream.hxx"
+#include "storage/StorageState.hxx"
#include "Partition.hxx"
#include "Instance.hxx"
#include "mixer/Volume.hxx"
@@ -56,6 +57,9 @@ StateFile::RememberVersions() noexcept
prev_output_version = audio_output_state_get_version();
prev_playlist_version = playlist_state_get_hash(partition.playlist,
partition.pc);
+#ifdef ENABLE_DATABASE
+ prev_storage_version = storage_state_get_hash(partition.instance);
+#endif
}
bool
@@ -64,7 +68,11 @@ StateFile::IsModified() const noexcept
return prev_volume_version != sw_volume_state_get_hash() ||
prev_output_version != audio_output_state_get_version() ||
prev_playlist_version != playlist_state_get_hash(partition.playlist,
- partition.pc);
+ partition.pc)
+#ifdef ENABLE_DATABASE
+ || prev_storage_version != storage_state_get_hash(partition.instance)
+#endif
+ ;
}
inline void
@@ -72,6 +80,11 @@ StateFile::Write(BufferedOutputStream &os)
{
save_sw_volume_state(os);
audio_output_state_save(os, partition.outputs);
+
+#ifdef ENABLE_DATABASE
+ storage_state_save(os, partition.instance);
+#endif
+
playlist_state_save(os, partition.playlist, partition.pc);
}
@@ -123,6 +136,10 @@ try {
playlist_state_restore(line, file, song_loader,
partition.playlist,
partition.pc);
+#ifdef ENABLE_DATABASE
+ success = success || storage_state_restore(line, file, partition.instance);
+#endif
+
if (!success)
FormatError(state_file_domain,
"Unrecognized line in state file: %s",
diff --git a/src/StateFile.hxx b/src/StateFile.hxx
index 342a20c..b10a7e0 100644
--- a/src/StateFile.hxx
+++ b/src/StateFile.hxx
@@ -46,6 +46,10 @@ class StateFile final : private TimeoutMonitor {
unsigned prev_volume_version = 0, prev_output_version = 0,
prev_playlist_version = 0;
+#ifdef ENABLE_DATABASE
+ unsigned prev_storage_version = 0;
+#endif
+
public:
static constexpr std::chrono::steady_clock::duration DEFAULT_INTERVAL = std::chrono::minutes(2);
diff --git a/src/Stats.cxx b/src/Stats.cxx
index f558646..4f5275d 100644
--- a/src/Stats.cxx
+++ b/src/Stats.cxx
@@ -31,7 +31,7 @@
#include <chrono>
-#ifndef WIN32
+#ifndef _WIN32
/**
* The monotonic time stamp when MPD was started. It is used to
* calculate the uptime.
@@ -114,7 +114,7 @@ stats_print(Response &r, const Partition &partition)
{
r.Format("uptime: %u\n"
"playtime: %lu\n",
-#ifdef WIN32
+#ifdef _WIN32
GetProcessUptimeS(),
#else
(unsigned)std::chrono::duration_cast<std::chrono::seconds>(std::chrono::steady_clock::now() - start_time).count(),
diff --git a/src/TimePrint.cxx b/src/TimePrint.cxx
index f93d965..a9e932a 100644
--- a/src/TimePrint.cxx
+++ b/src/TimePrint.cxx
@@ -24,7 +24,7 @@
void
time_print(Response &r, const char *name, time_t t)
{
-#ifdef WIN32
+#ifdef _WIN32
const struct tm *tm2 = gmtime(&t);
#else
struct tm tm;
@@ -35,7 +35,7 @@ time_print(Response &r, const char *name, time_t t)
char buffer[32];
strftime(buffer, sizeof(buffer),
-#ifdef WIN32
+#ifdef _WIN32
"%Y-%m-%dT%H:%M:%SZ",
#else
"%FT%TZ",
diff --git a/src/client/ClientFile.cxx b/src/client/ClientFile.cxx
index 0382789..e38974d 100644
--- a/src/client/ClientFile.cxx
+++ b/src/client/ClientFile.cxx
@@ -28,7 +28,7 @@
void
Client::AllowFile(Path path_fs) const
{
-#ifdef WIN32
+#ifdef _WIN32
(void)path_fs;
throw ProtocolError(ACK_ERROR_PERMISSION, "Access denied");
diff --git a/src/client/ClientMessage.hxx b/src/client/ClientMessage.hxx
index b665cd6..1da871a 100644
--- a/src/client/ClientMessage.hxx
+++ b/src/client/ClientMessage.hxx
@@ -24,7 +24,7 @@
#include <string>
-#ifdef WIN32
+#ifdef _WIN32
/* fuck WIN32! */
#include <windows.h>
#undef GetMessage
diff --git a/src/client/ClientNew.cxx b/src/client/ClientNew.cxx
index 42ccadb..1bb5b0e 100644
--- a/src/client/ClientNew.cxx
+++ b/src/client/ClientNew.cxx
@@ -29,7 +29,7 @@
#include "Log.hxx"
#include <assert.h>
-#ifdef WIN32
+#ifdef _WIN32
#include <winsock2.h>
#else
#include <sys/socket.h>
diff --git a/src/command/CommandResult.hxx b/src/command/CommandResult.hxx
index cf6d590..30a7e8b 100644
--- a/src/command/CommandResult.hxx
+++ b/src/command/CommandResult.hxx
@@ -20,7 +20,7 @@
#ifndef MPD_COMMAND_RESULT_HXX
#define MPD_COMMAND_RESULT_HXX
-#ifdef WIN32
+#ifdef _WIN32
#include <windows.h>
/* damn you, windows.h! */
#ifdef ERROR
diff --git a/src/command/FileCommands.cxx b/src/command/FileCommands.cxx
index 19c9bad..4d66746 100644
--- a/src/command/FileCommands.cxx
+++ b/src/command/FileCommands.cxx
@@ -58,7 +58,7 @@ skip_path(Path name_fs) noexcept
return name_fs.HasNewline();
}
-#if defined(WIN32) && GCC_CHECK_VERSION(4,6)
+#if defined(_WIN32) && GCC_CHECK_VERSION(4,6)
/* PRIu64 causes bogus compiler warning */
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wformat"
@@ -101,7 +101,7 @@ handle_listfiles_local(Response &r, Path path_fs)
return CommandResult::OK;
}
-#if defined(WIN32) && GCC_CHECK_VERSION(4,6)
+#if defined(_WIN32) && GCC_CHECK_VERSION(4,6)
#pragma GCC diagnostic pop
#endif
diff --git a/src/command/StorageCommands.cxx b/src/command/StorageCommands.cxx
index 1ecd96c..2cf042e 100644
--- a/src/command/StorageCommands.cxx
+++ b/src/command/StorageCommands.cxx
@@ -50,7 +50,7 @@ skip_path(const char *name_utf8) noexcept
return strchr(name_utf8, '\n') != nullptr;
}
-#if defined(WIN32) && GCC_CHECK_VERSION(4,6)
+#if defined(_WIN32) && GCC_CHECK_VERSION(4,6)
/* PRIu64 causes bogus compiler warning */
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wformat"
@@ -94,7 +94,7 @@ handle_listfiles_storage(Response &r, StorageDirectoryReader &reader)
}
}
-#if defined(WIN32) && GCC_CHECK_VERSION(4,6)
+#if defined(_WIN32) && GCC_CHECK_VERSION(4,6)
#pragma GCC diagnostic pop
#endif
diff --git a/src/config/ConfigOption.hxx b/src/config/ConfigOption.hxx
index b29bf52..6979095 100644
--- a/src/config/ConfigOption.hxx
+++ b/src/config/ConfigOption.hxx
@@ -22,7 +22,7 @@
#include "Compiler.h"
-#if defined(WIN32) && CLANG_OR_GCC_VERSION(4,7)
+#if defined(_WIN32) && CLANG_OR_GCC_VERSION(4,7)
/* "INPUT" is declared by winuser.h */
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wshadow"
@@ -93,7 +93,7 @@ enum class ConfigBlockOption {
MAX
};
-#if defined(WIN32) && CLANG_OR_GCC_VERSION(4,7)
+#if defined(_WIN32) && CLANG_OR_GCC_VERSION(4,7)
#pragma GCC diagnostic pop
#endif
diff --git a/src/config/ConfigPath.cxx b/src/config/ConfigPath.cxx
index 0f6c37a..204b626 100644
--- a/src/config/ConfigPath.cxx
+++ b/src/config/ConfigPath.cxx
@@ -29,7 +29,7 @@
#include <assert.h>
#include <string.h>
-#ifndef WIN32
+#ifndef _WIN32
#include <pwd.h>
/**
@@ -79,7 +79,7 @@ ParsePath(const char *path)
{
assert(path != nullptr);
-#ifndef WIN32
+#ifndef _WIN32
if (path[0] == '~') {
++path;
@@ -119,7 +119,7 @@ ParsePath(const char *path)
} else {
#endif
return AllocatedPath::FromUTF8Throw(path);
-#ifndef WIN32
+#ifndef _WIN32
}
#endif
}
diff --git a/src/db/plugins/simple/Directory.cxx b/src/db/plugins/simple/Directory.cxx
index 655778b..a1beb34 100644
--- a/src/db/plugins/simple/Directory.cxx
+++ b/src/db/plugins/simple/Directory.cxx
@@ -109,7 +109,7 @@ Directory::PruneEmpty() noexcept
child != end;) {
child->PruneEmpty();
- if (child->IsEmpty())
+ if (child->IsEmpty() && !child->IsMount())
child = children.erase_and_dispose(child,
DeleteDisposer());
else
@@ -230,7 +230,7 @@ Directory::Walk(bool recursive, const SongFilter *filter,
call will lock it again */
const ScopeDatabaseUnlock unlock;
WalkMount(GetPath(), *mounted_database,
- recursive, filter,
+ "", recursive, filter,
visit_directory, visit_song,
visit_playlist);
return;
diff --git a/src/db/plugins/simple/Directory.hxx b/src/db/plugins/simple/Directory.hxx
index 99572a4..8545ba0 100644
--- a/src/db/plugins/simple/Directory.hxx
+++ b/src/db/plugins/simple/Directory.hxx
@@ -127,7 +127,6 @@ public:
*
* @param name_utf8 the UTF-8 encoded name of the new sub directory
*/
- gcc_malloc
Directory *CreateChild(const char *name_utf8);
/**
diff --git a/src/db/plugins/simple/Mount.cxx b/src/db/plugins/simple/Mount.cxx
index bf3a4b8..c07b67a 100644
--- a/src/db/plugins/simple/Mount.cxx
+++ b/src/db/plugins/simple/Mount.cxx
@@ -72,7 +72,7 @@ PrefixVisitPlaylist(const char *base, const VisitPlaylist &visit_playlist,
void
WalkMount(const char *base, const Database &db,
- bool recursive, const SongFilter *filter,
+ const char* uri, bool recursive, const SongFilter *filter,
const VisitDirectory &visit_directory, const VisitSong &visit_song,
const VisitPlaylist &visit_playlist)
{
@@ -93,5 +93,5 @@ WalkMount(const char *base, const Database &db,
vp = std::bind(PrefixVisitPlaylist,
base, std::ref(visit_playlist), _1, _2);
- db.Visit(DatabaseSelection("", recursive, filter), vd, vs, vp);
+ db.Visit(DatabaseSelection(uri, recursive, filter), vd, vs, vp);
}
diff --git a/src/db/plugins/simple/Mount.hxx b/src/db/plugins/simple/Mount.hxx
index 0c6abd1..c79e523 100644
--- a/src/db/plugins/simple/Mount.hxx
+++ b/src/db/plugins/simple/Mount.hxx
@@ -27,7 +27,7 @@ class SongFilter;
void
WalkMount(const char *base, const Database &db,
- bool recursive, const SongFilter *filter,
+ const char* uri, bool recursive, const SongFilter *filter,
const VisitDirectory &visit_directory, const VisitSong &visit_song,
const VisitPlaylist &visit_playlist);
diff --git a/src/db/plugins/simple/SimpleDatabasePlugin.cxx b/src/db/plugins/simple/SimpleDatabasePlugin.cxx
index a0b4c3a..a27c070 100644
--- a/src/db/plugins/simple/SimpleDatabasePlugin.cxx
+++ b/src/db/plugins/simple/SimpleDatabasePlugin.cxx
@@ -20,6 +20,7 @@
#include "config.h"
#include "SimpleDatabasePlugin.hxx"
#include "PrefixedLightSong.hxx"
+#include "Mount.hxx"
#include "db/DatabasePlugin.hxx"
#include "db/Selection.hxx"
#include "db/Helpers.hxx"
@@ -115,7 +116,7 @@ SimpleDatabase::Check() const
path_utf8 + "\" because the "
"parent path is not a directory");
-#ifndef WIN32
+#ifndef _WIN32
/* Check if we can write to the directory */
if (!CheckAccess(dirPath, X_OK | W_OK)) {
const int e = errno;
@@ -134,7 +135,7 @@ SimpleDatabase::Check() const
if (!fi.IsRegular())
throw std::runtime_error("db file \"" + path_utf8 + "\" is not a regular file");
-#ifndef WIN32
+#ifndef _WIN32
/* And check that we can write to it */
if (!CheckAccess(path, R_OK | W_OK))
throw FormatErrno("Can't open db file \"%s\" for reading/writing",
@@ -270,6 +271,18 @@ SimpleDatabase::Visit(const DatabaseSelection &selection,
ScopeDatabaseLock protect;
auto r = root->LookupDirectory(selection.uri.c_str());
+
+ if (r.directory->IsMount()) {
+ /* pass the request and the remaining uri to the mounted database */
+ protect.unlock();
+
+ WalkMount(r.directory->GetPath(), *(r.directory->mounted_database),
+ (r.uri == nullptr)?"":r.uri, selection.recursive, selection.filter,
+ visit_directory, visit_song, visit_playlist);
+
+ return;
+ }
+
if (r.uri == nullptr) {
/* it's a directory */
diff --git a/src/db/update/UpdateIO.cxx b/src/db/update/UpdateIO.cxx
index 9680c06..2623b0d 100644
--- a/src/db/update/UpdateIO.cxx
+++ b/src/db/update/UpdateIO.cxx
@@ -91,7 +91,7 @@ bool
directory_child_access(Storage &storage, const Directory &directory,
const char *name, int mode) noexcept
{
-#ifdef WIN32
+#ifdef _WIN32
/* CheckAccess() is useless on WIN32 */
(void)storage;
(void)directory;
diff --git a/src/db/update/Walk.cxx b/src/db/update/Walk.cxx
index c3af3f7..8e58f12 100644
--- a/src/db/update/Walk.cxx
+++ b/src/db/update/Walk.cxx
@@ -55,7 +55,7 @@ UpdateWalk::UpdateWalk(EventLoop &_loop, DatabaseListener &_listener,
storage(_storage),
editor(_loop, _listener)
{
-#ifndef WIN32
+#ifndef _WIN32
follow_inside_symlinks =
config_get_bool(ConfigOption::FOLLOW_INSIDE_SYMLINKS,
DEFAULT_FOLLOW_INSIDE_SYMLINKS);
@@ -104,7 +104,7 @@ inline void
UpdateWalk::PurgeDeletedFromDirectory(Directory &directory)
{
directory.ForEachChildSafe([&](Directory &child){
- if (DirectoryExists(storage, child))
+ if (child.IsMount() || DirectoryExists(storage, child))
return;
editor.LockDeleteDirectory(&child);
@@ -133,7 +133,7 @@ UpdateWalk::PurgeDeletedFromDirectory(Directory &directory)
}
}
-#ifndef WIN32
+#ifndef _WIN32
static bool
update_directory_stat(Storage &storage, Directory &directory)
{
@@ -156,7 +156,7 @@ static int
FindAncestorLoop(Storage &storage, Directory *parent,
unsigned inode, unsigned device)
{
-#ifndef WIN32
+#ifndef _WIN32
if (device == 0 && inode == 0)
/* can't detect loops if the Storage does not support
these numbers */
@@ -258,7 +258,7 @@ bool
UpdateWalk::SkipSymlink(const Directory *directory,
const char *utf8_name) const noexcept
{
-#ifndef WIN32
+#ifndef _WIN32
const auto path_fs = storage.MapChildFS(directory->GetPath(),
utf8_name);
if (path_fs.IsNull())
diff --git a/src/db/update/Walk.hxx b/src/db/update/Walk.hxx
index 7d7a03d..cdc42f4 100644
--- a/src/db/update/Walk.hxx
+++ b/src/db/update/Walk.hxx
@@ -36,7 +36,7 @@ class UpdateWalk final {
friend class UpdateArchiveVisitor;
#endif
-#ifndef WIN32
+#ifndef _WIN32
static constexpr bool DEFAULT_FOLLOW_INSIDE_SYMLINKS = true;
static constexpr bool DEFAULT_FOLLOW_OUTSIDE_SYMLINKS = true;
diff --git a/src/decoder/plugins/FlacIOHandle.cxx b/src/decoder/plugins/FlacIOHandle.cxx
index 997a427..bdd4334 100644
--- a/src/decoder/plugins/FlacIOHandle.cxx
+++ b/src/decoder/plugins/FlacIOHandle.cxx
@@ -46,7 +46,7 @@ FlacIORead(void *ptr, size_t size, size_t nmemb, FLAC__IOHandle handle)
p += nbytes;
-#ifndef WIN32
+#ifndef _WIN32
} catch (const std::system_error &e) {
errno = e.code().category() == ErrnoCategory()
? e.code().value()
diff --git a/src/event/MultiSocketMonitor.cxx b/src/event/MultiSocketMonitor.cxx
index 02a51e9..907251f 100644
--- a/src/event/MultiSocketMonitor.cxx
+++ b/src/event/MultiSocketMonitor.cxx
@@ -23,7 +23,7 @@
#include <algorithm>
-#ifndef WIN32
+#ifndef _WIN32
#include <poll.h>
#endif
@@ -50,7 +50,7 @@ MultiSocketMonitor::ClearSocketList()
fds.clear();
}
-#ifndef WIN32
+#ifndef _WIN32
void
MultiSocketMonitor::ReplaceSocketList(pollfd *pfds, unsigned n)
diff --git a/src/event/MultiSocketMonitor.hxx b/src/event/MultiSocketMonitor.hxx
index db6bec3..3b4877e 100644
--- a/src/event/MultiSocketMonitor.hxx
+++ b/src/event/MultiSocketMonitor.hxx
@@ -31,7 +31,7 @@
#include <assert.h>
-#ifdef WIN32
+#ifdef _WIN32
/* ERROR is a WIN32 macro that poisons our namespace; this is a kludge
to allow us to use it anyway */
#ifdef ERROR
@@ -39,7 +39,7 @@
#endif
#endif
-#ifndef WIN32
+#ifndef _WIN32
struct pollfd;
#endif
@@ -189,7 +189,7 @@ public:
}
}
-#ifndef WIN32
+#ifndef _WIN32
/**
* Replace the socket list with the given file descriptors.
* The given pollfd array will be modified by this method.
diff --git a/src/event/ServerSocket.cxx b/src/event/ServerSocket.cxx
index 556648c..0e2a61d 100644
--- a/src/event/ServerSocket.cxx
+++ b/src/event/ServerSocket.cxx
@@ -43,7 +43,7 @@
#include <unistd.h>
#include <assert.h>
-#ifdef WIN32
+#ifdef _WIN32
#include <ws2tcpip.h>
#include <winsock.h>
#else
diff --git a/src/event/SignalMonitor.cxx b/src/event/SignalMonitor.cxx
index 2fd101c..992acf2 100644
--- a/src/event/SignalMonitor.cxx
+++ b/src/event/SignalMonitor.cxx
@@ -20,7 +20,7 @@
#include "config.h"
#include "SignalMonitor.hxx"
-#ifndef WIN32
+#ifndef _WIN32
#include "SocketMonitor.hxx"
#include "util/Manual.hxx"
diff --git a/src/event/SignalMonitor.hxx b/src/event/SignalMonitor.hxx
index 854a565..cdec989 100644
--- a/src/event/SignalMonitor.hxx
+++ b/src/event/SignalMonitor.hxx
@@ -24,7 +24,7 @@
class EventLoop;
-#ifndef WIN32
+#ifndef _WIN32
#include "util/BindMethod.hxx"
diff --git a/src/event/SocketMonitor.cxx b/src/event/SocketMonitor.cxx
index a1daa07..8005d9c 100644
--- a/src/event/SocketMonitor.cxx
+++ b/src/event/SocketMonitor.cxx
@@ -24,7 +24,7 @@
#include <assert.h>
-#ifdef WIN32
+#ifdef _WIN32
#include <winsock2.h>
#else
#include <sys/socket.h>
diff --git a/src/event/SocketMonitor.hxx b/src/event/SocketMonitor.hxx
index 989da2c..bac3092 100644
--- a/src/event/SocketMonitor.hxx
+++ b/src/event/SocketMonitor.hxx
@@ -28,7 +28,7 @@
#include <assert.h>
#include <stddef.h>
-#ifdef WIN32
+#ifdef _WIN32
/* ERROR is a WIN32 macro that poisons our namespace; this is a kludge
to allow us to use it anyway */
#ifdef ERROR
diff --git a/src/fs/AllocatedPath.cxx b/src/fs/AllocatedPath.cxx
index fd5e54b..0bf2ba4 100644
--- a/src/fs/AllocatedPath.cxx
+++ b/src/fs/AllocatedPath.cxx
@@ -31,7 +31,7 @@ AllocatedPath::~AllocatedPath() {}
AllocatedPath
AllocatedPath::FromUTF8(const char *path_utf8) noexcept
{
-#if defined(HAVE_FS_CHARSET) || defined(WIN32)
+#if defined(HAVE_FS_CHARSET) || defined(_WIN32)
try {
return AllocatedPath(::PathFromUTF8(path_utf8));
} catch (const std::runtime_error &) {
@@ -45,7 +45,7 @@ AllocatedPath::FromUTF8(const char *path_utf8) noexcept
AllocatedPath
AllocatedPath::FromUTF8Throw(const char *path_utf8)
{
-#if defined(HAVE_FS_CHARSET) || defined(WIN32)
+#if defined(HAVE_FS_CHARSET) || defined(_WIN32)
return AllocatedPath(::PathFromUTF8(path_utf8));
#else
return FromFS(path_utf8);
diff --git a/src/fs/Charset.cxx b/src/fs/Charset.cxx
index 1b84063..a2db265 100644
--- a/src/fs/Charset.cxx
+++ b/src/fs/Charset.cxx
@@ -24,7 +24,7 @@
#include "lib/icu/Converter.hxx"
#include "util/AllocatedString.hxx"
-#ifdef WIN32
+#ifdef _WIN32
#include "lib/icu/Win32.hxx"
#include <windows.h>
#endif
@@ -70,7 +70,7 @@ GetFSCharset() noexcept
{
#ifdef HAVE_FS_CHARSET
return fs_charset.empty() ? "UTF-8" : fs_charset.c_str();
-#elif defined(WIN32)
+#elif defined(_WIN32)
return "ACP";
#else
return "UTF-8";
@@ -100,7 +100,7 @@ PathToUTF8(PathTraitsFS::const_pointer_type path_fs)
assert(path_fs != nullptr);
#endif
-#ifdef WIN32
+#ifdef _WIN32
const auto buffer = WideCharToMultiByte(CP_UTF8, path_fs);
return FixSeparators(PathTraitsUTF8::string(buffer.c_str()));
#else
@@ -116,7 +116,7 @@ PathToUTF8(PathTraitsFS::const_pointer_type path_fs)
#endif
}
-#if defined(HAVE_FS_CHARSET) || defined(WIN32)
+#if defined(HAVE_FS_CHARSET) || defined(_WIN32)
PathTraitsFS::string
PathFromUTF8(PathTraitsUTF8::const_pointer_type path_utf8)
@@ -126,7 +126,7 @@ PathFromUTF8(PathTraitsUTF8::const_pointer_type path_utf8)
assert(path_utf8 != nullptr);
#endif
-#ifdef WIN32
+#ifdef _WIN32
const auto buffer = MultiByteToWideChar(CP_UTF8, path_utf8);
return PathTraitsFS::string(buffer.c_str());
#else
diff --git a/src/fs/Charset.hxx b/src/fs/Charset.hxx
index 7f7097b..de6cc22 100644
--- a/src/fs/Charset.hxx
+++ b/src/fs/Charset.hxx
@@ -24,7 +24,7 @@
#include "Compiler.h"
#include "Traits.hxx"
-#if (defined(HAVE_ICU) || defined(HAVE_ICONV)) && !defined(WIN32)
+#if (defined(HAVE_ICU) || defined(HAVE_ICONV)) && !defined(_WIN32)
#define HAVE_FS_CHARSET
#endif
diff --git a/src/fs/CheckFile.cxx b/src/fs/CheckFile.cxx
index da875f1..fa4ac0e 100644
--- a/src/fs/CheckFile.cxx
+++ b/src/fs/CheckFile.cxx
@@ -41,7 +41,7 @@ try {
return;
}
-#ifndef WIN32
+#ifndef _WIN32
try {
const auto x = AllocatedPath::Build(path_fs,
PathTraitsFS::CURRENT_DIRECTORY);
diff --git a/src/fs/DirectoryReader.cxx b/src/fs/DirectoryReader.cxx
index 15e50da..acec650 100644
--- a/src/fs/DirectoryReader.cxx
+++ b/src/fs/DirectoryReader.cxx
@@ -21,7 +21,7 @@
#include "DirectoryReader.hxx"
#include "system/Error.hxx"
-#ifdef WIN32
+#ifdef _WIN32
DirectoryReader::DirectoryReader(Path dir)
:handle(FindFirstFile(MakeWildcardPath(dir.c_str()), &data))
diff --git a/src/fs/DirectoryReader.hxx b/src/fs/DirectoryReader.hxx
index 8795f6d..9c57fc4 100644
--- a/src/fs/DirectoryReader.hxx
+++ b/src/fs/DirectoryReader.hxx
@@ -23,7 +23,7 @@
#include "check.h"
#include "Path.hxx"
-#ifdef WIN32
+#ifdef _WIN32
#include <windows.h>
#include <tchar.h>
diff --git a/src/fs/FileInfo.hxx b/src/fs/FileInfo.hxx
index f82da87..e21c873 100644
--- a/src/fs/FileInfo.hxx
+++ b/src/fs/FileInfo.hxx
@@ -26,13 +26,13 @@
#include <stdint.h>
-#ifdef WIN32
+#ifdef _WIN32
#include <fileapi.h>
#else
#include <sys/stat.h>
#endif
-#ifdef WIN32
+#ifdef _WIN32
static inline constexpr uint64_t
ConstructUint64(DWORD lo, DWORD hi)
@@ -54,7 +54,7 @@ class FileInfo {
bool follow_symlinks);
friend class FileReader;
-#ifdef WIN32
+#ifdef _WIN32
WIN32_FILE_ATTRIBUTE_DATA data;
#else
struct stat st;
@@ -65,7 +65,7 @@ public:
FileInfo(Path path, bool follow_symlinks=true) {
if (!GetFileInfo(path, *this, follow_symlinks)) {
-#ifdef WIN32
+#ifdef _WIN32
throw FormatLastError("Failed to access %s",
path.ToUTF8().c_str());
#else
@@ -76,7 +76,7 @@ public:
}
bool IsRegular() const {
-#ifdef WIN32
+#ifdef _WIN32
return (data.dwFileAttributes &
(FILE_ATTRIBUTE_DIRECTORY|FILE_ATTRIBUTE_DEVICE)) == 0;
#else
@@ -85,7 +85,7 @@ public:
}
bool IsDirectory() const {
-#ifdef WIN32
+#ifdef _WIN32
return data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY;
#else
return S_ISDIR(st.st_mode);
@@ -93,7 +93,7 @@ public:
}
uint64_t GetSize() const {
-#ifdef WIN32
+#ifdef _WIN32
return ConstructUint64(data.nFileSizeLow, data.nFileSizeHigh);
#else
return st.st_size;
@@ -101,14 +101,14 @@ public:
}
time_t GetModificationTime() const {
-#ifdef WIN32
+#ifdef _WIN32
return FileTimeToTimeT(data.ftLastWriteTime);
#else
return st.st_mtime;
#endif
}
-#ifndef WIN32
+#ifndef _WIN32
uid_t GetUid() const {
return st.st_uid;
}
@@ -130,7 +130,7 @@ public:
inline bool
GetFileInfo(Path path, FileInfo &info, bool follow_symlinks=true)
{
-#ifdef WIN32
+#ifdef _WIN32
(void)follow_symlinks;
return GetFileAttributesEx(path.c_str(), GetFileExInfoStandard,
&info.data);
diff --git a/src/fs/FileSystem.cxx b/src/fs/FileSystem.cxx
index 874ac9a..cadfde1 100644
--- a/src/fs/FileSystem.cxx
+++ b/src/fs/FileSystem.cxx
@@ -29,7 +29,7 @@
void
RenameFile(Path oldpath, Path newpath)
{
-#ifdef WIN32
+#ifdef _WIN32
if (!MoveFileEx(oldpath.c_str(), newpath.c_str(),
MOVEFILE_REPLACE_EXISTING))
throw MakeLastError("Failed to rename file");
@@ -42,7 +42,7 @@ RenameFile(Path oldpath, Path newpath)
AllocatedPath
ReadLink(Path path)
{
-#ifdef WIN32
+#ifdef _WIN32
(void)path;
errno = EINVAL;
return AllocatedPath::Null();
@@ -63,7 +63,7 @@ ReadLink(Path path)
void
TruncateFile(Path path)
{
-#ifdef WIN32
+#ifdef _WIN32
HANDLE h = CreateFile(path.c_str(), GENERIC_WRITE, 0, nullptr,
TRUNCATE_EXISTING, FILE_ATTRIBUTE_NORMAL,
nullptr);
@@ -83,7 +83,7 @@ TruncateFile(Path path)
void
RemoveFile(Path path)
{
-#ifdef WIN32
+#ifdef _WIN32
if (!DeleteFile(path.c_str()))
throw FormatLastError("Failed to delete %s", path.c_str());
#else
diff --git a/src/fs/FileSystem.hxx b/src/fs/FileSystem.hxx
index 2c5a2cd..1e5fe12 100644
--- a/src/fs/FileSystem.hxx
+++ b/src/fs/FileSystem.hxx
@@ -26,7 +26,7 @@
#include "Path.hxx"
-#ifdef WIN32
+#ifdef _WIN32
#include <fileapi.h>
#endif
@@ -43,7 +43,7 @@ class AllocatedPath;
static inline FILE *
FOpen(Path file, PathTraitsFS::const_pointer_type mode)
{
-#ifdef WIN32
+#ifdef _WIN32
return _tfopen(file.c_str(), mode);
#else
return fopen(file.c_str(), mode);
@@ -56,7 +56,7 @@ FOpen(Path file, PathTraitsFS::const_pointer_type mode)
static inline int
OpenFile(Path file, int flags, int mode)
{
-#ifdef WIN32
+#ifdef _WIN32
return _topen(file.c_str(), flags, mode);
#else
return open_cloexec(file.c_str(), flags, mode);
@@ -71,7 +71,7 @@ OpenFile(Path file, int flags, int mode)
void
RenameFile(Path oldpath, Path newpath);
-#ifndef WIN32
+#ifndef _WIN32
/**
* Wrapper for stat() that uses #Path names.
@@ -107,7 +107,7 @@ RemoveFile(Path path);
AllocatedPath
ReadLink(Path path);
-#ifndef WIN32
+#ifndef _WIN32
static inline bool
MakeFifo(Path path, mode_t mode)
@@ -132,7 +132,7 @@ CheckAccess(Path path, int mode)
static inline bool
FileExists(Path path, bool follow_symlinks = true)
{
-#ifdef WIN32
+#ifdef _WIN32
(void)follow_symlinks;
const auto a = GetFileAttributes(path.c_str());
@@ -150,7 +150,7 @@ FileExists(Path path, bool follow_symlinks = true)
static inline bool
DirectoryExists(Path path, bool follow_symlinks = true)
{
-#ifdef WIN32
+#ifdef _WIN32
(void)follow_symlinks;
const auto a = GetFileAttributes(path.c_str());
@@ -167,7 +167,7 @@ DirectoryExists(Path path, bool follow_symlinks = true)
static inline bool
PathExists(Path path)
{
-#ifdef WIN32
+#ifdef _WIN32
return GetFileAttributes(path.c_str()) != INVALID_FILE_ATTRIBUTES;
#else
return CheckAccess(path, F_OK);
diff --git a/src/fs/Glob.hxx b/src/fs/Glob.hxx
index 1f84020..b15972f 100644
--- a/src/fs/Glob.hxx
+++ b/src/fs/Glob.hxx
@@ -26,7 +26,7 @@
#define HAVE_CLASS_GLOB
#include <string>
#include <fnmatch.h>
-#elif defined(WIN32)
+#elif defined(_WIN32)
#define HAVE_CLASS_GLOB
#include <string>
#include <shlwapi.h>
@@ -40,12 +40,12 @@
* (asterisk and question mark).
*/
class Glob {
-#if defined(HAVE_FNMATCH) || defined(WIN32)
+#if defined(HAVE_FNMATCH) || defined(_WIN32)
std::string pattern;
#endif
public:
-#if defined(HAVE_FNMATCH) || defined(WIN32)
+#if defined(HAVE_FNMATCH) || defined(_WIN32)
explicit Glob(const char *_pattern)
:pattern(_pattern) {}
@@ -57,7 +57,7 @@ public:
bool Check(const char *name_fs) const noexcept {
#ifdef HAVE_FNMATCH
return fnmatch(pattern.c_str(), name_fs, 0) == 0;
-#elif defined(WIN32)
+#elif defined(_WIN32)
return PathMatchSpecA(name_fs, pattern.c_str());
#endif
}
diff --git a/src/fs/Limits.hxx b/src/fs/Limits.hxx
index c9ce51e..5a646c6 100644
--- a/src/fs/Limits.hxx
+++ b/src/fs/Limits.hxx
@@ -25,7 +25,7 @@
#include <stddef.h>
#include <limits.h>
-#if defined(WIN32)
+#if defined(_WIN32)
static constexpr size_t MPD_PATH_MAX = 260;
#elif defined(MAXPATHLEN)
static constexpr size_t MPD_PATH_MAX = MAXPATHLEN;
diff --git a/src/fs/StandardDirectory.cxx b/src/fs/StandardDirectory.cxx
index 1ea92cf..3d9a1b1 100644
--- a/src/fs/StandardDirectory.cxx
+++ b/src/fs/StandardDirectory.cxx
@@ -20,7 +20,7 @@
#include "config.h"
// Use X Desktop guidelines where applicable
-#if !defined(__APPLE__) && !defined(WIN32) && !defined(ANDROID)
+#if !defined(__APPLE__) && !defined(_WIN32) && !defined(ANDROID)
#define USE_XDG
#endif
@@ -29,7 +29,7 @@
#include <array>
-#ifdef WIN32
+#ifdef _WIN32
#include <windows.h>
#include <shlobj.h>
#else
@@ -53,7 +53,7 @@
#include "Main.hxx"
#endif
-#if !defined(WIN32) && !defined(ANDROID)
+#if !defined(_WIN32) && !defined(ANDROID)
class PasswdEntry
{
#if defined(HAVE_GETPWNAM_R) || defined(HAVE_GETPWUID_R)
@@ -113,7 +113,7 @@ SafePathFromFS(PathTraitsFS::const_pointer_type dir)
}
#endif
-#ifdef WIN32
+#ifdef _WIN32
static AllocatedPath GetStandardDir(int folder_id)
{
std::array<PathTraitsFS::value_type, MAX_PATH> dir;
@@ -226,7 +226,7 @@ try {
AllocatedPath
GetUserConfigDir() noexcept
{
-#if defined(WIN32)
+#if defined(_WIN32)
return GetStandardDir(CSIDL_LOCAL_APPDATA);
#elif defined(USE_XDG)
// Check for $XDG_CONFIG_HOME
@@ -251,7 +251,7 @@ GetUserConfigDir() noexcept
AllocatedPath
GetUserMusicDir() noexcept
{
-#if defined(WIN32)
+#if defined(_WIN32)
return GetStandardDir(CSIDL_MYMUSIC);
#elif defined(USE_XDG)
return GetUserDir("XDG_MUSIC_DIR");
@@ -287,7 +287,7 @@ GetUserCacheDir() noexcept
#endif
}
-#ifdef WIN32
+#ifdef _WIN32
AllocatedPath
GetSystemConfigDir() noexcept
diff --git a/src/fs/StandardDirectory.hxx b/src/fs/StandardDirectory.hxx
index 13d324c..2742c6f 100644
--- a/src/fs/StandardDirectory.hxx
+++ b/src/fs/StandardDirectory.hxx
@@ -42,7 +42,7 @@ gcc_pure
AllocatedPath
GetUserCacheDir() noexcept;
-#ifdef WIN32
+#ifdef _WIN32
/**
* Obtains system configuration directory.
diff --git a/src/fs/Traits.cxx b/src/fs/Traits.cxx
index ac0700b..42219c3 100644
--- a/src/fs/Traits.cxx
+++ b/src/fs/Traits.cxx
@@ -78,7 +78,7 @@ GetParentPathImpl(typename Traits::const_pointer_type p)
return typename Traits::string(Traits::CURRENT_DIRECTORY);
if (sep == p)
return typename Traits::string(p, p + 1);
-#ifdef WIN32
+#ifdef _WIN32
if (Traits::IsDrive(p) && sep == p + 2)
return typename Traits::string(p, p + 3);
#endif
diff --git a/src/fs/Traits.hxx b/src/fs/Traits.hxx
index 67f74dc..e41ae10 100644
--- a/src/fs/Traits.hxx
+++ b/src/fs/Traits.hxx
@@ -25,7 +25,7 @@
#include "util/StringPointer.hxx"
#include "util/StringAPI.hxx"
-#ifdef WIN32
+#ifdef _WIN32
#include "util/CharUtil.hxx"
#include <tchar.h>
#endif
@@ -34,7 +34,7 @@
#include <assert.h>
-#ifdef WIN32
+#ifdef _WIN32
#define PATH_LITERAL(s) _T(s)
#else
#define PATH_LITERAL(s) (s)
@@ -44,7 +44,7 @@
* This class describes the nature of a native filesystem path.
*/
struct PathTraitsFS {
-#ifdef WIN32
+#ifdef _WIN32
typedef std::wstring string;
#else
typedef std::string string;
@@ -55,7 +55,7 @@ struct PathTraitsFS {
typedef Pointer::pointer_type pointer_type;
typedef Pointer::const_pointer_type const_pointer_type;
-#ifdef WIN32
+#ifdef _WIN32
static constexpr value_type SEPARATOR = '\\';
#else
static constexpr value_type SEPARATOR = '/';
@@ -65,7 +65,7 @@ struct PathTraitsFS {
static constexpr bool IsSeparator(value_type ch) noexcept {
return
-#ifdef WIN32
+#ifdef _WIN32
ch == '/' ||
#endif
ch == SEPARATOR;
@@ -78,7 +78,7 @@ struct PathTraitsFS {
assert(p != nullptr);
#endif
-#ifdef WIN32
+#ifdef _WIN32
const_pointer_type pos = p + GetLength(p);
while (p != pos && !IsSeparator(*pos))
--pos;
@@ -88,7 +88,7 @@ struct PathTraitsFS {
#endif
}
-#ifdef WIN32
+#ifdef _WIN32
gcc_pure gcc_nonnull_all
static constexpr bool IsDrive(const_pointer_type p) noexcept {
return IsAlphaASCII(p[0]) && p[1] == ':';
@@ -102,7 +102,7 @@ struct PathTraitsFS {
assert(p != nullptr);
#endif
-#ifdef WIN32
+#ifdef _WIN32
if (IsDrive(p) && IsSeparator(p[2]))
return true;
#endif
@@ -188,7 +188,7 @@ struct PathTraitsUTF8 {
return strrchr(p, SEPARATOR);
}
-#ifdef WIN32
+#ifdef _WIN32
gcc_pure gcc_nonnull_all
static constexpr bool IsDrive(const_pointer_type p) noexcept {
return IsAlphaASCII(p[0]) && p[1] == ':';
@@ -202,7 +202,7 @@ struct PathTraitsUTF8 {
assert(p != nullptr);
#endif
-#ifdef WIN32
+#ifdef _WIN32
if (IsDrive(p) && IsSeparator(p[2]))
return true;
#endif
diff --git a/src/fs/io/FileOutputStream.cxx b/src/fs/io/FileOutputStream.cxx
index b72bee6..ddf7208 100644
--- a/src/fs/io/FileOutputStream.cxx
+++ b/src/fs/io/FileOutputStream.cxx
@@ -43,7 +43,7 @@ FileOutputStream::FileOutputStream(Path _path, Mode _mode)
}
}
-#ifdef WIN32
+#ifdef _WIN32
inline void
FileOutputStream::OpenCreate(gcc_unused bool visible)
@@ -223,7 +223,7 @@ FileOutputStream::Commit()
#endif
if (!Close()) {
-#ifdef WIN32
+#ifdef _WIN32
throw FormatLastError("Failed to commit %s",
path.ToUTF8().c_str());
#else
diff --git a/src/fs/io/FileOutputStream.hxx b/src/fs/io/FileOutputStream.hxx
index 0d19590..a87036a 100644
--- a/src/fs/io/FileOutputStream.hxx
+++ b/src/fs/io/FileOutputStream.hxx
@@ -25,14 +25,14 @@
#include "fs/AllocatedPath.hxx"
#include "Compiler.h"
-#ifndef WIN32
+#ifndef _WIN32
#include "system/FileDescriptor.hxx"
#endif
#include <assert.h>
#include <stdint.h>
-#ifdef WIN32
+#ifdef _WIN32
#include <windows.h>
#endif
@@ -41,7 +41,7 @@ class Path;
class FileOutputStream final : public OutputStream {
const AllocatedPath path;
-#ifdef WIN32
+#ifdef _WIN32
HANDLE handle = INVALID_HANDLE_VALUE;
#else
FileDescriptor fd = FileDescriptor::Undefined();
@@ -116,7 +116,7 @@ private:
bool Close() {
assert(IsDefined());
-#ifdef WIN32
+#ifdef _WIN32
CloseHandle(handle);
handle = INVALID_HANDLE_VALUE;
return true;
@@ -125,7 +125,7 @@ private:
#endif
}
-#ifdef WIN32
+#ifdef _WIN32
bool SeekEOF() {
return SetFilePointer(handle, 0, nullptr,
FILE_END) != 0xffffffff;
@@ -133,7 +133,7 @@ private:
#endif
bool IsDefined() const {
-#ifdef WIN32
+#ifdef _WIN32
return handle != INVALID_HANDLE_VALUE;
#else
return fd.IsDefined();
diff --git a/src/fs/io/FileReader.cxx b/src/fs/io/FileReader.cxx
index 72ee8f4..42adab5 100644
--- a/src/fs/io/FileReader.cxx
+++ b/src/fs/io/FileReader.cxx
@@ -24,7 +24,7 @@
#include <assert.h>
-#ifdef WIN32
+#ifdef _WIN32
FileReader::FileReader(Path _path)
:path(_path),
diff --git a/src/fs/io/FileReader.hxx b/src/fs/io/FileReader.hxx
index 7dc1222..d4d5456 100644
--- a/src/fs/io/FileReader.hxx
+++ b/src/fs/io/FileReader.hxx
@@ -25,11 +25,11 @@
#include "fs/AllocatedPath.hxx"
#include "Compiler.h"
-#ifndef WIN32
+#ifndef _WIN32
#include "system/FileDescriptor.hxx"
#endif
-#ifdef WIN32
+#ifdef _WIN32
#include <windows.h>
#endif
@@ -39,7 +39,7 @@ class FileInfo;
class FileReader final : public Reader {
AllocatedPath path;
-#ifdef WIN32
+#ifdef _WIN32
HANDLE handle;
#else
FileDescriptor fd;
@@ -48,7 +48,7 @@ class FileReader final : public Reader {
public:
explicit FileReader(Path _path);
-#ifdef WIN32
+#ifdef _WIN32
FileReader(FileReader &&other)
:path(std::move(other.path)),
handle(other.handle) {
@@ -70,7 +70,7 @@ public:
protected:
bool IsDefined() const {
-#ifdef WIN32
+#ifdef _WIN32
return handle != INVALID_HANDLE_VALUE;
#else
return fd.IsDefined();
@@ -78,7 +78,7 @@ protected:
}
public:
-#ifndef WIN32
+#ifndef _WIN32
FileDescriptor GetFD() const {
return fd;
}
@@ -90,7 +90,7 @@ public:
gcc_pure
uint64_t GetSize() const noexcept {
-#ifdef WIN32
+#ifdef _WIN32
LARGE_INTEGER size;
return GetFileSizeEx(handle, &size)
? size.QuadPart
@@ -102,7 +102,7 @@ public:
gcc_pure
uint64_t GetPosition() const noexcept {
-#ifdef WIN32
+#ifdef _WIN32
LARGE_INTEGER zero;
zero.QuadPart = 0;
LARGE_INTEGER position;
diff --git a/src/input/InputPlugin.hxx b/src/input/InputPlugin.hxx
index 75255b1..e13bdad 100644
--- a/src/input/InputPlugin.hxx
+++ b/src/input/InputPlugin.hxx
@@ -26,7 +26,7 @@
#include <stddef.h>
#include <stdint.h>
-#ifdef WIN32
+#ifdef _WIN32
#include <windows.h>
/* damn you, windows.h! */
#ifdef ERROR
diff --git a/src/input/plugins/CurlInputPlugin.cxx b/src/input/plugins/CurlInputPlugin.cxx
index ffffb34..5cc29a5 100644
--- a/src/input/plugins/CurlInputPlugin.cxx
+++ b/src/input/plugins/CurlInputPlugin.cxx
@@ -227,7 +227,7 @@ CurlInputStream::OnHeaders(unsigned status,
if (i != headers.end()) {
size_t icy_metaint = ParseUint64(i->second.c_str());
-#ifndef WIN32
+#ifndef _WIN32
/* Windows doesn't know "%z" */
FormatDebug(curl_domain, "icy-metaint=%zu", icy_metaint);
#endif
@@ -414,7 +414,7 @@ CurlInputStream::SeekInternal(offset_type new_offset)
if (offset > 0) {
char range[32];
-#ifdef WIN32
+#ifdef _WIN32
// TODO: what can we use on Windows to format 64 bit?
sprintf(range, "%lu-", (long)offset);
#else
diff --git a/src/lib/icu/CaseFold.cxx b/src/lib/icu/CaseFold.cxx
index ccdf998..d0f0868 100644
--- a/src/lib/icu/CaseFold.cxx
+++ b/src/lib/icu/CaseFold.cxx
@@ -36,7 +36,7 @@
#include <ctype.h>
#endif
-#ifdef WIN32
+#ifdef _WIN32
#include "Win32.hxx"
#include <windows.h>
#endif
@@ -73,7 +73,7 @@ try {
folded.SetSize(folded_length);
return UCharToUTF8({folded.begin(), folded.size()});
-#elif defined(WIN32)
+#elif defined(_WIN32)
const auto u = MultiByteToWideChar(CP_UTF8, src);
const int size = LCMapStringEx(LOCALE_NAME_INVARIANT,
diff --git a/src/lib/icu/Collate.cxx b/src/lib/icu/Collate.cxx
index f16cba5..7772785 100644
--- a/src/lib/icu/Collate.cxx
+++ b/src/lib/icu/Collate.cxx
@@ -32,7 +32,7 @@
#include <ctype.h>
#endif
-#ifdef WIN32
+#ifdef _WIN32
#include "Win32.hxx"
#include "util/AllocatedString.hxx"
#include <windows.h>
@@ -103,7 +103,7 @@ IcuCollate(const char *a, const char *b) noexcept
}
#endif
-#elif defined(WIN32)
+#elif defined(_WIN32)
AllocatedString<wchar_t> wa = nullptr, wb = nullptr;
try {
diff --git a/src/lib/upnp/Action.hxx b/src/lib/upnp/Action.hxx
index a3aa069..70e45bd 100644
--- a/src/lib/upnp/Action.hxx
+++ b/src/lib/upnp/Action.hxx
@@ -22,7 +22,7 @@
#include "Compiler.h"
-#include <upnp/upnptools.h>
+#include <upnptools.h>
static inline constexpr unsigned
CountNameValuePairs()
diff --git a/src/lib/upnp/Callback.hxx b/src/lib/upnp/Callback.hxx
index 2f559ab..f5cabdd 100644
--- a/src/lib/upnp/Callback.hxx
+++ b/src/lib/upnp/Callback.hxx
@@ -20,7 +20,7 @@
#ifndef MPD_UPNP_CALLBACK_HXX
#define MPD_UPNP_CALLBACK_HXX
-#include <upnp/upnp.h>
+#include <upnp.h>
/**
* A class that is supposed to be used for libupnp asynchronous
diff --git a/src/lib/upnp/ClientInit.cxx b/src/lib/upnp/ClientInit.cxx
index fed42a7..58f7b67 100644
--- a/src/lib/upnp/ClientInit.cxx
+++ b/src/lib/upnp/ClientInit.cxx
@@ -24,7 +24,7 @@
#include "thread/Mutex.hxx"
#include "util/RuntimeError.hxx"
-#include <upnp/upnptools.h>
+#include <upnptools.h>
#include <assert.h>
diff --git a/src/lib/upnp/ClientInit.hxx b/src/lib/upnp/ClientInit.hxx
index 75f3a80..de463ec 100644
--- a/src/lib/upnp/ClientInit.hxx
+++ b/src/lib/upnp/ClientInit.hxx
@@ -22,7 +22,7 @@
#include "check.h"
-#include <upnp/upnp.h>
+#include <upnp.h>
void
UpnpClientGlobalInit(UpnpClient_Handle &handle);
diff --git a/src/lib/upnp/Compat.hxx b/src/lib/upnp/Compat.hxx
index 2e2d2f1..b4b5bd0 100644
--- a/src/lib/upnp/Compat.hxx
+++ b/src/lib/upnp/Compat.hxx
@@ -20,15 +20,18 @@
#ifndef MPD_UPNP_COMPAT_HXX
#define MPD_UPNP_COMPAT_HXX
-#include <upnp/upnp.h>
+#include <upnp.h>
#if UPNP_VERSION < 10800
-#include "Compiler.h"
-
/* emulate the libupnp 1.8 API with older versions */
using UpnpDiscovery = Upnp_Discovery;
+#endif
+
+#if UPNP_VERSION < 10624
+#include "Compiler.h"
+
gcc_pure
static inline int
UpnpDiscovery_get_Expires(const UpnpDiscovery *disco) noexcept
diff --git a/src/lib/upnp/ContentDirectoryService.hxx b/src/lib/upnp/ContentDirectoryService.hxx
index 78d7dff..ccd0c6d 100644
--- a/src/lib/upnp/ContentDirectoryService.hxx
+++ b/src/lib/upnp/ContentDirectoryService.hxx
@@ -22,7 +22,7 @@
#include "Compiler.h"
-#include <upnp/upnp.h>
+#include <upnp.h>
#include <string>
#include <list>
diff --git a/src/lib/upnp/Discovery.cxx b/src/lib/upnp/Discovery.cxx
index 163f03b..ed273a0 100644
--- a/src/lib/upnp/Discovery.cxx
+++ b/src/lib/upnp/Discovery.cxx
@@ -24,7 +24,7 @@
#include "util/ScopeExit.hxx"
#include "util/RuntimeError.hxx"
-#include <upnp/upnptools.h>
+#include <upnptools.h>
#include <stdlib.h>
#include <string.h>
diff --git a/src/lib/upnp/Discovery.hxx b/src/lib/upnp/Discovery.hxx
index a768d14..14f5c79 100644
--- a/src/lib/upnp/Discovery.hxx
+++ b/src/lib/upnp/Discovery.hxx
@@ -27,7 +27,7 @@
#include "thread/Mutex.hxx"
#include "Compiler.h"
-#include <upnp/upnp.h>
+#include <upnp.h>
#include <list>
#include <vector>
diff --git a/src/lib/upnp/Init.cxx b/src/lib/upnp/Init.cxx
index 807a984..ac2167f 100644
--- a/src/lib/upnp/Init.cxx
+++ b/src/lib/upnp/Init.cxx
@@ -22,9 +22,9 @@
#include "thread/Mutex.hxx"
#include "util/RuntimeError.hxx"
-#include <upnp/upnp.h>
-#include <upnp/upnptools.h>
-#include <upnp/ixml.h>
+#include <upnp.h>
+#include <upnptools.h>
+#include <ixml.h>
#include <assert.h>
diff --git a/src/lib/upnp/UniqueIxml.hxx b/src/lib/upnp/UniqueIxml.hxx
index 9817ca3..0e1e902 100644
--- a/src/lib/upnp/UniqueIxml.hxx
+++ b/src/lib/upnp/UniqueIxml.hxx
@@ -20,7 +20,7 @@
#ifndef MPD_UPNP_UNIQUE_XML_HXX
#define MPD_UPNP_UNIQUE_XML_HXX
-#include <upnp/ixml.h>
+#include <ixml.h>
#include <memory>
diff --git a/src/lib/upnp/ixmlwrap.hxx b/src/lib/upnp/ixmlwrap.hxx
index 0d519a3..34ad399 100644
--- a/src/lib/upnp/ixmlwrap.hxx
+++ b/src/lib/upnp/ixmlwrap.hxx
@@ -17,7 +17,7 @@
#ifndef _IXMLWRAP_H_INCLUDED_
#define _IXMLWRAP_H_INCLUDED_
-#include <upnp/ixml.h>
+#include <ixml.h>
#include <string>
diff --git a/src/mixer/plugins/AlsaMixerPlugin.cxx b/src/mixer/plugins/AlsaMixerPlugin.cxx
index 8012ca2..c5ef0dc 100644
--- a/src/mixer/plugins/AlsaMixerPlugin.cxx
+++ b/src/mixer/plugins/AlsaMixerPlugin.cxx
@@ -292,7 +292,9 @@ AlsaMixer::SetVolume(unsigned volume)
{
assert(handle != nullptr);
- int err = set_normalized_playback_volume(elem, 0.01*volume, 1);
+ double cur = get_normalized_playback_volume(elem, SND_MIXER_SCHN_FRONT_LEFT);
+ int delta = volume - lrint(100.*cur);
+ int err = set_normalized_playback_volume(elem, cur + 0.01*delta, delta);
if (err < 0)
throw FormatRuntimeError("failed to set ALSA volume: %s",
snd_strerror(err));
diff --git a/src/net/Resolver.cxx b/src/net/Resolver.cxx
index 036f95f..160447e 100644
--- a/src/net/Resolver.cxx
+++ b/src/net/Resolver.cxx
@@ -23,7 +23,7 @@
#include <string>
-#ifdef WIN32
+#ifdef _WIN32
#include <ws2tcpip.h>
#else
#include <sys/types.h>
diff --git a/src/net/SocketAddress.hxx b/src/net/SocketAddress.hxx
index 5db6d55..6b82602 100644
--- a/src/net/SocketAddress.hxx
+++ b/src/net/SocketAddress.hxx
@@ -34,7 +34,7 @@
#include <cstddef>
-#ifdef WIN32
+#ifdef _WIN32
#include <winsock2.h>
#else
#include <sys/socket.h>
@@ -45,7 +45,7 @@
*/
class SocketAddress {
public:
-#ifdef WIN32
+#ifdef _WIN32
typedef int size_type;
#else
typedef socklen_t size_type;
diff --git a/src/net/SocketError.cxx b/src/net/SocketError.cxx
index 082dec1..9beef4f 100644
--- a/src/net/SocketError.cxx
+++ b/src/net/SocketError.cxx
@@ -23,7 +23,7 @@
#include <string.h>
-#ifdef WIN32
+#ifdef _WIN32
SocketErrorMessage::SocketErrorMessage(socket_error_t code) noexcept
{
diff --git a/src/net/SocketError.hxx b/src/net/SocketError.hxx
index 6e3a779..c4caac6 100644
--- a/src/net/SocketError.hxx
+++ b/src/net/SocketError.hxx
@@ -23,7 +23,7 @@
#include "Compiler.h"
#include "system/Error.hxx"
-#ifdef WIN32
+#ifdef _WIN32
#include <winsock2.h>
typedef DWORD socket_error_t;
#else
@@ -35,7 +35,7 @@ gcc_pure
static inline socket_error_t
GetSocketError() noexcept
{
-#ifdef WIN32
+#ifdef _WIN32
return WSAGetLastError();
#else
return errno;
@@ -46,7 +46,7 @@ gcc_const
static inline bool
IsSocketErrorAgain(socket_error_t code) noexcept
{
-#ifdef WIN32
+#ifdef _WIN32
return code == WSAEINPROGRESS;
#else
return code == EAGAIN;
@@ -57,7 +57,7 @@ gcc_const
static inline bool
IsSocketErrorInterruped(socket_error_t code) noexcept
{
-#ifdef WIN32
+#ifdef _WIN32
return code == WSAEINTR;
#else
return code == EINTR;
@@ -68,7 +68,7 @@ gcc_const
static inline bool
IsSocketErrorClosed(socket_error_t code) noexcept
{
-#ifdef WIN32
+#ifdef _WIN32
return code == WSAECONNRESET;
#else
return code == EPIPE || code == ECONNRESET;
@@ -81,7 +81,7 @@ IsSocketErrorClosed(socket_error_t code) noexcept
* and this class hosts the buffer.
*/
class SocketErrorMessage {
-#ifdef WIN32
+#ifdef _WIN32
char msg[256];
#else
const char *const msg;
@@ -99,7 +99,7 @@ gcc_const
static inline std::system_error
MakeSocketError(socket_error_t code, const char *msg) noexcept
{
-#ifdef WIN32
+#ifdef _WIN32
return MakeLastError(code, msg);
#else
return MakeErrno(code, msg);
diff --git a/src/net/ToString.cxx b/src/net/ToString.cxx
index f185a5e..3492a26 100644
--- a/src/net/ToString.cxx
+++ b/src/net/ToString.cxx
@@ -34,7 +34,7 @@
#include <algorithm>
-#ifdef WIN32
+#ifdef _WIN32
#include <ws2tcpip.h>
#else
#include <netdb.h>
diff --git a/src/output/Source.cxx b/src/output/Source.cxx
index de11595..7326668 100644
--- a/src/output/Source.cxx
+++ b/src/output/Source.cxx
@@ -142,7 +142,8 @@ AudioOutputSource::GetChunkData(const MusicChunk &chunk,
replay_gain_filter_set_mode(*replay_gain_filter,
replay_gain_mode);
- if (chunk.replay_gain_serial != *replay_gain_serial_p) {
+ if (chunk.replay_gain_serial != *replay_gain_serial_p &&
+ chunk.replay_gain_serial != MusicChunk::IGNORE_REPLAY_GAIN) {
replay_gain_filter_set_info(*replay_gain_filter,
chunk.replay_gain_serial != 0
? &chunk.replay_gain_info
diff --git a/src/output/plugins/OSXOutputPlugin.cxx b/src/output/plugins/OSXOutputPlugin.cxx
index 3a0e6fb..f72e85b 100644
--- a/src/output/plugins/OSXOutputPlugin.cxx
+++ b/src/output/plugins/OSXOutputPlugin.cxx
@@ -36,9 +36,10 @@
#include <memory>
+static constexpr unsigned MPD_OSX_BUFFER_TIME_MS = 100;
+
struct OSXOutput {
AudioOutput base;
-
/* configuration settings */
OSType component_subtype;
/* only applicable with kAudioUnitSubType_HALOutput */
@@ -693,7 +694,9 @@ osx_output_open(AudioOutput *ao, AudioFormat &audio_format)
errormsg);
}
- od->ring_buffer = new boost::lockfree::spsc_queue<uint8_t>(buffer_frame_size);
+ size_t ring_buffer_size = std::max<size_t>(buffer_frame_size,
+ MPD_OSX_BUFFER_TIME_MS * audio_format.GetFrameSize() * audio_format.sample_rate / 1000);
+ od->ring_buffer = new boost::lockfree::spsc_queue<uint8_t>(ring_buffer_size);
status = AudioOutputUnitStart(od->au);
if (status != 0) {
@@ -717,7 +720,7 @@ osx_output_delay(AudioOutput *ao) noexcept
OSXOutput *od = (OSXOutput *)ao;
return od->ring_buffer->write_available()
? std::chrono::steady_clock::duration::zero()
- : std::chrono::milliseconds(25);
+ : std::chrono::milliseconds(MPD_OSX_BUFFER_TIME_MS / 4);
}
int
diff --git a/src/pcm/SampleFormat.hxx b/src/pcm/SampleFormat.hxx
index febb89f..9d956b7 100644
--- a/src/pcm/SampleFormat.hxx
+++ b/src/pcm/SampleFormat.hxx
@@ -24,7 +24,7 @@
#include <stdint.h>
-#if defined(WIN32) && GCC_CHECK_VERSION(4,6)
+#if defined(_WIN32) && GCC_CHECK_VERSION(4,6)
/* on WIN32, "FLOAT" is already defined, and this triggers -Wshadow */
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wshadow"
@@ -57,7 +57,7 @@ enum class SampleFormat : uint8_t {
DSD,
};
-#if defined(WIN32) && GCC_CHECK_VERSION(4,6)
+#if defined(_WIN32) && GCC_CHECK_VERSION(4,6)
#pragma GCC diagnostic pop
#endif
diff --git a/src/player/Thread.cxx b/src/player/Thread.cxx
index c06bd41..913e541 100644
--- a/src/player/Thread.cxx
+++ b/src/player/Thread.cxx
@@ -558,8 +558,10 @@ Player::SendSilence()
partial frames */
unsigned num_frames = sizeof(chunk->data) / frame_size;
+ chunk->bit_rate = 0;
chunk->time = SignedSongTime::Negative(); /* undefined time stamp */
chunk->length = num_frames * frame_size;
+ chunk->replay_gain_serial = MusicChunk::IGNORE_REPLAY_GAIN;
PcmSilence({chunk->data, chunk->length}, play_audio_format.format);
try {
diff --git a/src/queue/PlaylistControl.cxx b/src/queue/PlaylistControl.cxx
index 4b17386..018ddcb 100644
--- a/src/queue/PlaylistControl.cxx
+++ b/src/queue/PlaylistControl.cxx
@@ -75,8 +75,7 @@ playlist::MoveOrderToCurrent(unsigned old_order)
} else {
/* not playing anything: move the specified song to
the front */
- queue.SwapOrders(old_order, 0);
- return 0;
+ return queue.MoveOrderBefore(old_order, 0);
}
}
diff --git a/src/queue/PlaylistEdit.cxx b/src/queue/PlaylistEdit.cxx
index 6767568..8d7429e 100644
--- a/src/queue/PlaylistEdit.cxx
+++ b/src/queue/PlaylistEdit.cxx
@@ -112,7 +112,7 @@ playlist::AppendSong(PlayerControl &pc, DetachedSong &&song)
else
start = current + 1;
if (start < queue.GetLength())
- queue.ShuffleOrderLast(start, queue.GetLength());
+ queue.ShuffleOrderLastWithPriority(start, queue.GetLength());
}
UpdateQueuedSong(pc, queued_song);
diff --git a/src/queue/Queue.cxx b/src/queue/Queue.cxx
index 7207780..0997e91 100644
--- a/src/queue/Queue.cxx
+++ b/src/queue/Queue.cxx
@@ -364,8 +364,20 @@ Queue::ShuffleOrderFirst(unsigned start, unsigned end)
}
void
-Queue::ShuffleOrderLast(unsigned start, unsigned end)
+Queue::ShuffleOrderLastWithPriority(unsigned start, unsigned end)
{
+ assert(end <= length);
+ assert(start < end);
+
+ /* skip all items at the start which have a higher priority,
+ because the last item shall only be shuffled within its
+ priority group */
+ const auto last_priority = items[OrderToPosition(end - 1)].priority;
+ while (items[OrderToPosition(start)].priority != last_priority) {
+ ++start;
+ assert(start < end);
+ }
+
rand.AutoCreate();
std::uniform_int_distribution<unsigned> distribution(start, end - 1);
diff --git a/src/queue/Queue.hxx b/src/queue/Queue.hxx
index 06e8004..fb1d9c8 100644
--- a/src/queue/Queue.hxx
+++ b/src/queue/Queue.hxx
@@ -356,11 +356,12 @@ struct Queue {
void ShuffleOrderFirst(unsigned start, unsigned end);
/**
- * Shuffles the virtual order of the last song in the specified
- * (order) range. This is used in random mode after a song has been
- * appended by queue_append().
+ * Shuffles the virtual order of the last song in the
+ * specified (order) range; only songs which match this song's
+ * priority are considered. This is used in random mode after
+ * a song has been appended by Append().
*/
- void ShuffleOrderLast(unsigned start, unsigned end);
+ void ShuffleOrderLastWithPriority(unsigned start, unsigned end);
/**
* Shuffles a (position) range in the queue. The songs are physically
diff --git a/src/storage/StorageState.cxx b/src/storage/StorageState.cxx
new file mode 100644
index 0000000..beeb4ee
--- /dev/null
+++ b/src/storage/StorageState.cxx
@@ -0,0 +1,138 @@
+/*
+ * Copyright 2003-2017 The Music Player Daemon Project
+ * http://www.musicpd.org
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+/*
+ * Save and load mounts of the compound storage to/from the state file.
+ *
+ */
+
+#include "config.h"
+#include "StorageState.hxx"
+#include "fs/io/TextFile.hxx"
+#include "fs/io/BufferedOutputStream.hxx"
+#include "storage/Registry.hxx"
+#include "storage/CompositeStorage.hxx"
+#include "db/plugins/simple/SimpleDatabasePlugin.hxx"
+#include "util/StringCompare.hxx"
+#include "util/Domain.hxx"
+#include "Instance.hxx"
+#include "IOThread.hxx"
+#include "Log.hxx"
+
+#include <list>
+#include <boost/crc.hpp>
+
+#define MOUNT_STATE_BEGIN "mount_begin"
+#define MOUNT_STATE_END "mount_end"
+#define MOUNT_STATE_STORAGE_URI "uri: "
+#define MOUNT_STATE_MOUNTED_URL "mounted_url: "
+
+static constexpr Domain storage_domain("storage");
+
+void
+storage_state_save(BufferedOutputStream &os, const Instance &instance)
+{
+ const auto visitor = [&os](const char *mount_uri, const Storage &storage) {
+ std::string uri = storage.MapUTF8("");
+ if (uri.empty() || StringIsEmpty(mount_uri))
+ return;
+
+ os.Format(
+ MOUNT_STATE_BEGIN "\n"
+ MOUNT_STATE_STORAGE_URI "%s\n"
+ MOUNT_STATE_MOUNTED_URL "%s\n"
+ MOUNT_STATE_END "\n", mount_uri, uri.c_str());
+ };
+
+ ((CompositeStorage*)instance.storage)->VisitMounts(visitor);
+}
+
+bool
+storage_state_restore(const char *line, TextFile &file, Instance &instance)
+{
+ if (!StringStartsWith(line, MOUNT_STATE_BEGIN))
+ return false;
+
+ std::string url;
+ std::string uri;
+ const char* value;
+
+ while ((line = file.ReadLine()) != nullptr) {
+ if (StringStartsWith(line, MOUNT_STATE_END))
+ break;
+
+ if ((value = StringAfterPrefix(line, MOUNT_STATE_MOUNTED_URL)))
+ url = value;
+ else if ((value = StringAfterPrefix(line, MOUNT_STATE_STORAGE_URI)))
+ uri = value;
+ else
+ FormatError(storage_domain, "Unrecognized line in mountpoint state: %s", line);
+ }
+
+ if (url.empty() || uri.empty()) {
+ LogError(storage_domain, "Missing value in mountpoint state.");
+ return true;
+ }
+
+ FormatDebug(storage_domain, "Restoring mount %s => %s", uri.c_str(), url.c_str());
+
+ auto &event_loop = io_thread_get();
+ Storage *storage = CreateStorageURI(event_loop, url.c_str());
+ if (storage == nullptr) {
+ FormatError(storage_domain, "Unrecognized storage URI: %s", url.c_str());
+ return true;
+ }
+
+#ifdef ENABLE_DATABASE
+ Database *db = instance.database;
+ if (db != nullptr && db->IsPlugin(simple_db_plugin)) {
+ try {
+ ((SimpleDatabase *)db)->Mount(uri.c_str(), url.c_str());
+ } catch (...) {
+ throw;
+ }
+ }
+#endif
+
+ ((CompositeStorage*)instance.storage)->Mount(uri.c_str(), storage);
+
+ return true;
+}
+
+unsigned
+storage_state_get_hash(const Instance &instance)
+{
+ std::list<std::string> mounts;
+
+ const auto visitor = [&mounts](const char *mount_uri, const Storage &storage) {
+ mounts.push_back(std::string(mount_uri) + ":" + storage.MapUTF8(""));
+ };
+
+ ((CompositeStorage*)instance.storage)->VisitMounts(visitor);
+
+ mounts.sort();
+
+ boost::crc_32_type result;
+
+ for (auto mount: mounts) {
+ result.process_bytes(mount.c_str(), mount.length());
+ }
+
+ return result.checksum();
+}
diff --git a/src/system/Clock.hxx b/src/storage/StorageState.hxx
similarity index 58%
copy from src/system/Clock.hxx
copy to src/storage/StorageState.hxx
index 92fbb6a..659cc98 100644
--- a/src/system/Clock.hxx
+++ b/src/storage/StorageState.hxx
@@ -17,20 +17,30 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#ifndef MPD_CLOCK_H
-#define MPD_CLOCK_H
+/*
+ * Saving and loading the playlist to/from the state file.
+ *
+ */
+
+#ifndef MPD_STORAGE_STATE_HXX
+#define MPD_STORAGE_STATE_HXX
-#include "Compiler.h"
+struct Instance;
+class BufferedOutputStream;
+class TextFile;
-#ifdef WIN32
+void
+storage_state_save(BufferedOutputStream &os, const Instance &instance);
+
+bool
+storage_state_restore(const char *line, TextFile &file, Instance &instance);
/**
- * Returns the uptime of the current process in seconds.
+ * Generates a hash number for the current state of the composite storage.
+ * This is used by timer_save_state_file() to determine whether the state
+ * has changed and the state file should be saved.
*/
-gcc_pure
unsigned
-GetProcessUptimeS();
-
-#endif
+storage_state_get_hash(const Instance &instance);
#endif
diff --git a/src/storage/plugins/LocalStorage.cxx b/src/storage/plugins/LocalStorage.cxx
index 816286b..3f4816f 100644
--- a/src/storage/plugins/LocalStorage.cxx
+++ b/src/storage/plugins/LocalStorage.cxx
@@ -86,7 +86,7 @@ Stat(Path path, bool follow)
info.size = src.GetSize();
info.mtime = src.GetModificationTime();
-#ifdef WIN32
+#ifdef _WIN32
info.device = info.inode = 0;
#else
info.device = src.GetDevice();
diff --git a/src/system/Clock.cxx b/src/system/Clock.cxx
index 7e15412..dc29bdc 100644
--- a/src/system/Clock.cxx
+++ b/src/system/Clock.cxx
@@ -19,7 +19,7 @@
#include "Clock.hxx"
-#ifdef WIN32
+#ifdef _WIN32
#include <windows.h>
gcc_const
diff --git a/src/system/Clock.hxx b/src/system/Clock.hxx
index 92fbb6a..222ac48 100644
--- a/src/system/Clock.hxx
+++ b/src/system/Clock.hxx
@@ -22,7 +22,7 @@
#include "Compiler.h"
-#ifdef WIN32
+#ifdef _WIN32
/**
* Returns the uptime of the current process in seconds.
diff --git a/src/system/EPollFD.cxx b/src/system/EPollFD.cxx
index 0a9e2eb..39ddbca 100644
--- a/src/system/EPollFD.cxx
+++ b/src/system/EPollFD.cxx
@@ -22,7 +22,7 @@
#include "EPollFD.hxx"
#include "FatalError.hxx"
-#ifdef __BIONIC__
+#if defined(__BIONIC__) && __ANDROID_API__ < 21
#include <sys/syscall.h>
#include <fcntl.h>
diff --git a/src/system/Error.hxx b/src/system/Error.hxx
index 4d89e12..8420100 100644
--- a/src/system/Error.hxx
+++ b/src/system/Error.hxx
@@ -47,7 +47,7 @@ FormatSystemError(std::error_code code, const char *fmt, Args&&... args)
return std::system_error(code, buffer);
}
-#ifdef WIN32
+#ifdef _WIN32
#include <windows.h>
@@ -90,7 +90,7 @@ FormatLastError(const char *fmt, Args&&... args)
std::forward<Args>(args)...);
}
-#endif /* WIN32 */
+#endif /* _WIN32 */
#include <errno.h>
#include <string.h>
@@ -106,7 +106,7 @@ FormatLastError(const char *fmt, Args&&... args)
static inline const std::error_category &
ErrnoCategory()
{
-#ifdef WIN32
+#ifdef _WIN32
/* on Windows, the generic_category() is used for errno
values */
return std::generic_category();
@@ -151,7 +151,7 @@ gcc_pure
static inline bool
IsFileNotFound(const std::system_error &e) noexcept
{
-#ifdef WIN32
+#ifdef _WIN32
return e.code().category() == std::system_category() &&
e.code().value() == ERROR_FILE_NOT_FOUND;
#else
@@ -164,7 +164,7 @@ gcc_pure
static inline bool
IsPathNotFound(const std::system_error &e) noexcept
{
-#ifdef WIN32
+#ifdef _WIN32
return e.code().category() == std::system_category() &&
e.code().value() == ERROR_PATH_NOT_FOUND;
#else
@@ -177,7 +177,7 @@ gcc_pure
static inline bool
IsAccessDenied(const std::system_error &e) noexcept
{
-#ifdef WIN32
+#ifdef _WIN32
return e.code().category() == std::system_category() &&
e.code().value() == ERROR_ACCESS_DENIED;
#else
diff --git a/src/system/EventPipe.cxx b/src/system/EventPipe.cxx
index 600f762..d977095 100644
--- a/src/system/EventPipe.cxx
+++ b/src/system/EventPipe.cxx
@@ -26,19 +26,19 @@
#include <assert.h>
#include <unistd.h>
-#ifdef WIN32
+#ifdef _WIN32
#include <ws2tcpip.h>
#include <winsock2.h>
#include <cstring> /* for memset() */
#endif
-#ifdef WIN32
+#ifdef _WIN32
static bool PoorSocketPair(int fd[2]);
#endif
EventPipe::EventPipe()
{
-#ifdef WIN32
+#ifdef _WIN32
bool success = PoorSocketPair(fds);
#else
bool success = pipe_cloexec_nonblock(fds) >= 0;
@@ -49,7 +49,7 @@ EventPipe::EventPipe()
EventPipe::~EventPipe()
{
-#ifdef WIN32
+#ifdef _WIN32
closesocket(fds[0]);
closesocket(fds[1]);
#else
@@ -65,7 +65,7 @@ EventPipe::Read()
assert(fds[1] >= 0);
char buffer[256];
-#ifdef WIN32
+#ifdef _WIN32
return recv(fds[0], buffer, sizeof(buffer), 0) > 0;
#else
return read(fds[0], buffer, sizeof(buffer)) > 0;
@@ -78,14 +78,14 @@ EventPipe::Write()
assert(fds[0] >= 0);
assert(fds[1] >= 0);
-#ifdef WIN32
+#ifdef _WIN32
send(fds[1], "", 1, 0);
#else
gcc_unused ssize_t nbytes = write(fds[1], "", 1);
#endif
}
-#ifdef WIN32
+#ifdef _WIN32
static void SafeCloseSocket(SOCKET s)
{
diff --git a/src/system/FatalError.cxx b/src/system/FatalError.cxx
index 02ff209..9648bbb 100644
--- a/src/system/FatalError.cxx
+++ b/src/system/FatalError.cxx
@@ -28,7 +28,7 @@
#include <stdlib.h>
#include <string.h>
-#ifdef WIN32
+#ifdef _WIN32
#include <windows.h>
#else
#include <errno.h>
@@ -61,7 +61,7 @@ FormatFatalError(const char *fmt, ...)
Abort();
}
-#ifdef WIN32
+#ifdef _WIN32
void
FatalSystemError(const char *msg, DWORD code)
@@ -79,7 +79,7 @@ FatalSystemError(const char *msg, DWORD code)
void
FatalSystemError(const char *msg)
{
-#ifdef WIN32
+#ifdef _WIN32
FatalSystemError(msg, GetLastError());
#else
const char *system_error = strerror(errno);
diff --git a/src/system/FatalError.hxx b/src/system/FatalError.hxx
index dfef2c1..c692a2c 100644
--- a/src/system/FatalError.hxx
+++ b/src/system/FatalError.hxx
@@ -23,7 +23,7 @@
#include "check.h"
#include "Compiler.h"
-#ifdef WIN32
+#ifdef _WIN32
#include <windef.h>
#endif
@@ -47,7 +47,7 @@ gcc_noreturn
void
FatalSystemError(const char *msg);
-#ifdef WIN32
+#ifdef _WIN32
gcc_noreturn
void
diff --git a/src/system/FileDescriptor.cxx b/src/system/FileDescriptor.cxx
index e570090..87b6761 100644
--- a/src/system/FileDescriptor.cxx
+++ b/src/system/FileDescriptor.cxx
@@ -33,7 +33,7 @@
#include <sys/stat.h>
#include <fcntl.h>
-#ifndef WIN32
+#ifndef _WIN32
#include <poll.h>
#endif
@@ -70,7 +70,7 @@ FileDescriptor::OpenReadOnly(const char *pathname) noexcept
return Open(pathname, O_RDONLY);
}
-#ifndef WIN32
+#ifndef _WIN32
bool
FileDescriptor::OpenNonBlocking(const char *pathname) noexcept
@@ -184,7 +184,7 @@ FileDescriptor::GetSize() const noexcept
: -1;
}
-#ifndef WIN32
+#ifndef _WIN32
int
FileDescriptor::Poll(short events, int timeout) const noexcept
diff --git a/src/system/FileDescriptor.hxx b/src/system/FileDescriptor.hxx
index 163418c..10e2177 100644
--- a/src/system/FileDescriptor.hxx
+++ b/src/system/FileDescriptor.hxx
@@ -93,7 +93,7 @@ public:
bool Open(const char *pathname, int flags, mode_t mode=0666) noexcept;
bool OpenReadOnly(const char *pathname) noexcept;
-#ifndef WIN32
+#ifndef _WIN32
bool OpenNonBlocking(const char *pathname) noexcept;
static bool CreatePipe(FileDescriptor &r, FileDescriptor &w) noexcept;
@@ -169,7 +169,7 @@ public:
return ::write(fd, buffer, length);
}
-#ifndef WIN32
+#ifndef _WIN32
int Poll(short events, int timeout) const noexcept;
int WaitReadable(int timeout) const noexcept;
diff --git a/src/system/fd_util.c b/src/system/fd_util.c
index ed18991..8f07e72 100644
--- a/src/system/fd_util.c
+++ b/src/system/fd_util.c
@@ -34,7 +34,7 @@
#include <fcntl.h>
#include <errno.h>
-#ifdef WIN32
+#ifdef _WIN32
#include <ws2tcpip.h>
#include <winsock2.h>
#else
@@ -45,7 +45,7 @@
#include <sys/eventfd.h>
#endif
-#ifndef WIN32
+#ifndef _WIN32
static int
fd_mask_flags(int fd, int and_mask, int xor_mask)
@@ -63,12 +63,12 @@ fd_mask_flags(int fd, int and_mask, int xor_mask)
return fcntl(fd, F_SETFD, new_flags);
}
-#endif /* !WIN32 */
+#endif /* !_WIN32 */
int
fd_set_cloexec(int fd, bool enable)
{
-#ifndef WIN32
+#ifndef _WIN32
return fd_mask_flags(fd, ~FD_CLOEXEC, enable ? FD_CLOEXEC : 0);
#else
(void)fd;
@@ -85,7 +85,7 @@ fd_set_cloexec(int fd, bool enable)
static int
fd_set_nonblock(int fd)
{
-#ifdef WIN32
+#ifdef _WIN32
u_long val = 1;
return ioctlsocket(fd, FIONBIO, &val);
#else
@@ -124,7 +124,7 @@ open_cloexec(const char *path_fs, int flags, int mode)
int
pipe_cloexec_nonblock(int fd[2])
{
-#ifdef WIN32
+#ifdef _WIN32
return _pipe(fd, 512, _O_BINARY);
#else
int ret;
@@ -199,7 +199,7 @@ accept_cloexec_nonblock(int fd, struct sockaddr *address,
int
close_socket(int fd)
{
-#ifdef WIN32
+#ifdef _WIN32
return closesocket(fd);
#else
return close(fd);
diff --git a/src/system/fd_util.h b/src/system/fd_util.h
index 0b26ba7..c03c0f3 100644
--- a/src/system/fd_util.h
+++ b/src/system/fd_util.h
@@ -41,7 +41,7 @@
#include <stdbool.h>
#include <stddef.h>
-#ifndef WIN32
+#ifndef _WIN32
#include <sys/types.h>
#endif
diff --git a/src/tag/Format.cxx b/src/tag/Format.cxx
index d70a9c0..1b59aff 100644
--- a/src/tag/Format.cxx
+++ b/src/tag/Format.cxx
@@ -86,7 +86,7 @@ TagGetter(const void *object, const char *name) noexcept
if (strcmp(name, "iso8601") == 0) {
time_t t = time(nullptr);
-#ifdef WIN32
+#ifdef _WIN32
const struct tm *tm2 = gmtime(&t);
#else
struct tm tm;
@@ -96,7 +96,7 @@ TagGetter(const void *object, const char *name) noexcept
return "";
strftime(ctx.buffer, sizeof(ctx.buffer),
-#ifdef WIN32
+#ifdef _WIN32
/* kludge: use underscore instead of colon on
Windows because colons are not allowed in
file names, and this library is mostly
diff --git a/src/thread/Cond.hxx b/src/thread/Cond.hxx
index 3ca640f..7123635 100644
--- a/src/thread/Cond.hxx
+++ b/src/thread/Cond.hxx
@@ -30,7 +30,7 @@
#ifndef THREAD_COND_HXX
#define THREAD_COND_HXX
-#ifdef WIN32
+#ifdef _WIN32
#include "WindowsCond.hxx"
class Cond : public WindowsCond {};
diff --git a/src/thread/Id.hxx b/src/thread/Id.hxx
index 4b0b910..b0bdcb4 100644
--- a/src/thread/Id.hxx
+++ b/src/thread/Id.hxx
@@ -22,7 +22,7 @@
#include "Compiler.h"
-#ifdef WIN32
+#ifdef _WIN32
#include <windows.h>
#else
#include <pthread.h>
@@ -34,7 +34,7 @@
* debugging code.
*/
class ThreadId {
-#ifdef WIN32
+#ifdef _WIN32
DWORD id;
#else
pthread_t id;
@@ -46,7 +46,7 @@ public:
*/
ThreadId() = default;
-#ifdef WIN32
+#ifdef _WIN32
constexpr ThreadId(DWORD _id):id(_id) {}
#else
constexpr ThreadId(pthread_t _id):id(_id) {}
@@ -54,7 +54,7 @@ public:
gcc_const
static ThreadId Null() noexcept {
-#ifdef WIN32
+#ifdef _WIN32
return 0;
#else
static ThreadId null;
@@ -72,7 +72,7 @@ public:
*/
gcc_pure
static const ThreadId GetCurrent() noexcept {
-#ifdef WIN32
+#ifdef _WIN32
return ::GetCurrentThreadId();
#else
return pthread_self();
@@ -81,7 +81,7 @@ public:
gcc_pure
bool operator==(const ThreadId &other) const noexcept {
-#ifdef WIN32
+#ifdef _WIN32
return id == other.id;
#else
return pthread_equal(id, other.id);
diff --git a/src/thread/Mutex.hxx b/src/thread/Mutex.hxx
index f306438..8218cdf 100644
--- a/src/thread/Mutex.hxx
+++ b/src/thread/Mutex.hxx
@@ -32,7 +32,7 @@
#include <mutex>
-#ifdef WIN32
+#ifdef _WIN32
#include "CriticalSection.hxx"
class Mutex : public CriticalSection {};
diff --git a/src/thread/Thread.cxx b/src/thread/Thread.cxx
index 5bec659..06c2f45 100644
--- a/src/thread/Thread.cxx
+++ b/src/thread/Thread.cxx
@@ -33,7 +33,7 @@ Thread::Start(void (*_f)(void *ctx), void *_ctx)
f = _f;
ctx = _ctx;
-#ifdef WIN32
+#ifdef _WIN32
handle = ::CreateThread(nullptr, 0, ThreadProc, this, 0, &id);
if (handle == nullptr)
throw MakeLastError("Failed to create thread");
@@ -66,7 +66,7 @@ Thread::Join()
assert(IsDefined());
assert(!IsInside());
-#ifdef WIN32
+#ifdef _WIN32
::WaitForSingleObject(handle, INFINITE);
::CloseHandle(handle);
handle = nullptr;
@@ -76,7 +76,7 @@ Thread::Join()
#endif
}
-#ifdef WIN32
+#ifdef _WIN32
DWORD WINAPI
Thread::ThreadProc(LPVOID ctx)
diff --git a/src/thread/Thread.hxx b/src/thread/Thread.hxx
index 99ad4da..5d1bb6a 100644
--- a/src/thread/Thread.hxx
+++ b/src/thread/Thread.hxx
@@ -23,7 +23,7 @@
#include "check.h"
#include "Compiler.h"
-#ifdef WIN32
+#ifdef _WIN32
#include <windows.h>
#else
#include <pthread.h>
@@ -32,7 +32,7 @@
#include <assert.h>
class Thread {
-#ifdef WIN32
+#ifdef _WIN32
HANDLE handle = nullptr;
DWORD id;
#else
@@ -66,7 +66,7 @@ public:
#endif
bool IsDefined() const {
-#ifdef WIN32
+#ifdef _WIN32
return handle != nullptr;
#else
return defined;
@@ -78,7 +78,7 @@ public:
*/
gcc_pure
bool IsInside() const noexcept {
-#ifdef WIN32
+#ifdef _WIN32
return GetCurrentThreadId() == id;
#else
#ifdef NDEBUG
@@ -93,7 +93,7 @@ public:
void Join();
private:
-#ifdef WIN32
+#ifdef _WIN32
static DWORD WINAPI ThreadProc(LPVOID ctx);
#else
static void *ThreadProc(void *ctx);
diff --git a/src/thread/Util.cxx b/src/thread/Util.cxx
index 16fb1be..6213d97 100644
--- a/src/thread/Util.cxx
+++ b/src/thread/Util.cxx
@@ -34,7 +34,7 @@
#include <sched.h>
#include <sys/syscall.h>
#include <unistd.h>
-#elif defined(WIN32)
+#elif defined(_WIN32)
#include <windows.h>
#endif
@@ -71,7 +71,7 @@ SetThreadIdlePriority()
ioprio_set_idle();
-#elif defined(WIN32)
+#elif defined(_WIN32)
SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_IDLE);
#endif
};
diff --git a/src/unix/Daemon.cxx b/src/unix/Daemon.cxx
index 14f3891..fd45393 100644
--- a/src/unix/Daemon.cxx
+++ b/src/unix/Daemon.cxx
@@ -23,7 +23,7 @@
#include "fs/AllocatedPath.hxx"
#include "fs/FileSystem.hxx"
-#ifndef WIN32
+#ifndef _WIN32
#include "PidFile.hxx"
#endif
@@ -31,7 +31,7 @@
#include <unistd.h>
#include <fcntl.h>
-#ifndef WIN32
+#ifndef _WIN32
#include <sys/wait.h>
#include <signal.h>
#include <pwd.h>
@@ -42,7 +42,7 @@
#define WCOREDUMP(v) 0
#endif
-#ifndef WIN32
+#ifndef _WIN32
/** the Unix user name which MPD runs as */
static char *user_name;
diff --git a/src/unix/Daemon.hxx b/src/unix/Daemon.hxx
index f6ea9f6..2b12b17 100644
--- a/src/unix/Daemon.hxx
+++ b/src/unix/Daemon.hxx
@@ -22,7 +22,7 @@
class AllocatedPath;
-#ifndef WIN32
+#ifndef _WIN32
void
daemonize_init(const char *user, const char *group, AllocatedPath &&pidfile);
#else
@@ -31,7 +31,7 @@ daemonize_init(const char *user, const char *group, AllocatedPath &&pidfile)
{ (void)user; (void)group; (void)pidfile; }
#endif
-#ifndef WIN32
+#ifndef _WIN32
void
daemonize_finish();
#else
@@ -44,7 +44,7 @@ daemonize_finish()
* Kill the MPD which is currently running, pid determined from the
* pid file.
*/
-#ifndef WIN32
+#ifndef _WIN32
void
daemonize_kill();
#else
@@ -59,7 +59,7 @@ daemonize_kill()
/**
* Close stdin (fd 0) and re-open it as /dev/null.
*/
-#ifndef WIN32
+#ifndef _WIN32
void
daemonize_close_stdin();
#else
@@ -70,7 +70,7 @@ daemonize_close_stdin() {}
/**
* Change to the configured Unix user.
*/
-#ifndef WIN32
+#ifndef _WIN32
void
daemonize_set_user();
#else
@@ -79,7 +79,7 @@ daemonize_set_user()
{ /* nop */ }
#endif
-#ifndef WIN32
+#ifndef _WIN32
void
daemonize_begin(bool detach);
#else
@@ -88,7 +88,7 @@ daemonize_begin(bool detach)
{ (void)detach; }
#endif
-#ifndef WIN32
+#ifndef _WIN32
void
daemonize_commit();
#else
diff --git a/src/unix/SignalHandlers.cxx b/src/unix/SignalHandlers.cxx
index c6dc7ca..d41f065 100644
--- a/src/unix/SignalHandlers.cxx
+++ b/src/unix/SignalHandlers.cxx
@@ -21,7 +21,7 @@
#include "SignalHandlers.hxx"
#include "event/SignalMonitor.hxx"
-#ifndef WIN32
+#ifndef _WIN32
#include "Log.hxx"
#include "LogInit.hxx"
@@ -61,7 +61,7 @@ SignalHandlersInit(EventLoop &loop)
{
SignalMonitorInit(loop);
-#ifndef WIN32
+#ifndef _WIN32
struct sigaction sa;
sa.sa_flags = 0;
diff --git a/src/util/FormatString.cxx b/src/util/FormatString.cxx
index b5ea4d0..b758997 100644
--- a/src/util/FormatString.cxx
+++ b/src/util/FormatString.cxx
@@ -23,14 +23,14 @@
#include <stdio.h>
#include <stdlib.h>
-#ifdef WIN32
+#ifdef _WIN32
#include <string.h>
#endif
AllocatedString<>
FormatStringV(const char *fmt, va_list args)
{
-#ifndef WIN32
+#ifndef _WIN32
va_list tmp;
va_copy(tmp, args);
const int length = vsnprintf(NULL, 0, fmt, tmp);
diff --git a/src/util/HugeAllocator.cxx b/src/util/HugeAllocator.cxx
index 5116a59..806a783 100644
--- a/src/util/HugeAllocator.cxx
+++ b/src/util/HugeAllocator.cxx
@@ -96,7 +96,7 @@ HugeDiscard(void *p, size_t size) noexcept
#endif
}
-#elif defined(WIN32)
+#elif defined(_WIN32)
void *
HugeAllocate(size_t size)
diff --git a/src/util/HugeAllocator.hxx b/src/util/HugeAllocator.hxx
index 8bae3e4..2b62a8c 100644
--- a/src/util/HugeAllocator.hxx
+++ b/src/util/HugeAllocator.hxx
@@ -65,7 +65,7 @@ HugeFree(void *p, size_t size) noexcept;
void
HugeDiscard(void *p, size_t size) noexcept;
-#elif defined(WIN32)
+#elif defined(_WIN32)
#include <windows.h>
gcc_malloc
diff --git a/src/util/StringAPI.hxx b/src/util/StringAPI.hxx
index 85456fb..7dad8c5 100644
--- a/src/util/StringAPI.hxx
+++ b/src/util/StringAPI.hxx
@@ -105,7 +105,7 @@ gcc_nonnull_all
static inline char *
UnsafeCopyStringP(char *dest, const char *src) noexcept
{
-#if defined(WIN32) || defined(__BIONIC__)
+#if defined(_WIN32) || defined(__BIONIC__)
/* emulate stpcpy() */
UnsafeCopyString(dest, src);
return dest + StringLength(dest);
diff --git a/src/util/TimeParser.cxx b/src/util/TimeParser.cxx
index 9ce915c..5576b5a 100644
--- a/src/util/TimeParser.cxx
+++ b/src/util/TimeParser.cxx
@@ -35,7 +35,7 @@
#include <assert.h>
#include <time.h>
-#if !defined(__GLIBC__) && !defined(WIN32)
+#if !defined(__GLIBC__) && !defined(_WIN32)
/**
* Determine the time zone offset in a portable way.
@@ -59,7 +59,7 @@ ParseTimePoint(const char *s, const char *format)
assert(s != nullptr);
assert(format != nullptr);
-#ifdef WIN32
+#ifdef _WIN32
/* TODO: emulate strptime()? */
(void)s;
(void)format;
@@ -80,5 +80,5 @@ ParseTimePoint(const char *s, const char *format)
return std::chrono::system_clock::from_time_t(t);
-#endif /* !WIN32 */
+#endif /* !_WIN32 */
}
diff --git a/src/util/WStringAPI.hxx b/src/util/WStringAPI.hxx
index f69aaf6..a71802d 100644
--- a/src/util/WStringAPI.hxx
+++ b/src/util/WStringAPI.hxx
@@ -101,7 +101,7 @@ gcc_nonnull_all
static inline wchar_t *
UnsafeCopyStringP(wchar_t *dest, const wchar_t *src) noexcept
{
-#if defined(WIN32) || defined(__BIONIC__) || defined(__OpenBSD__) || \
+#if defined(_WIN32) || defined(__BIONIC__) || defined(__OpenBSD__) || \
defined(__NetBSD__)
/* emulate wcpcpy() */
UnsafeCopyString(dest, src);
diff --git a/src/win32/Win32Main.cxx b/src/win32/Win32Main.cxx
index 700a321..e268463 100644
--- a/src/win32/Win32Main.cxx
+++ b/src/win32/Win32Main.cxx
@@ -20,7 +20,7 @@
#include "config.h"
#include "Main.hxx"
-#ifdef WIN32
+#ifdef _WIN32
#include "Compiler.h"
#include "Instance.hxx"
diff --git a/test/ShutdownHandler.cxx b/test/ShutdownHandler.cxx
index 6d69408..c0153cf 100644
--- a/test/ShutdownHandler.cxx
+++ b/test/ShutdownHandler.cxx
@@ -20,7 +20,7 @@
#include "config.h"
#include "ShutdownHandler.hxx"
-#ifndef WIN32
+#ifndef _WIN32
#include "event/SignalMonitor.hxx"
#include "event/Loop.hxx"
diff --git a/test/ShutdownHandler.hxx b/test/ShutdownHandler.hxx
index 0e1a18a..eb25563 100644
--- a/test/ShutdownHandler.hxx
+++ b/test/ShutdownHandler.hxx
@@ -28,7 +28,7 @@ public:
~ShutdownHandler();
};
-#ifdef WIN32
+#ifdef _WIN32
ShutdownHandler::ShutdownHandler(EventLoop &loop) {}
ShutdownHandler::~ShutdownHandler() {}
#endif
diff --git a/test/run_resolver.cxx b/test/run_resolver.cxx
index b35ed84..da8ac72 100644
--- a/test/run_resolver.cxx
+++ b/test/run_resolver.cxx
@@ -25,7 +25,7 @@
#include <stdexcept>
-#ifdef WIN32
+#ifdef _WIN32
#include <ws2tcpip.h>
#include <winsock.h>
#else
diff --git a/win32/build.py b/win32/build.py
new file mode 100755
index 0000000..d2b1aef
--- /dev/null
+++ b/win32/build.py
@@ -0,0 +1,126 @@
+#!/usr/bin/env python3
+
+import os, os.path
+import sys, subprocess
+
+configure_args = sys.argv[1:]
+
+x64 = True
+
+while len(configure_args) > 0:
+ arg = configure_args[0]
+ if arg == '--64':
+ x64 = True
+ elif arg == '--32':
+ x64 = False
+ else:
+ break
+ configure_args.pop(0)
+
+if x64:
+ host_arch = 'x86_64-w64-mingw32'
+else:
+ host_arch = 'i686-w64-mingw32'
+
+# the path to the MPD sources
+mpd_path = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]) or '.', '..'))
+sys.path[0] = os.path.join(mpd_path, 'python')
+
+# output directories
+from build.dirs import lib_path, tarball_path, src_path
+
+arch_path = os.path.join(lib_path, host_arch)
+build_path = os.path.join(arch_path, 'build')
+root_path = os.path.join(arch_path, 'root')
+
+class CrossGccToolchain:
+ def __init__(self, toolchain_path, arch,
+ tarball_path, src_path, build_path, install_prefix):
+ self.arch = arch
+ self.tarball_path = tarball_path
+ self.src_path = src_path
+ self.build_path = build_path
+ self.install_prefix = install_prefix
+
+ toolchain_bin = os.path.join(toolchain_path, 'bin')
+ self.cc = os.path.join(toolchain_bin, arch + '-gcc')
+ self.cxx = os.path.join(toolchain_bin, arch + '-g++')
+ self.ar = os.path.join(toolchain_bin, arch + '-ar')
+ self.ranlib = os.path.join(toolchain_bin, arch + '-ranlib')
+ self.nm = os.path.join(toolchain_bin, arch + '-nm')
+ self.strip = os.path.join(toolchain_bin, arch + '-strip')
+
+ common_flags = ''
+
+ if not x64:
+ # enable SSE support which is required for LAME
+ common_flags += ' -march=pentium3'
+
+ self.cflags = '-O2 -g ' + common_flags
+ self.cxxflags = '-O2 -g ' + common_flags
+ self.cppflags = '-isystem ' + os.path.join(install_prefix, 'include')
+ self.ldflags = '-L' + os.path.join(install_prefix, 'lib')
+ self.libs = ''
+
+ self.is_arm = arch.startswith('arm')
+ self.is_armv7 = self.is_arm and 'armv7' in self.cflags
+ self.is_windows = 'mingw32' in arch
+
+ self.env = dict(os.environ)
+
+ # redirect pkg-config to use our root directory instead of the
+ # default one on the build host
+ self.env['PKG_CONFIG_LIBDIR'] = os.path.join(install_prefix, 'lib/pkgconfig')
+
+# a list of third-party libraries to be used by MPD on Android
+from build.libs import *
+thirdparty_libs = [
+ libogg,
+ libvorbis,
+ opus,
+ flac,
+ zlib,
+ libid3tag,
+ liblame,
+ ffmpeg,
+ curl,
+ boost,
+]
+
+# build the third-party libraries
+toolchain = CrossGccToolchain('/usr', host_arch,
+ tarball_path, src_path, build_path, root_path)
+
+for x in thirdparty_libs:
+ if not x.is_installed(toolchain):
+ x.build(toolchain)
+
+# configure and build MPD
+
+configure = [
+ os.path.join(mpd_path, 'configure'),
+ 'CC=' + toolchain.cc,
+ 'CXX=' + toolchain.cxx,
+ 'CFLAGS=' + toolchain.cflags,
+ 'CXXFLAGS=' + toolchain.cxxflags,
+ 'CPPFLAGS=' + toolchain.cppflags,
+ 'LDFLAGS=' + toolchain.ldflags + ' -static',
+ 'LIBS=' + toolchain.libs,
+ 'AR=' + toolchain.ar,
+ 'RANLIB=' + toolchain.ranlib,
+ 'STRIP=' + toolchain.strip,
+ '--host=' + toolchain.arch,
+ '--prefix=' + toolchain.install_prefix,
+
+ '--enable-silent-rules',
+
+ '--disable-icu',
+
+] + configure_args
+
+from build.cmdline import concatenate_cmdline_variables
+configure = concatenate_cmdline_variables(configure,
+ set(('CFLAGS', 'CXXFLAGS', 'CPPFLAGS', 'LDFLAGS', 'LIBS')))
+
+subprocess.check_call(configure, env=toolchain.env)
+subprocess.check_call(['/usr/bin/make', '--quiet', '-j12'], env=toolchain.env)
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mpd/pkg-mpd.git
More information about the Pkg-mpd-commits
mailing list