diff --git a/contrib/src/libarchive/rules.mak b/contrib/src/libarchive/rules.mak
index 3ce17adcc61d7f57b7039738a4ae092d247735b6..a51ff7e6973498ea5cf6c4f06248bed9ebd7a052 100644
--- a/contrib/src/libarchive/rules.mak
+++ b/contrib/src/libarchive/rules.mak
@@ -25,12 +25,12 @@ $(TARBALLS)/libarchive-$(LIBARCHIVE_VERSION).tar.xz:
 
 .sum-libarchive: libarchive-$(LIBARCHIVE_VERSION).tar.xz
 
-libarchive: libarchive-$(LIBARCHIVE_VERSION).tar.xz
+libarchive: libarchive-$(LIBARCHIVE_VERSION).tar.xz .sum-libarchive
 	$(UNPACK)
 	$(APPLY) $(SRC)/libarchive/0001-disable-shared-library.patch
 	$(MOVE)
 
-.libarchive: libarchive toolchain.cmake .sum-libarchive
+.libarchive: libarchive toolchain.cmake
 	cd $< && mkdir -p buildlib
 ifdef HAVE_ANDROID
 	cd $< && cp -R contrib/android/include/* $(PREFIX)/include
diff --git a/contrib/src/main.mak b/contrib/src/main.mak
index 76eeb2ae38d202ab449ba4dcc4c3d08d98b71ffd..37054adf4b00086d3719b5cb8efc2eeb9bf7f412 100644
--- a/contrib/src/main.mak
+++ b/contrib/src/main.mak
@@ -144,20 +144,8 @@ RANLIB=xcrun ranlib
 EXTRA_COMMON := -isysroot $(MACOSX_SDK) -mmacosx-version-min=$(MIN_OSX_VERSION) -DMACOSX_DEPLOYMENT_TARGET=$(MIN_OSX_VERSION)
 EXTRA_CXXFLAGS += -stdlib=libc++
 EXTRA_LDFLAGS += -Wl,-syslibroot,$(MACOSX_SDK)
-ifeq ($(ARCH),x86_64)
 EXTRA_COMMON += -m64
-else
-EXTRA_COMMON += -m32
-endif
-
-XCODE_FLAGS = -sdk macosx$(OSX_VERSION)
-ifeq ($(shell xcodebuild -version 2>/dev/null | tee /dev/null|head -1|cut -d\  -f2|cut -d. -f1),3)
-XCODE_FLAGS += ARCHS=$(ARCH)
-# XCode 3 doesn't support -arch
-else
-XCODE_FLAGS += -arch $(ARCH)
-endif
-
+XCODE_FLAGS = -sdk macosx$(OSX_VERSION) -arch $(ARCH)
 endif
 
 CCAS=$(CC) -c
@@ -552,8 +540,8 @@ endif
 ifdef HAVE_CROSS_COMPILE
 	echo "set(_CMAKE_TOOLCHAIN_PREFIX $(CROSS_COMPILE))" >> $@
 endif
-	echo "set(CMAKE_C_COMPILER $(CC))" >> $@
-	echo "set(CMAKE_CXX_COMPILER $(CXX))" >> $@
+	echo "set(CMAKE_C_COMPILER \"$(CC)\")" >> $@
+	echo "set(CMAKE_CXX_COMPILER \"$(CXX)\")" >> $@
 	echo "set(CMAKE_FIND_ROOT_PATH $(PREFIX))" >> $@
 	echo "set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)" >> $@
 	echo "set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)" >> $@
diff --git a/contrib/src/msgpack/rules.mak b/contrib/src/msgpack/rules.mak
index b1708b7cbe076972a4b1b0922fc324b268724eab..e2aabb421b0b31680060624cac3d5413e8b5d468 100644
--- a/contrib/src/msgpack/rules.mak
+++ b/contrib/src/msgpack/rules.mak
@@ -18,11 +18,11 @@ $(TARBALLS)/msgpack-c-$(MSGPACK_VERSION).tar.gz:
 
 .sum-msgpack: msgpack-c-$(MSGPACK_VERSION).tar.gz
 
-msgpack: msgpack-c-$(MSGPACK_VERSION).tar.gz
+msgpack: msgpack-c-$(MSGPACK_VERSION).tar.gz .sum-msgpack
 	$(UNPACK)
 	$(MOVE)
 
-.msgpack: msgpack toolchain.cmake .sum-msgpack
+.msgpack: msgpack toolchain.cmake
 	cd $< && $(HOSTVARS) $(CMAKE) . $(MSGPACK_CMAKECONF)
 	cd $< && $(MAKE) install
 	touch $@