configure.ac: add option "--disable-daemon"

This commit is contained in:
Max Kellermann 2014-11-20 20:38:37 +01:00
parent 26382713c2
commit ed001e0cfb
3 changed files with 37 additions and 8 deletions

View File

@ -186,9 +186,14 @@ if ANDROID
else else
libmpd_a_SOURCES += \ libmpd_a_SOURCES += \
src/unix/SignalHandlers.cxx src/unix/SignalHandlers.hxx \ 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 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 endif
if ENABLE_DATABASE if ENABLE_DATABASE

View File

@ -367,6 +367,19 @@ AC_ARG_ENABLE(nfs,
[enable support for libnfs (default: auto)]),, [enable support for libnfs (default: auto)]),,
[enable_nfs=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, AC_ARG_ENABLE(debug,
AS_HELP_STRING([--enable-debug], AS_HELP_STRING([--enable-debug],
[enable debugging (default: disabled)]),, [enable debugging (default: disabled)]),,

View File

@ -50,7 +50,6 @@
#include "AudioConfig.hxx" #include "AudioConfig.hxx"
#include "pcm/PcmConvert.hxx" #include "pcm/PcmConvert.hxx"
#include "unix/SignalHandlers.hxx" #include "unix/SignalHandlers.hxx"
#include "unix/Daemon.hxx"
#include "system/FatalError.hxx" #include "system/FatalError.hxx"
#include "util/UriUtil.hxx" #include "util/UriUtil.hxx"
#include "util/Error.hxx" #include "util/Error.hxx"
@ -65,6 +64,10 @@
#include "config/ConfigError.hxx" #include "config/ConfigError.hxx"
#include "Stats.hxx" #include "Stats.hxx"
#ifdef ENABLE_DAEMON
#include "unix/Daemon.hxx"
#endif
#ifdef ENABLE_DATABASE #ifdef ENABLE_DATABASE
#include "db/update/Service.hxx" #include "db/update/Service.hxx"
#include "db/Configured.hxx" #include "db/Configured.hxx"
@ -133,7 +136,7 @@ Instance *instance;
static StateFile *state_file; static StateFile *state_file;
#ifndef ANDROID #ifdef ENABLE_DAEMON
static bool static bool
glue_daemonize_init(const struct options *options, Error &error) glue_daemonize_init(const struct options *options, Error &error)
@ -422,9 +425,11 @@ int mpd_main(int argc, char *argv[])
struct options options; struct options options;
Error error; Error error;
#ifndef ANDROID #ifdef ENABLE_DAEMON
daemonize_close_stdin(); daemonize_close_stdin();
#endif
#ifndef ANDROID
#ifdef HAVE_LOCALE_H #ifdef HAVE_LOCALE_H
/* initialize locale */ /* initialize locale */
setlocale(LC_CTYPE,""); setlocale(LC_CTYPE,"");
@ -470,7 +475,9 @@ int mpd_main(int argc, char *argv[])
LogError(error); LogError(error);
return EXIT_FAILURE; return EXIT_FAILURE;
} }
#endif
#ifdef ENABLE_DAEMON
if (!glue_daemonize_init(&options, error)) { if (!glue_daemonize_init(&options, error)) {
LogError(error); LogError(error);
return EXIT_FAILURE; return EXIT_FAILURE;
@ -512,7 +519,7 @@ int mpd_main(int argc, char *argv[])
return EXIT_FAILURE; return EXIT_FAILURE;
} }
#ifndef ANDROID #ifdef ENABLE_DAEMON
daemonize_set_user(); daemonize_set_user();
daemonize_begin(options.daemon); daemonize_begin(options.daemon);
#endif #endif
@ -585,9 +592,11 @@ static int mpd_main_after_fork(struct options options)
playlist_list_global_init(); playlist_list_global_init();
#ifndef ANDROID #ifdef ENABLE_DAEMON
daemonize_commit(); daemonize_commit();
#endif
#ifndef ANDROID
setup_log_output(options.log_stderr); setup_log_output(options.log_stderr);
SignalHandlersInit(*instance->event_loop); SignalHandlersInit(*instance->event_loop);
@ -724,9 +733,11 @@ static int mpd_main_after_fork(struct options options)
delete instance->event_loop; delete instance->event_loop;
delete instance; delete instance;
instance = nullptr; instance = nullptr;
#ifndef ANDROID
#ifdef ENABLE_DAEMON
daemonize_finish(); daemonize_finish();
#endif #endif
#ifdef WIN32 #ifdef WIN32
WSACleanup(); WSACleanup();
#endif #endif