diff --git a/.gitignore b/.gitignore
index c1402133ae96071d2ea9f832e04b209e08bd486f..aa116bc8fadc64670ef39f681e31b0d470b25094 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,4 +6,5 @@ auto-save-list
 .\#*
 
 # Output files
-output/
\ No newline at end of file
+output/
+system-index.txt
diff --git a/Makefile b/Makefile
index c714b0ddfecdd759b39927fcdf6defa0a6f151c4..b2e75f3ed5589c6015fedcb9ee6e1730ee106c8d 100644
--- a/Makefile
+++ b/Makefile
@@ -1,14 +1,13 @@
-all: generate
+all: build
 
 serve:
-	#cd output; python -m SimpleHTTPServer
 	cd output; python ../server.py
 
 static:
 	mkdir -p output/static
 	cp -rf content/static/* output/static
 
-generate: static
+build: static
 	sbcl --load build.lisp --non-interactive
 
 clean:
diff --git a/build.lisp b/build.lisp
index cda5f526569358c5eaf13365f386caf3a3eba8d2..ddbd8d9941d40e17724da6886734e96df0996ca8 100644
--- a/build.lisp
+++ b/build.lisp
@@ -1,2 +1,3 @@
+(push (uiop:getcwd) quicklisp:*local-project-directories*)
 (ql:quickload :cl-site)
-(funcall (symbol-function (intern "MAKE-SITE" :cl-site)))
+(funcall (symbol-function (intern "MAKE-SITE" :cl-site)) (merge-pathnames "output/" (uiop:getcwd)))
diff --git a/main.lisp b/main.lisp
index a6af33de9a5d1c7450026873fe70fcbd3dfbfe13..7e8ab0ba158bec92b57b4e6558e9fa8c4ef5d5f1 100644
--- a/main.lisp
+++ b/main.lisp
@@ -1,8 +1,9 @@
 ;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10 -*-
 (in-package :cl-site)
 
-(defun make-site () 
-  (progn 
+(defun make-site (&optional output-dir) 
+  (let ((*output-dir* (or output-dir *output-dir*)))
+    (format t "Generating site in ~A.~%" *output-dir*)
     (process-static)
     (process-styles)
-    (process-pages)))
\ No newline at end of file
+    (process-pages)))