diff --git a/contrib/src/jsoncpp/rules.mak b/contrib/src/jsoncpp/rules.mak
index 5be14e876fb466596d347a58e1452b26ebe1b553..ff18b88fcda9515f3b968773c3d16beb85c8b9b7 100644
--- a/contrib/src/jsoncpp/rules.mak
+++ b/contrib/src/jsoncpp/rules.mak
@@ -22,6 +22,6 @@ jsoncpp: jsoncpp-$(JSONCPP_VERSION).tar.gz .sum-jsoncpp
 	$(MOVE)
 
 .jsoncpp: jsoncpp toolchain.cmake
-	cd $< && $(HOSTVARS) $(CMAKE) . ${JSONCPP_CMAKECONF}
+	cd $< && $(HOSTVARS) $(CMAKE) ${JSONCPP_CMAKECONF}
 	cd $< && $(MAKE) install
 	touch $@
diff --git a/contrib/src/main.mak b/contrib/src/main.mak
index 47256305f2e7d5f2b6e31ebc4cd31274c0437614..442bcb96fa9beca34f74849ec96b887be4f379ba 100644
--- a/contrib/src/main.mak
+++ b/contrib/src/main.mak
@@ -377,8 +377,19 @@ UPDATE_AUTOCONFIG = for dir in $(AUTOMAKE_DATA_DIRS); do \
 
 RECONF = mkdir -p -- $(PREFIX)/share/aclocal && \
 	cd $< && autoreconf -fiv $(ACLOCAL_AMFLAGS)
+
+ifdef HAVE_ANDROID
+CMAKE = cmake . -DCMAKE_TOOLCHAIN_FILE=$(ANDROID_NDK)/build/cmake/android.toolchain.cmake \
+		-DANDROID_PLATFORM=$(ANDROID_API) \
+		-DANDROID_ABI=$(ANDROID_ABI) \
+		-DANDROID_STL=c++_static \
+		-DCMAKE_BUILD_TYPE=Release \
+		-DCMAKE_FIND_ROOT_PATH=$(PREFIX) \
+		-DCMAKE_INSTALL_PREFIX=$(PREFIX)
+else
 CMAKE = cmake . -DCMAKE_TOOLCHAIN_FILE=$(abspath toolchain.cmake) \
 		-DCMAKE_INSTALL_PREFIX=$(PREFIX)
+endif
 
 #
 # Per-package build rules
@@ -487,13 +498,6 @@ endif
 endif
 ifdef HAVE_CROSS_COMPILE
 	echo "set(_CMAKE_TOOLCHAIN_PREFIX $(CROSS_COMPILE))" >> $@
-ifdef HAVE_ANDROID
-	echo "set(CMAKE_SYSTEM_NAME Android)" >> $@
-	echo "set(CMAKE_ANDROID_STANDALONE_TOOLCHAIN \"$(ANDROID_TOOLCHAIN)\")" >> $@
-	echo "set(CMAKE_ANDROID_ARCH_ABI $(ANDROID_ABI))" >> $@
-	echo "set(CMAKE_SYSTEM_VERSION $(subst android-,,$(ANDROID_API)))" >> $@
-	echo "set(CMAKE_ANDROID_STL_TYPE c++_static)" >> $@
-endif
 endif
 	echo "set(CMAKE_C_COMPILER $(CC))" >> $@
 	echo "set(CMAKE_CXX_COMPILER $(CXX))" >> $@
@@ -501,6 +505,7 @@ endif
 	echo "set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)" >> $@
 	echo "set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)" >> $@
 	echo "set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)" >> $@
+	echo "set(CMAKE_BUILD_TYPE Release)" >> $@
 
 # Default pattern rules
 .sum-%: $(SRC)/%/SHA512SUMS
diff --git a/contrib/src/opendht/rules.mak b/contrib/src/opendht/rules.mak
index 7f84e8dacf01025c3dfbad0de2c2e119028fc2db..139da915a6e7c0c27a022b36841db2952903519e 100644
--- a/contrib/src/opendht/rules.mak
+++ b/contrib/src/opendht/rules.mak
@@ -31,11 +31,9 @@ $(TARBALLS)/opendht-$(OPENDHT_VERSION).tar.gz:
 
 opendht: opendht-$(OPENDHT_VERSION).tar.gz
 	$(UNPACK)
-	$(UPDATE_AUTOCONFIG) && cd $(UNPACK_DIR)
 	$(MOVE)
 
 .opendht: opendht .sum-opendht
-	mkdir -p $</m4 && $(RECONF)
-	cd $< && $(HOSTVARS) ./configure --enable-static --disable-shared --disable-tools --disable-python --disable-doc --enable-proxy-server --enable-proxy-client --enable-push-notifications $(HOSTCONF)
+	cd $< && $(HOSTVARS) $(CMAKE) -DOPENDHT_STATIC=On -DOPENDHT_SHARED=Off -DOPENDHT_TOOLS=Off -DOPENDHT_PROXY_CLIENT=On -DOPENDHT_PUSH_NOTIFICATIONS=On -DOPENDHT_DOCUMENTATION=Off .
 	cd $< && $(MAKE) install
 	touch $@