diff --git a/libwccl/CMakeLists.txt b/libwccl/CMakeLists.txt
index db4268a506339368100a546997efeda2c5e6588e..338182f7fc480bf86bde92c4b0c9ea807335e66e 100644
--- a/libwccl/CMakeLists.txt
+++ b/libwccl/CMakeLists.txt
@@ -33,14 +33,18 @@ SET(libwccl_STAT_SRC
 )
 
 SET(libwccl_STAT_SRC ${libwccl_STAT_SRC}
-	parser/ANTLRLexer.cpp
-	parser/ANTLRParser.cpp
+	${PROJECT_BINARY_DIR}/parser/ANTLRLexer.cpp
+	${PROJECT_BINARY_DIR}/parser/ANTLRParser.cpp
 )
 
+include_directories(${PROJECT_BINARY_DIR}/parser)
+
 ADD_CUSTOM_COMMAND(
-	OUTPUT parser/ANTLRLexer.cpp parser/ANTLRLexer.hpp parser/ANTLRParser.cpp parser/ANTLRParser.hpp parser/ANTLRExprTokenTypes.hpp parser/ANTLRExprTokenTypes.txt 
-	COMMAND runantlr -o parser parser/grammar.g
-	DEPENDS parser/grammar.g
+	OUTPUT parser/ANTLRLexer.cpp parser/ANTLRLexer.hpp parser/ANTLRParser.cpp
+		parser/ANTLRParser.hpp parser/ANTLRExprTokenTypes.hpp
+		parser/ANTLRExprTokenTypes.txt
+	COMMAND runantlr -o parser ${PROJECT_SOURCE_DIR}/parser/grammar.g
+	DEPENDS ${PROJECT_SOURCE_DIR}/parser/grammar.g
 	COMMENT "-- Generating parser/ANTLRLexer.cpp parser/ANTLRLexer.hpp parser/ANTLRExprTokenTypes.hpp parser/ANTLRExprTokenTypes.txt parser/ANTLRParser.cpp parser/ANTLRParser.hpp")
 
 file(GLOB_RECURSE INCS "*.h")
diff --git a/libwccl/parser/Parser.cpp b/libwccl/parser/Parser.cpp
index 3fedb78ef0aa9c606e5c9ed67d1668b1673efdea..067aeb0d07822dea41d93e3e564abcdf0992d0ad 100644
--- a/libwccl/parser/Parser.cpp
+++ b/libwccl/parser/Parser.cpp
@@ -1,4 +1,4 @@
-#include "Parser.h"
+#include <libwccl/parser/Parser.h>
 
 /**
  * @desc Parser constructor. Default tagset is NULL
diff --git a/libwccl/parser/Parser.h b/libwccl/parser/Parser.h
index 08b06c3abc3c4a9ace1a74a5e9600b23b916b3c4..a8b218bcdb0f137d1de95c7b789de7355b317649 100644
--- a/libwccl/parser/Parser.h
+++ b/libwccl/parser/Parser.h
@@ -7,7 +7,7 @@
 #include "ANTLRLexer.hpp"
 #include "ANTLRParser.hpp"
 
-#include "ParserException.h"
+#include <libwccl/parser/ParserException.h>
 
 // <libwccl>
 
diff --git a/libwccl/parser/ParserException.cpp b/libwccl/parser/ParserException.cpp
index 48aca90a0f3005eb7f38d16b078aaa22a8a93109..b2ca3661cf5f7c10b52ba1ae210f8baa3a61766a 100644
--- a/libwccl/parser/ParserException.cpp
+++ b/libwccl/parser/ParserException.cpp
@@ -1,4 +1,4 @@
-#include "ParserException.h"
+#include <libwccl/parser/ParserException.h>
 
 ParserException::ParserException(std::string msg)
 {
diff --git a/libwccl/parser/grammar.g b/libwccl/parser/grammar.g
index b768eff1de0589b4e78d3d9554d01cae33d24636..cbbe0bd9426ed7023303a22b5738f3f647fb64dc 100644
--- a/libwccl/parser/grammar.g
+++ b/libwccl/parser/grammar.g
@@ -1,5 +1,5 @@
 header {
-	#include "ParserException.h"
+	#include <libwccl/parser/ParserException.h>
 
 	// libwccl