diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8546431..af330e8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -19,17 +19,14 @@
 set(MCONF2 "LDFLAGS=-L/usr/local/lib")
 endif()
 
-# FIXME: add in URL args for the projects below.
-# URL ftp://ftp.gnu.org/gnu/gmp/gmp-6.1.0.tar.bz2
-# URL ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2
-# URL ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz
-
 # Open issue: should the configure cmds below be run with
 # "CC=${CMAKE_BINARY_DIR}/bin/clang"
 
 set(MPCINSTALL ${CMAKE_CURRENT_BINARY_DIR}/external/build-mpc)
+set(MPCLIBDIR "${MPCINSTALL}/lib")
 externalproject_add(libmpc
   URL ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz
+  URL_MD5 d6a1d5f8ddea3abd2cc3e98f58352d26
   DOWNLOAD_DIR ${CMAKE_CURRENT_BINARY_DIR}/external-downloads
   BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/external/mpc
   CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=${MPCINSTALL} ${MCONF1} ${MCONF2}
@@ -41,8 +38,10 @@
   )
 
 set(MPFRINSTALL ${CMAKE_CURRENT_BINARY_DIR}/external/build-mpfr)
+set(MPFRLIBDIR "${MPFRINSTALL}/lib")
 externalproject_add(libmpfr
   URL ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2
+  URL_MD5 b8a2f6b0e68bef46e53da2ac439e1cf4
   DOWNLOAD_DIR ${CMAKE_CURRENT_BINARY_DIR}/external-downloads
   BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/external/mpfr
   CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=${MPFRINSTALL} ${MCONF1} ${MCONF2}
@@ -54,8 +53,10 @@
   )
 
 set(GMPINSTALL ${CMAKE_CURRENT_BINARY_DIR}/external/build-gmp)
+set(GMPLIBDIR "${GMPINSTALL}/lib")
 externalproject_add(libgmp
   URL ftp://ftp.gnu.org/gnu/gmp/gmp-6.1.0.tar.bz2
+  URL_MD5 86ee6e54ebfc4a90b643a65e402c4048
   DOWNLOAD_DIR ${CMAKE_CURRENT_BINARY_DIR}/external-downloads
   BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/external/gmp
   CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=${GMPINSTALL} ${MCONF1} ${MCONF2}
@@ -105,10 +106,10 @@
 # Record the fact that llvm-goparse depends on these libs
 add_dependencies(llvm-goparse libmpfr libmpc libgmp)
 
-# Add in the archives for the llvm-goparse dependencies.
+# Add in llvm-goparse dependencies.
 target_link_libraries(llvm-goparse
-  ${MPCINSTALL}/lib/libmpc.a
-  ${MPFRINSTALL}/lib/libmpfr.a
-  ${GMPINSTALL}/lib/libgmp.a
-  )
+  "-L${MPCLIBDIR}" "-lmpc"
+  "-L${MPFRLIBDIR}" "-lmpfr"
+  "-L${GMPLIBDIR}" "-lgmp")
+
 
diff --git a/unittests/BackendCore/CMakeLists.txt b/unittests/BackendCore/CMakeLists.txt
index a19d83f..fc15f3f 100644
--- a/unittests/BackendCore/CMakeLists.txt
+++ b/unittests/BackendCore/CMakeLists.txt
@@ -1,14 +1,4 @@
 
-# FIXME: this is a hack way to locate the include dirs
-include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../llvm-gofrontend)
-include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../llvm-gofrontend/gofrontend/go)
-
-# Note:
-# - at the moment these unit tests only exercise code in Llvm_backend
-#   and related classes, so although we're linking in the gofrontend,
-#   we don't need any of the gofrontend deps (e.g. libgmp etc). If
-#   shared linkage were used, this would have to change.
-
 set(LLVM_LINK_COMPONENTS
   CppGoFrontEnd
   CodeGen
@@ -48,7 +38,7 @@
 
 # Add in the archives for the llvm-goparse dependencies.
 target_link_libraries(GoBackendCoreTests
-  ${MPCINSTALL}/lib/libmpc.a
-  ${MPFRINSTALL}/lib/libmpfr.a
-  ${GMPINSTALL}/lib/libgmp.a
-  )
+  "-L${MPCLIBDIR}" "-lmpc"
+  "-L${MPFRLIBDIR}" "-lmpfr"
+  "-L${GMPLIBDIR}" "-lgmp")
+
diff --git a/unittests/CMakeLists.txt b/unittests/CMakeLists.txt
index f0f90a2..2026079 100644
--- a/unittests/CMakeLists.txt
+++ b/unittests/CMakeLists.txt
@@ -1,5 +1,6 @@
-add_custom_target(GobackendUnitTests)
-set_target_properties(GobackendUnitTests PROPERTIES FOLDER "Tests")
+
+add_custom_target(GoBackendUnitTests)
+set_target_properties(GoBackendUnitTests PROPERTIES FOLDER "Tests")
 
 if (APPLE)
   set(CMAKE_INSTALL_RPATH "@executable_path/../../lib")
@@ -8,8 +9,14 @@
 endif()
 
 function(add_gobackend_unittest test_dirname)
-  add_unittest(GobackendUnitTests ${test_dirname} ${ARGN})
+  add_unittest(GoBackendUnitTests ${test_dirname} ${ARGN})
 endfunction()
 
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../llvm-gofrontend)
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../llvm-gofrontend/gofrontend/go)
+
+include_directories(${MPCINSTALL}/include)
+include_directories(${MPFRINSTALL}/include)
+include_directories(${GMPINSTALL}/include)
+
 add_subdirectory(BackendCore)
-add_subdirectory(Parser)
diff --git a/unittests/Parser/CMakeLists.txt b/unittests/Parser/CMakeLists.txt
deleted file mode 100644
index e453d99..0000000
--- a/unittests/Parser/CMakeLists.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-
-# FIXME: this is a hacky way to locate the include dirs
-include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../llvm-gofrontend)
-include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../llvm-gofrontend/gofrontend/go)
-
-set(LLVM_LINK_COMPONENTS
-  CppGoFrontEnd
-  CodeGen
-  Core
-  Support
-  )
-
-set(ParserTestSources
-  ParserTest.cpp
-  )
-
-add_gobackend_unittest(GoParserTests
-  ${ParserTestSources}
-  )
-
-include_directories(${MPCINSTALL}/include)
-include_directories(${MPFRINSTALL}/include)
-include_directories(${GMPINSTALL}/include)
-
-# Record the fact that llvm-goparse depends on these libs
-add_dependencies(GoBackendCoreTests libmpfr libmpc libgmp)
-
-# Add in the archives for the llvm-goparse dependencies.
-target_link_libraries(GoParserTests
-  ${MPCINSTALL}/lib/libmpc.a
-  ${MPFRINSTALL}/lib/libmpfr.a
-  ${GMPINSTALL}/lib/libgmp.a
-  )
diff --git a/unittests/Parser/ParserTest.cpp b/unittests/Parser/ParserTest.cpp
deleted file mode 100644
index 271e5a0..0000000
--- a/unittests/Parser/ParserTest.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
-//===- llvm/tools/gollvm/unittests/BackendCore/BackendCoreTests.cpp -----===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "TestUtils.h"
-#include "gtest/gtest.h"
-#include "go-llvm-backend.h"
-
-using namespace llvm;
-
-namespace {
-
-TEST(ParserTests, ParseFile) {
-  LLVMContext C;
-  std::unique_ptr<Backend> makeit(go_get_backend(C));
-}
-
-}
