diff --git a/src/util/serialize.h b/src/util/serialize.h
index 58e59df224ce26c5a15aa44db07eab394214db6c..36324a6751e7dae9c4af3dae6eb09ac14a2b95a4 100644
--- a/src/util/serialize.h
+++ b/src/util/serialize.h
@@ -26,7 +26,17 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 
 #include "config.h"
 #if HAVE_ENDIAN_H
-	#include <endian.h>
+	#ifdef _WIN32
+		#define __BYTE_ORDER 0
+		#define __LITTLE_ENDIAN 0
+		#define __BIG_ENDIAN 1
+	#elif defined(__MACH__) && defined(__APPLE__)
+		#include <machine/endian.h>
+	#elif defined(__FreeBSD__)
+		#include <sys/endian.h>
+	#else
+		#include <endian.h>
+	#endif
 #endif
 #include <string.h> // for memcpy
 #include <iostream>