ifeq ($(shell uname -s),Darwin)
CONFIG_DARWIN=y
endif
+ifeq ($(shell uname -s),FreeBSD)
+CONFIG_FREEBSD=y
+endif
# Windows cross compilation from Linux
#CONFIG_WIN32=y
# use link time optimization (smaller and faster executables but slower build)
CONFIG_CLANG=y
CONFIG_DEFAULT_AR=y
endif
+ifdef CONFIG_FREEBSD
+# use clang instead of gcc
+CONFIG_CLANG=y
+CONFIG_DEFAULT_AR=y
+CONFIG_LTO=
+endif
ifdef CONFIG_WIN32
ifdef CONFIG_M32
#include <sys/ioctl.h>
#include <sys/wait.h>
-#if defined(__APPLE__)
+#if defined(__FreeBSD__)
+extern char **environ;
+#endif
+
+#if defined(__APPLE__) || defined(__FreeBSD__)
typedef sig_t sighandler_t;
+#endif
+
+#if defined(__APPLE__)
#if !defined(environ)
#include <crt_externs.h>
#define environ (*_NSGetEnviron())