diff --git a/Makefile b/Makefile
index 6cde53c..037d4fa 100644
--- a/Makefile
+++ b/Makefile
@@ -2,25 +2,81 @@
 # quick makefile to document how to do the various tasks
 
 # there is no real reason to actually use the makefile except for a
-# very small amount of convenience
+# very small amount of convenience, apart from the website build
 
 .PHONY : build
 build :
-	cabal v2-build --enable-tests -fparserexe
+	cabal build --enable-tests -fparserexe
 
 .PHONY : test
 test :
-	cabal v2-run test:Tests -- --hide-successes --ansi-tricks=false
+	cabal run test:Tests -- --hide-successes --ansi-tricks=false
 
-.PHONY : website
-website :
-	website/make_website.sh
+
+.PHONY : test-coverage
+test-coverage :
+	cabal test --enable-coverage
 
 .PHONY : clean
 clean :
-	cabal v2-clean
+	cabal clean
 	rm -Rf build/
 
-.PHONY: parserexe
+.PHONY : parserexe
 parserexe :
-	cabal v2-build -fparserexe SimpleSqlParserTool
+	cabal build -fparserexe SimpleSqlParserTool
+
+
+###############################################
+
+# website
+
+# it's a bit crap, run cabal test or make test or something at least once
+# to get the website build to work
+
+.PHONY : website
+website : website-non-haddock build-haddock
+
+.PHONY : website-non-haddock
+website-non-haddock : build/main.css build/ocean.css build/index.html build/supported_sql.html \
+          build/test_cases.html
+
+
+build/main.css : website/main.css
+	mkdir -p build
+	cp website/main.css build
+
+build/ocean.css : website/ocean.css
+	mkdir -p build
+	cp website/ocean.css build
+
+build/index.html : website/index.asciidoc website/AddLinks.lhs
+	asciidoctor website/index.asciidoc -o - | cabal -v0 exec runhaskell website/AddLinks.lhs > build/index.html
+
+build/supported_sql.html : website/supported_sql.asciidoc website/AddLinks.lhs
+	asciidoctor website/supported_sql.asciidoc -o - | cabal -v0 exec runhaskell website/AddLinks.lhs > build/supported_sql.html
+
+build/test_cases.html : website/RenderTestCases.lhs
+	cabal -v0 exec runhaskell -- --ghc-arg=-package=pretty-show -itools website/RenderTestCases.lhs > build/test_cases.asciidoc
+	asciidoctor build/test_cases.asciidoc -o - | \
+	    sed -e "s/max-width:62\.5em//g" > build/test_cases.html
+	# TODO: reduce the text size on the test cases page
+	# TODO: use scrollbars inside the tables
+	# TODO: make the tables autowidth
+	#        -e "s/(code.*)font-size:1em/\1font-size:0.8em/g"
+	rm build/test_cases.asciidoc
+
+# works here, but not in a recipe. amazing
+# GHC_VER="$(shell ghc --numeric-version)"
+
+.PHONY : build-haddock
+build-haddock :
+	cabal haddock --haddock-option="--hyperlinked-source"
+	# todo: handle the deps properly
+	rm -Rf build/haddock
+	mkdir build/haddock/
+
+	#GHC_VER="$(shell ghc --numeric-version)"
+	# wtf
+	$(eval GHC_VER="$(shell ghc --numeric-version)")
+	cp -R dist-newstyle/build/x86_64-linux/ghc-${GHC_VER}/simple-sql-parser-0.6.0/doc/html/simple-sql-parser/* build/haddock/
diff --git a/website/make_website.sh b/website/make_website.sh
deleted file mode 100755
index 8ede5a1..0000000
--- a/website/make_website.sh
+++ /dev/null
@@ -1,44 +0,0 @@
-#! /bin/sh
-
-set -ex
-
-# todo: check this is run from the project root and not the website/
-# dir
-
-# todo: put all this in the makefile?
-
-# use make build to get the package database into the right state first
-
-mkdir -p build
-cp website/main.css build
-cp website/ocean.css build
-
-# index
-asciidoctor website/index.asciidoc -o - | cabal -v0 v2-exec runhaskell website/AddLinks.lhs > build/index.html
-
-asciidoctor website/supported_sql.asciidoc -o - | cabal -v0 v2-exec runhaskell website/AddLinks.lhs > build/supported_sql.html
-
-# tpch sql file
-# pandoc src/tpch.sql -s --highlight-style kate -o tpch.sql.html
-# rendered test cases
-# build the parserexe target first to fix the package database
-cabal -v0 v2-exec runhaskell -- --ghc-arg=-package=pretty-show -itools website/RenderTestCases.lhs > build/test_cases.asciidoc
-
-asciidoctor build/test_cases.asciidoc -o - | \
-    sed -e "s/max-width:62\.5em//g" \
-        > build/test_cases.html
-# TODO: reduce the text size on the test cases page
-# TODO: use scrollbars inside the tables
-# TODO: make the tables autowidth
-#        -e "s/(code.*)font-size:1em/\1font-size:0.8em/g"
-
-rm build/test_cases.asciidoc
-# haddock
-cabal v2-haddock --haddock-option="--hyperlinked-source"
-rm -Rf build/haddock
-mkdir build/haddock/
-
-GHC_VER=$(ghc --numeric-version)
-
-
-cp -R dist-newstyle/build/x86_64-linux/ghc-$GHC_VER/simple-sql-parser-0.6.0/doc/html/simple-sql-parser/* build/haddock/