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
-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) \
* 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 ")"
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.
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;
+}
+
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);
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);
--- /dev/null
+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
+])