diff --git a/.travis.yml b/.travis.yml
index 84e04807ff6e3ef59ccaad4b9ccccc7ee4646e8c..9b511be908d354795dd56b1a7fb3867d6f4a2887 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -13,7 +13,9 @@ env:
   - TEST_NO_FUSE=1 TEST_VERBOSE=1 TEST_SUITE=test_go_expensive
   - TEST_NO_FUSE=1 TEST_VERBOSE=1 TEST_SUITE=test_sharness_expensive
 
-install: make install
+install:
+  - make toolkit_upgrade
+  - make install
 
 script:
   - make $TEST_SUITE
diff --git a/Makefile b/Makefile
index 228051a3f1fe1b0404299f52887c87aff900846c..84271bf68b247b70fcdac04f0e11986eb725f89d 100644
--- a/Makefile
+++ b/Makefile
@@ -14,11 +14,19 @@ all: help
 godep:
 	go get github.com/tools/godep
 
-gx:
+toolkit_upgrade: gx_upgrade gxgo_upgrade
+
+gx_upgrade:
 	go get -u github.com/whyrusleeping/gx
+
+gxgo_upgrade:
 	go get -u github.com/whyrusleeping/gx-go
 
-deps: gx
+gx_check:
+	@bin/check_gx_program "gx" "0.3" 'Upgrade or install gx using your package manager or run `make gx_upgrade`'
+	@bin/check_gx_program "gx-go" "0.2" 'Upgrade or install gx-go using your package manager or run `make gxgo_upgrade`'
+
+deps: gx_check
 	gx --verbose install --global
 
 # saves/vendors third-party dependencies to Godeps/_workspace
@@ -42,7 +50,7 @@ clean:
 uninstall:
 	cd cmd/ipfs && go clean -i -ldflags=$(ldflags)
 
-PHONY += all help godep install build nofuse clean uninstall
+PHONY += all help godep toolkit_upgrade gx_upgrade gxgo_upgrade gx_check deps vendor install build nofuse clean uninstall
 
 ##############################################################
 # tests targets
@@ -98,6 +106,7 @@ PHONY += test test_short test_expensive
 help:
 	@echo 'DEPENDENCY TARGETS:'
 	@echo ''
+	@echo '  deps         - Download dependencies using gx'
 	@echo '  vendor       - Create a Godep workspace of 3rd party dependencies'
 	@echo ''
 	@echo 'BUILD TARGETS:'
diff --git a/appveyor.yml b/appveyor.yml
index 5dffeb0aa81e3cbae7f7164f77b59b3087ac35f8..5cff8cda89489cf3a2bfd947665a419eea34e286 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -40,7 +40,7 @@ install:
 # default file handles. Ensure a dummy file descriptor is opened with 'exec'.
 #  
 build_script:
-  - '%BASH% -lc "cd $APPVEYOR_BUILD_FOLDER; exec 0</dev/null; export PATH=$GOPATH/bin:$PATH; make nofuse"'
+  - '%BASH% -lc "cd $APPVEYOR_BUILD_FOLDER; exec 0</dev/null; export PATH=$GOPATH/bin:$PATH; make toolkit_upgrade; make nofuse"'
   
 test_script:
   - '%BASH% -lc "cd $APPVEYOR_BUILD_FOLDER; exec 0</dev/null; export PATH=$GOPATH/bin:$PATH; export GOFLAGS=''-tags nofuse''; export TEST_NO_FUSE=1; export TEST_VERBOSE=1; export TEST_SUITE=test_sharness_expensive; make $TEST_SUITE"'