summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoralpha123 <turkchess123@gmail.com>2015-11-02 13:22:00 -0700
committeralpha123 <turkchess123@gmail.com>2015-11-03 11:51:27 -0700
commit97c92368bc0efe85d006e367d97fd88da5a13ecf (patch)
tree6ca9292084da13fc3416354862cfbae263d8876e /src
parentba8fbb67189b78c1e552ccb2ebcc84a793704b11 (diff)
Build on FreeBSD
Diffstat (limited to 'src')
-rw-r--r--src/Makefile4
-rw-r--r--src/file.cc9
2 files changed, 13 insertions, 0 deletions
diff --git a/src/Makefile b/src/Makefile
index f3b32238..78eb6d25 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -28,6 +28,10 @@ os := $(shell uname)
ifeq ($(os),Darwin)
LIBS += -lncurses -lboost_regex-mt
+else ifeq ($(os),FreeBSD)
+ LIBS += -ltinfow -lncursesw -lboost_regex
+ CPPFLAGS += -I/usr/local/include
+ LDFLAGS += -L/usr/local/lib
else ifeq ($(os),Haiku)
LIBS += -lncursesw -lboost_regex -lnetwork -lbe
else ifneq (,$(findstring CYGWIN,$(os)))
diff --git a/src/file.cc b/src/file.cc
index ced88614..0e6b1e61 100644
--- a/src/file.cc
+++ b/src/file.cc
@@ -12,6 +12,10 @@
#include <unistd.h>
#include <dirent.h>
+#if defined(__FreeBSD__)
+#include <sys/sysctl.h>
+#endif
+
#if defined(__APPLE__)
#include <mach-o/dyld.h>
#define st_mtim st_mtimespec
@@ -491,6 +495,11 @@ String get_kak_binary_path()
kak_assert(res != -1);
buffer[res] = '\0';
return buffer;
+#elif defined(__FreeBSD__)
+ int mib[] = {CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1};
+ size_t res = sizeof(buffer);
+ sysctl(mib, 4, buffer, &res, NULL, 0);
+ return buffer;
#elif defined(__APPLE__)
uint32_t bufsize = 2048;
_NSGetExecutablePath(buffer, &bufsize);