particular.
+Configuring / Compiling / Installing
+------------------------------------
+
+ To configure, build and install collectd with the default settings, run
+ `./configure && make && make install'. For detailed, generic instructions
+ see INSTALL. For a complete list of configure options and their description,
+ run `./configure --help'.
+
+ By default, the configure script will check for all build dependencies and
+ disable all plugins whose requirements cannot be fulfilled (any other plugin
+ will be enabled). To enable a plugin, install missing dependencies (see
+ section `Prerequisites' above) and rerun `configure'. If you specify the
+ `--enable-<plugin>' configure option, you can force the plugin to be built.
+ This will most likely fail though unless you're working in a very unusual
+ setup and you really know what you're doing.
+
+ By default, collectd will be installed into `/opt/collectd'. You can adjust
+ this setting by specifying the `--prefix' configure option - see INSTALL for
+ details. If you pass DESTDIR=<path> to `make install', <path> will be
+ prefixed to all installation directories. This might be useful when creating
+ packages for collectd.
+
+
Crosscompiling
--------------
if test "x$withval" = "xno"
then
with_libnetsnmp="no"
- else if "x$withval" = "xyes"
+ else if test "x$withval" = "xyes"
then
with_libnetsnmp="yes"
else
static pthread_mutex_t getpwnam_r_lock = PTHREAD_MUTEX_INITIALIZER;
#endif
+#if !HAVE_STRERROR_R
+static pthread_mutex_t strerror_r_lock = PTHREAD_MUTEX_INITIALIZER;
+#endif
+
void sstrncpy (char *d, const char *s, int len)
{
strncpy (d, s, len);
char *sstrerror (int errnum, char *buf, size_t buflen)
{
buf[0] = '\0';
-#ifdef STRERROR_R_CHAR_P
+
+#if !HAVE_STRERROR_R
+ {
+ char *temp;
+
+ pthread_mutex_lock (&strerror_r_lock);
+
+ temp = strerror (errnum);
+ strncpy (buf, temp, buflen);
+
+ pthread_mutex_unlock (&strerror_r_lock);
+ }
+/* #endif !HAVE_STRERROR_R */
+
+#elif STRERROR_R_CHAR_P
{
char *temp;
temp = strerror_r (errnum, buf, buflen);
else
strncpy (buf, "strerror_r did not return "
"an error message", buflen);
- buf[buflen - 1] = '\0';
}
}
+/* #endif STRERROR_R_CHAR_P */
+
#else
if (strerror_r (errnum, buf, buflen) != 0)
{
errnum);
}
#endif /* STRERROR_R_CHAR_P */
+
buf[buflen - 1] = '\0';
return (buf);
} /* char *sstrerror */