diff --git a/src/base/endianfns.h b/src/base/endianfns.h
index 2db9731e..1859f2ae 100644
--- src/base/endianfns.h
+++ src/base/endianfns.h
@@ -38,6 +38,29 @@
 
 #  define GWEN_ENDIAN_LE64TOH(x) (x)
 #  define GWEN_ENDIAN_HTOLE64(x) (x)
+
+#elif defined(__APPLE__)
+/* inspired by https://stackoverflow.com/questions/20813028/endian-h-not-found-on-mac-osx */
+#include <libkern/OSByteOrder.h>
+
+#define GWEN_ENDIAN_HTOLE16(x) OSSwapHostToLittleInt16(x)
+#define GWEN_ENDIAN_LE16TOH(x) OSSwapLittleToHostInt16(x)
+
+#define GWEN_ENDIAN_HTOLE32(x) OSSwapHostToLittleInt32(x)
+#define GWEN_ENDIAN_LE32TOH(x) OSSwapLittleToHostInt32(x)
+
+#define GWEN_ENDIAN_HTOLE64(x) OSSwapHostToLittleInt64(x)
+#define GWEN_ENDIAN_LE64TOH(x) OSSwapLittleToHostInt64(x)
+
+#define GWEN_ENDIAN_HTOBE16(x) OSSwapHostToBigInt16(x)
+#define GWEN_ENDIAN_BE16TOH(x) OSSwapBigToHostInt16(x)
+
+#define GWEN_ENDIAN_HTOBE32(x) OSSwapHostToBigInt32(x)
+#define GWEN_ENDIAN_BE32TOH(x) OSSwapBigToHostInt32(x)
+
+#define GWEN_ENDIAN_HTOBE64(x) OSSwapHostToBigInt64(x)
+#define GWEN_ENDIAN_BE64TOH(x) OSSwapBigToHostInt64(x)
+
 #else
 /* for Linux and others use definitions from endian.h */
 #  include <endian.h>
