diff --git a/Cargo.lock b/Cargo.lock
index aca6831010c4b50c518b2d6be0b320f4a379e53e..229ac5493cf5ccf87aac255639b4393963282879 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1,3 +1,5 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
 [[package]]
 name = "ansi_term"
 version = "0.11.0"
diff --git a/Makefile b/Makefile
index e00cde7121d2b464b94d2b87ecc646f8492e86fe..2ea04c3aba05bdc611fe6dbbab4056ad2971c52d 100644
--- a/Makefile
+++ b/Makefile
@@ -29,7 +29,7 @@ SRC=\
 	src/*/*/* \
 	src/*/*/*/*
 
-.PHONY: all clean fmt include install libc libm test
+.PHONY: all clean fmt headers install install-headers libc libm test
 
 all: | libc libm libpthread
 
@@ -44,13 +44,17 @@ check:
 fmt:
 	./fmt.sh
 
-install: all
+headers: $(BUILD)/include
+
+install-headers: headers
 	mkdir -pv "$(DESTDIR)/include"
 	cp -rv "include"/* "$(DESTDIR)/include"
 	cp -rv "$(BUILD)/include"/* "$(DESTDIR)/include"
 	cp -v "openlibm/include"/*.h "$(DESTDIR)/include"
 	cp -v "openlibm/src"/*.h "$(DESTDIR)/include"
 	cp -v "pthreads-emb/"*.h "$(DESTDIR)/include"
+
+install-libs: all
 	mkdir -pv "$(DESTDIR)/lib"
 	cp -v "$(BUILD)/release/libc.a" "$(DESTDIR)/lib"
 	cp -v "$(BUILD)/release/crt0.o" "$(DESTDIR)/lib"
@@ -59,6 +63,8 @@ install: all
 	cp -v "$(BUILD)/openlibm/libopenlibm.a" "$(DESTDIR)/lib/libm.a"
 	cp -v "$(BUILD)/pthreads-emb/libpthread.a" "$(DESTDIR)/lib/libpthread.a"
 
+install: install-headers install-libs
+
 libc: $(BUILD)/release/libc.a $(BUILD)/release/crt0.o $(BUILD)/release/crti.o $(BUILD)/release/crtn.o $(BUILD)/include
 
 libm: $(BUILD)/openlibm/libopenlibm.a
diff --git a/include/bits/fcntl.h b/include/bits/fcntl.h
index 377644773619ab4c0eab9e66d2cce3c860b324a1..e0fcf8dee87d4bd6105d6627add7d127f7d335e8 100644
--- a/include/bits/fcntl.h
+++ b/include/bits/fcntl.h
@@ -1,6 +1,10 @@
 #ifndef _BITS_FCNTL_H
 #define _BITS_FCNTL_H
 
+#if (defined(__redox__))
+#define O_NOFOLLOW 0x80000000
+#endif
+
 #ifdef __cplusplus
 extern "C" {
 #endif
diff --git a/src/header/fcntl/redox.rs b/src/header/fcntl/redox.rs
index ddc189baa8e127498767315e5e7a06ead96ae15e..7bc92a00a63b783b82d0e99d66343c9e0eb2f845 100644
--- a/src/header/fcntl/redox.rs
+++ b/src/header/fcntl/redox.rs
@@ -17,4 +17,6 @@ pub const O_EXCL: c_int = 0x0800_0000;
 pub const O_DIRECTORY: c_int = 0x1000_0000;
 pub const O_PATH: c_int = 0x2000_0000;
 pub const O_SYMLINK: c_int = 0x4000_0000;
-pub const O_NOFOLLOW: c_int = 0x8000_0000;
+// Negative to allow it to be used as int
+// TODO: Fix negative values missing from includes
+pub const O_NOFOLLOW: c_int = -0x8000_0000;