mirror of https://github.com/Icinga/icinga2.git
Added methods for retrieving the installation prefix and local state dir.
This commit is contained in:
parent
23cd92803b
commit
47fa56a805
|
@ -66,6 +66,12 @@ AC_CHECK_LIB(ws2_32, getsockname)
|
|||
AC_CHECK_LIB(shlwapi, PathRemoveFileSpecA)
|
||||
AC_CHECK_FUNCS([backtrace_symbols])
|
||||
|
||||
AS_AC_EXPAND([ICINGA_PREFIX], $prefix)
|
||||
AC_DEFINE_UNQUOTED([ICINGA_PREFIX], "$ICINGA_PREFIX", [The installation prefix.])
|
||||
|
||||
AS_AC_EXPAND([ICINGA_LOCALSTATEDIR], $localstatedir)
|
||||
AC_DEFINE_UNQUOTED([ICINGA_LOCALSTATEDIR], "$ICINGA_LOCALSTATEDIR", [The local state dir.])
|
||||
|
||||
AC_CONFIG_FILES([
|
||||
Makefile
|
||||
components/Makefile
|
||||
|
|
|
@ -17,8 +17,7 @@ icinga2_CPPFLAGS = \
|
|||
-I${top_srcdir}/lib/config \
|
||||
-I${top_srcdir}/lib/remoting \
|
||||
-I${top_srcdir}/lib/icinga \
|
||||
-I${top_srcdir} \
|
||||
-DICINGA_LIBDIR="\"$(pkglibdir)\""
|
||||
-I${top_srcdir}
|
||||
|
||||
icinga2_LDFLAGS = \
|
||||
$(BOOST_LDFLAGS) \
|
||||
|
|
|
@ -113,6 +113,14 @@ int main(int argc, char **argv)
|
|||
* in the base library. */
|
||||
Application::SetMainThread();
|
||||
|
||||
#ifdef ICINGA_PREFIX
|
||||
Application::SetPrefixDir(ICINGA_PREFIX);
|
||||
#endif /* ICINGA_PREFIX */
|
||||
|
||||
#ifdef ICINGA_LOCALSTATEDIR
|
||||
Application::SetLocalStateDir(ICINGA_LOCALSTATEDIR);
|
||||
#endif /* ICINGA_LOCALSTATEDIR */
|
||||
|
||||
Logger::Write(LogInformation, "icinga", "Icinga application loader"
|
||||
#ifndef _WIN32
|
||||
" (version: " ICINGA_VERSION ")"
|
||||
|
|
|
@ -29,6 +29,8 @@ Application *Application::m_Instance = NULL;
|
|||
bool Application::m_ShuttingDown = false;
|
||||
bool Application::m_Debugging = false;
|
||||
boost::thread::id Application::m_MainThreadID;
|
||||
String Application::m_PrefixDir;
|
||||
String Application::m_LocalStateDir;
|
||||
|
||||
/**
|
||||
* Constructor for the Application class.
|
||||
|
@ -398,3 +400,49 @@ void Application::ClosePidFile(void)
|
|||
m_PidFile = NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves the path of the installation prefix.
|
||||
*
|
||||
* @returns The path.
|
||||
*/
|
||||
String Application::GetPrefixDir(void)
|
||||
{
|
||||
if (m_PrefixDir.IsEmpty())
|
||||
return "./";
|
||||
else
|
||||
return m_PrefixDir;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the path for the installation prefix.
|
||||
*
|
||||
* @param path The new path.
|
||||
*/
|
||||
void Application::SetPrefixDir(const String& path)
|
||||
{
|
||||
m_PrefixDir = path;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves the path for the local state dir.
|
||||
*
|
||||
* @returns The path.
|
||||
*/
|
||||
String Application::GetLocalStateDir(void)
|
||||
{
|
||||
if (m_LocalStateDir.IsEmpty())
|
||||
return "./var/";
|
||||
else
|
||||
return m_LocalStateDir;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the path for the local state dir.
|
||||
*
|
||||
* @param path The new path.
|
||||
*/
|
||||
void Application::SetLocalStateDir(const String& path)
|
||||
{
|
||||
m_LocalStateDir = path;
|
||||
}
|
||||
|
||||
|
|
|
@ -62,6 +62,12 @@ public:
|
|||
|
||||
static String GetExePath(const String& argv0);
|
||||
|
||||
static String GetPrefixDir(void);
|
||||
static void SetPrefixDir(const String& path);
|
||||
|
||||
static String GetLocalStateDir(void);
|
||||
static void SetLocalStateDir(const String& path);
|
||||
|
||||
protected:
|
||||
void RunEventLoop(void);
|
||||
|
||||
|
@ -74,6 +80,8 @@ private:
|
|||
FILE *m_PidFile; /**< The PID file */
|
||||
static bool m_Debugging; /**< Whether debugging is enabled. */
|
||||
static boost::thread::id m_MainThreadID; /**< ID of the main thread. */
|
||||
static String m_PrefixDir; /**< The installation prefix. */
|
||||
static String m_LocalStateDir; /**< The local state dir. */
|
||||
|
||||
#ifndef _WIN32
|
||||
static void SigIntHandler(int signum);
|
||||
|
|
|
@ -0,0 +1,43 @@
|
|||
dnl as-ac-expand.m4 0.2.0
|
||||
dnl autostars m4 macro for expanding directories using configure's prefix
|
||||
dnl thomas@apestaart.org
|
||||
|
||||
dnl AS_AC_EXPAND(VAR, CONFIGURE_VAR)
|
||||
dnl example
|
||||
dnl AS_AC_EXPAND(SYSCONFDIR, $sysconfdir)
|
||||
dnl will set SYSCONFDIR to /usr/local/etc if prefix=/usr/local
|
||||
|
||||
AC_DEFUN([AS_AC_EXPAND],
|
||||
[
|
||||
EXP_VAR=[$1]
|
||||
FROM_VAR=[$2]
|
||||
|
||||
dnl first expand prefix and exec_prefix if necessary
|
||||
prefix_save=$prefix
|
||||
exec_prefix_save=$exec_prefix
|
||||
|
||||
dnl if no prefix given, then use /usr/local, the default prefix
|
||||
if test "x$prefix" = "xNONE"; then
|
||||
prefix="$ac_default_prefix"
|
||||
fi
|
||||
dnl if no exec_prefix given, then use prefix
|
||||
if test "x$exec_prefix" = "xNONE"; then
|
||||
exec_prefix=$prefix
|
||||
fi
|
||||
|
||||
full_var="$FROM_VAR"
|
||||
dnl loop until it doesn't change anymore
|
||||
while true; do
|
||||
new_full_var="`eval echo $full_var`"
|
||||
if test "x$new_full_var" = "x$full_var"; then break; fi
|
||||
full_var=$new_full_var
|
||||
done
|
||||
|
||||
dnl clean up
|
||||
full_var=$new_full_var
|
||||
AC_SUBST([$1], "$full_var")
|
||||
|
||||
dnl restore prefix and exec_prefix
|
||||
prefix=$prefix_save
|
||||
exec_prefix=$exec_prefix_save
|
||||
])
|
Loading…
Reference in New Issue