From 482c49e8f5703574a11c546faaa6b9c11d3014a6 Mon Sep 17 00:00:00 2001
From: loikki <loic.hausammann@protonmail.ch>
Date: Thu, 22 Nov 2018 13:38:18 +0100
Subject: [PATCH] Start removing python dependency

---
 logger/Makefile.am    |  6 +++++-
 logger/header.c       |  2 +-
 logger/header.h       |  1 -
 logger/logger_tools.h | 31 +++++++++++++++++++++++++++----
 4 files changed, 33 insertions(+), 7 deletions(-)

diff --git a/logger/Makefile.am b/logger/Makefile.am
index bc0d67ffbc..f7542eb54b 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 70a8066071..aeb48a6e77 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 06ada14066..11667a4914 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 f3b666485f..b3e009ce6f 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__
-- 
GitLab