aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2014-11-20 20:38:37 +0100
committerMax Kellermann <max@duempel.org>2014-11-20 20:38:37 +0100
commited001e0cfb4362009d76b8ee56c61c21aed2fe95 (patch)
treeb2fed58edb389fb14bba474ea858408ecd6d90a2
parent26382713c26139e474bda5e74798e1201e036b82 (diff)
downloadmpd-ed001e0cfb4362009d76b8ee56c61c21aed2fe95.tar.gz
mpd-ed001e0cfb4362009d76b8ee56c61c21aed2fe95.tar.xz
mpd-ed001e0cfb4362009d76b8ee56c61c21aed2fe95.zip
configure.ac: add option "--disable-daemon"
-rw-r--r--Makefile.am9
-rw-r--r--configure.ac13
-rw-r--r--src/Main.cxx23
3 files changed, 37 insertions, 8 deletions
diff --git a/Makefile.am b/Makefile.am
index 72b6a0ca4..c065fa49e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -186,9 +186,14 @@ if ANDROID
else
libmpd_a_SOURCES += \
src/unix/SignalHandlers.cxx src/unix/SignalHandlers.hxx \
- src/unix/Daemon.cxx src/unix/Daemon.hxx \
- src/unix/PidFile.hxx \
src/CommandLine.cxx src/CommandLine.hxx
+
+if ENABLE_DAEMON
+libmpd_a_SOURCES += \
+ src/unix/Daemon.cxx src/unix/Daemon.hxx \
+ src/unix/PidFile.hxx
+endif
+
endif
if ENABLE_DATABASE
diff --git a/configure.ac b/configure.ac
index 199319974..99a1f1ec0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -367,6 +367,19 @@ AC_ARG_ENABLE(nfs,
[enable support for libnfs (default: auto)]),,
[enable_nfs=auto])
+default_enable_daemon=yes
+if test x$host_is_android = xyes || test x$host_is_android = xyes; then
+ default_enable_daemon=no
+fi
+AC_ARG_ENABLE(daemon,
+ AS_HELP_STRING([--enable-daemon],
+ [enable daemonization (default: enabled)]),,
+ enable_daemon=$default_enable_daemon)
+AM_CONDITIONAL([ENABLE_DAEMON], [test x$enable_daemon = xyes])
+if test x$enable_daemon = xyes; then
+ AC_DEFINE([ENABLE_DAEMON], 1, [Enable daemonization?])
+fi
+
AC_ARG_ENABLE(debug,
AS_HELP_STRING([--enable-debug],
[enable debugging (default: disabled)]),,
diff --git a/src/Main.cxx b/src/Main.cxx
index 26d4e7ae4..b1960b5f2 100644
--- a/src/Main.cxx
+++ b/src/Main.cxx
@@ -50,7 +50,6 @@
#include "AudioConfig.hxx"
#include "pcm/PcmConvert.hxx"
#include "unix/SignalHandlers.hxx"
-#include "unix/Daemon.hxx"
#include "system/FatalError.hxx"
#include "util/UriUtil.hxx"
#include "util/Error.hxx"
@@ -65,6 +64,10 @@
#include "config/ConfigError.hxx"
#include "Stats.hxx"
+#ifdef ENABLE_DAEMON
+#include "unix/Daemon.hxx"
+#endif
+
#ifdef ENABLE_DATABASE
#include "db/update/Service.hxx"
#include "db/Configured.hxx"
@@ -133,7 +136,7 @@ Instance *instance;
static StateFile *state_file;
-#ifndef ANDROID
+#ifdef ENABLE_DAEMON
static bool
glue_daemonize_init(const struct options *options, Error &error)
@@ -422,9 +425,11 @@ int mpd_main(int argc, char *argv[])
struct options options;
Error error;
-#ifndef ANDROID
+#ifdef ENABLE_DAEMON
daemonize_close_stdin();
+#endif
+#ifndef ANDROID
#ifdef HAVE_LOCALE_H
/* initialize locale */
setlocale(LC_CTYPE,"");
@@ -470,7 +475,9 @@ int mpd_main(int argc, char *argv[])
LogError(error);
return EXIT_FAILURE;
}
+#endif
+#ifdef ENABLE_DAEMON
if (!glue_daemonize_init(&options, error)) {
LogError(error);
return EXIT_FAILURE;
@@ -512,7 +519,7 @@ int mpd_main(int argc, char *argv[])
return EXIT_FAILURE;
}
-#ifndef ANDROID
+#ifdef ENABLE_DAEMON
daemonize_set_user();
daemonize_begin(options.daemon);
#endif
@@ -585,9 +592,11 @@ static int mpd_main_after_fork(struct options options)
playlist_list_global_init();
-#ifndef ANDROID
+#ifdef ENABLE_DAEMON
daemonize_commit();
+#endif
+#ifndef ANDROID
setup_log_output(options.log_stderr);
SignalHandlersInit(*instance->event_loop);
@@ -724,9 +733,11 @@ static int mpd_main_after_fork(struct options options)
delete instance->event_loop;
delete instance;
instance = nullptr;
-#ifndef ANDROID
+
+#ifdef ENABLE_DAEMON
daemonize_finish();
#endif
+
#ifdef WIN32
WSACleanup();
#endif