diff --git a/.travis.yml b/.travis.yml
index 73bf6c4..d851b4e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -11,7 +11,6 @@ install:
 - nvm ls-remote
 - nvm install stable
 - nvm use stable
-- npm install
 script:
 - make 
 
diff --git a/Makefile b/Makefile
index 2addcd5..96b3118 100644
--- a/Makefile
+++ b/Makefile
@@ -1,31 +1,62 @@
-all: mkdirs swig htmlmin min-css min-js copy
+INSTALL="install"
+TAR="tar"
+GREP="grep"
+NODE="node"
+NPM="npm"
+DESTDIR="./dist"
+PKG_VERSION := $( $(GREP) -Po '(?<="version": ")[^"]*' )
+TMPDIR := $(shell mktemp -d)
+
+all: builddirs npm_dependencies swig htmlmin min-css min-js copy-img copy-php
 
 swig:
-	@node node_modules/swig/bin/swig.js render -j dist.json templates/faq.swig > dist/faq.html 
-	@node node_modules/swig/bin/swig.js render -j dist.json templates/index.swig > dist/index.html 
-	@node node_modules/swig/bin/swig.js render -j dist.json templates/tools.swig > dist/tools.html 
+	$(NODE) node_modules/swig/bin/swig.js render -j dist.json templates/faq.swig > $(CURDIR)/build/faq.html 
+	$(NODE) node_modules/swig/bin/swig.js render -j dist.json templates/index.swig > $(CURDIR)/build/index.html 
+	$(NODE) node_modules/swig/bin/swig.js render -j dist.json templates/tools.swig > $(CURDIR)/build/tools.html 
 
 htmlmin:
-	@node node_modules/htmlmin/bin/htmlmin dist/index.html -o dist/index.html 
-	@node node_modules/htmlmin/bin/htmlmin dist/faq.html -o dist/faq.html 
-	@node node_modules/htmlmin/bin/htmlmin dist/tools.html -o dist/tools.html 
-	
-
-mkdirs:
-	@mkdir -p ./dist/img
+	$(NODE) node_modules/htmlmin/bin/htmlmin $(CURDIR)/build/index.html -o $(CURDIR)/build/index.html 
+	$(NODE) node_modules/htmlmin/bin/htmlmin $(CURDIR)/build/faq.html -o $(CURDIR)/build/faq.html 
+	$(NODE) node_modules/htmlmin/bin/htmlmin $(CURDIR)/build/tools.html -o $(CURDIR)/build/tools.html 
 
+installdirs:
+	mkdir -p $(DESTDIR)/ $(DESTDIR)/img $(DESTDIR)/classes $(DESTDIR)/includes
+	
 min-css:
-	@node ./node_modules/.bin/cleancss --s0 ./static/css/pomf.css > ./dist/pomf.min.css
+	$(NODE) ./node_modules/.bin/cleancss --s0 ./static/css/pomf.css > $(CURDIR)/build/pomf.min.css
 
 min-js:
-	@echo "// @source https://github.com/pomf/pomf/tree/master/static/js" >> ./dist/pomf.min.js 
-	@echo "// @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat" >> ./dist/pomf.min.js
-	@node ./node_modules/.bin/uglifyjs  --screw-ie8 ./static/js/app.js >> ./dist/pomf.min.js 
-	@echo "// @license-end" >> ./dist/pomf.min.js
-
-copy:
-	@cp -r ./php/* ./dist/
-	@cp  ./static/img/*.png ./dist/img
-	@cp  ./static/img/favicon.ico ./dist/favicon.ico
-
+	echo "// @source https://github.com/pomf/pomf/tree/master/static/js" > $(CURDIR)/build/pomf.min.js 
+	echo "// @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat" >> $(CURDIR)/build/pomf.min.js
+	$(NODE) ./node_modules/.bin/uglifyjs  --screw-ie8 ./static/js/app.js >> $(CURDIR)/build/pomf.min.js 
+	echo "// @license-end" >> $(CURDIR)/build/pomf.min.js
+
+copy-img:
+	cp -v ./static/img/*.png $(CURDIR)/build/img/
+	cp -vT ./static/img/favicon.ico $(CURDIR)/build/favicon.ico
+
+copy-php:
+	cp -rv ./php/* $(CURDIR)/build/
+
+install: installdirs
+	cp -rv $(CURDIR)/build/* $(DESTDIR)/
+
+dist:
+	DESTDIR=$(TMPDIR)/pomf-$(PKGVERSION)
+	export DESTDIR
+	install
+	$(TAR) cJf pomf-$(PKG_VERSION).tar.xz $(DESTDIR)
+	rm -rf $(TMPDIR)
+	
+clean:
+	rm -rvf $(CURDIR)/node_modules 
+	rm -rvf $(CURDIR)/build
+	
+uninstall:
+	rm -rvf $(DESTDIR)/
+	
+npm_dependencies:
+	$(NPM) install
 
+builddirs:
+	mkdir -p $(CURDIR)/build $(CURDIR)/build/img $(CURDIR)/build/classes $(CURDIR)/build/includes
diff --git a/README.md b/README.md
index df781f5..6e43462 100644
--- a/README.md
+++ b/README.md
@@ -41,13 +41,17 @@ Node, or NPM. So we'll just assume you already have them all running well.
 
 Assuming you already have Node and NPM working, compilation is easy. Use the
 following shell code:
-
-    git clone https://github.com/pomf/pomf
-    cd pomf/
-    npm install
-    make
-
-After this, the pomf site is now compressed and set up inside `dist/`.
+```bash
+git clone https://github.com/pomf/pomf
+cd pomf/
+make
+make install
+```
+OR
+```bash
+make install DESTDIR=/desired/path/for/site
+```
+After this, the pomf site is now compressed and set up inside `dist/`, or, if specified, `DESTDIR`.
 
 ## Configuring
 
