diff --git a/logger/Makefile.am b/logger/Makefile.am index bc0d67ffbcd908799c6de5b1c64a23d5dc462b4d..f7542eb54be8e04c2c40245849d8ee5e6948f5be 100644 --- a/logger/Makefile.am +++ b/logger/Makefile.am @@ -43,7 +43,11 @@ include_HEADERS = header.h io.h particle.h timeline.h logger_tools.h # Common source files AM_SOURCES = header.c io.c logger_loader.c particle.c \ - timeline.c logger_tools.c + timeline.c +if HAVEPYTHON +AM_SOURCES += logger_loader.c +endif + # Include files for distribution, not installation. nobase_noinst_HEADERS = diff --git a/logger/header.c b/logger/header.c index 70a806607183b29673241aba7832e6995a52c123..aeb48a6e77e9c2f7a31e2f491b44cb0a876fc8f6 100644 --- a/logger/header.c +++ b/logger/header.c @@ -3,7 +3,7 @@ #include "io.h" #include "logger_tools.h" -#include <Python.h> +#include <string.h> #include <stdio.h> #include <stdlib.h> diff --git a/logger/header.h b/logger/header.h index 06ada140666628530edfd18cbda8f35e52eff0ce..11667a49148ca4116c8ae5d6ff88b4c8f052ff2b 100644 --- a/logger/header.h +++ b/logger/header.h @@ -3,7 +3,6 @@ #include "logger_tools.h" -#include <Python.h> #include <stdio.h> #include <stdlib.h> diff --git a/logger/logger_tools.h b/logger/logger_tools.h index f3b666485fa000be0724d51e60127aefcbeaa973..b3e009ce6fbf5998a9d767472abacfaab3d50b93 100644 --- a/logger/logger_tools.h +++ b/logger/logger_tools.h @@ -1,9 +1,14 @@ -#ifndef __TOOLS_H__ -#define __TOOLS_H__ +#ifndef __LOGGER_TOOLS_H__ +#define __LOGGER_TOOLS_H__ -#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION +#include "../config.h" +#ifdef HAVE_PYTHON +#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION #include <Python.h> +#endif + +#include <errno.h> #include <stdio.h> #include <stdlib.h> @@ -11,6 +16,7 @@ struct header; +#ifdef HAVE_PYTHON /* Set the error message for python and return the error code * WARNING for python, you need to return NULL and not the error code */ @@ -30,6 +36,23 @@ struct header; PyErr_SetString(PyExc_RuntimeError, error_msg); \ }) +#else + +#define error(err, s, ...) \ + ({ \ + error_no_return(err, s, ##__VA_ARGS__); \ + exit(1); \ + }) + +#define error_no_return(err, s, ...) \ + ({ \ + char error_msg[STRING_SIZE]; \ + sprintf(error_msg, "%s:%s():%i: " s ": %s\n", __FILE__, __FUNCTION__, \ + __LINE__, ##__VA_ARGS__, strerror(err)); \ + }) + +#endif + #define message(s, ...) \ ({ \ printf("%s:%s():%i: " s "\n", __FILE__, __FUNCTION__, __LINE__, \ @@ -100,4 +123,4 @@ int tools_reverse_offset(const struct header *h, void *map, size_t *offset); */ int tools_check_offset(const struct header *h, void *map, size_t *offset); -#endif //__TOOLS_H__ +#endif //__LOGGER_TOOLS_H__