|  | @@ -37,6 +37,10 @@ OPTIONS:
 | 
	
		
			
				|  |  |           Skip the invoke of Xcode to test the runtime on both iOS and OS X.
 | 
	
		
			
				|  |  |     --skip-xcode-ios
 | 
	
		
			
				|  |  |           Skip the invoke of Xcode to test the runtime on iOS.
 | 
	
		
			
				|  |  | +   --skip-xcode-debug
 | 
	
		
			
				|  |  | +         Skip the Xcode Debug configuration.
 | 
	
		
			
				|  |  | +   --skip-xcode-release
 | 
	
		
			
				|  |  | +         Skip the Xcode Release configuration.
 | 
	
		
			
				|  |  |     --skip-xcode-osx
 | 
	
		
			
				|  |  |           Skip the invoke of Xcode to test the runtime on OS X.
 | 
	
		
			
				|  |  |     --skip-objc-conformance
 | 
	
	
		
			
				|  | @@ -66,8 +70,8 @@ wrapped_make() {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  NUM_MAKE_JOBS=$(/usr/sbin/sysctl -n hw.ncpu)
 | 
	
		
			
				|  |  | -if [[ "${NUM_MAKE_JOBS}" -lt 4 ]] ; then
 | 
	
		
			
				|  |  | -  NUM_MAKE_JOBS=4
 | 
	
		
			
				|  |  | +if [[ "${NUM_MAKE_JOBS}" -lt 2 ]] ; then
 | 
	
		
			
				|  |  | +  NUM_MAKE_JOBS=2
 | 
	
		
			
				|  |  |  fi
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  DO_AUTOGEN=no
 | 
	
	
		
			
				|  | @@ -76,6 +80,8 @@ REGEN_DESCRIPTORS=no
 | 
	
		
			
				|  |  |  CORE_ONLY=no
 | 
	
		
			
				|  |  |  DO_XCODE_IOS_TESTS=yes
 | 
	
		
			
				|  |  |  DO_XCODE_OSX_TESTS=yes
 | 
	
		
			
				|  |  | +DO_XCODE_DEBUG=yes
 | 
	
		
			
				|  |  | +DO_XCODE_RELEASE=yes
 | 
	
		
			
				|  |  |  DO_OBJC_CONFORMANCE_TESTS=yes
 | 
	
		
			
				|  |  |  while [[ $# != 0 ]]; do
 | 
	
		
			
				|  |  |    case "${1}" in
 | 
	
	
		
			
				|  | @@ -109,6 +115,12 @@ while [[ $# != 0 ]]; do
 | 
	
		
			
				|  |  |      --skip-xcode-osx )
 | 
	
		
			
				|  |  |        DO_XCODE_OSX_TESTS=no
 | 
	
		
			
				|  |  |        ;;
 | 
	
		
			
				|  |  | +    --skip-xcode-debug )
 | 
	
		
			
				|  |  | +      DO_XCODE_DEBUG=no
 | 
	
		
			
				|  |  | +      ;;
 | 
	
		
			
				|  |  | +    --skip-xcode-release )
 | 
	
		
			
				|  |  | +      DO_XCODE_RELEASE=no
 | 
	
		
			
				|  |  | +      ;;
 | 
	
		
			
				|  |  |      --skip-objc-conformance )
 | 
	
		
			
				|  |  |        DO_OBJC_CONFORMANCE_TESTS=no
 | 
	
		
			
				|  |  |        ;;
 | 
	
	
		
			
				|  | @@ -151,8 +163,12 @@ if [[ "${DO_CLEAN}" == "yes" ]] ; then
 | 
	
		
			
				|  |  |          -project objectivec/ProtocolBuffers_iOS.xcodeproj
 | 
	
		
			
				|  |  |          -scheme ProtocolBuffers
 | 
	
		
			
				|  |  |      )
 | 
	
		
			
				|  |  | -  "${XCODEBUILD_CLEAN_BASE_IOS[@]}" -configuration Debug clean
 | 
	
		
			
				|  |  | -  "${XCODEBUILD_CLEAN_BASE_IOS[@]}" -configuration Release clean
 | 
	
		
			
				|  |  | +    if [[ "${DO_XCODE_DEBUG}" == "yes" ]] ; then
 | 
	
		
			
				|  |  | +      "${XCODEBUILD_CLEAN_BASE_IOS[@]}" -configuration Debug clean
 | 
	
		
			
				|  |  | +    fi
 | 
	
		
			
				|  |  | +    if [[ "${DO_XCODE_RELEASE}" == "yes" ]] ; then
 | 
	
		
			
				|  |  | +      "${XCODEBUILD_CLEAN_BASE_IOS[@]}" -configuration Release clean
 | 
	
		
			
				|  |  | +    fi
 | 
	
		
			
				|  |  |    fi
 | 
	
		
			
				|  |  |    if [[ "${DO_XCODE_OSX_TESTS}" == "yes" ]] ; then
 | 
	
		
			
				|  |  |      XCODEBUILD_CLEAN_BASE_OSX=(
 | 
	
	
		
			
				|  | @@ -160,8 +176,12 @@ if [[ "${DO_CLEAN}" == "yes" ]] ; then
 | 
	
		
			
				|  |  |          -project objectivec/ProtocolBuffers_OSX.xcodeproj
 | 
	
		
			
				|  |  |          -scheme ProtocolBuffers
 | 
	
		
			
				|  |  |      )
 | 
	
		
			
				|  |  | -  "${XCODEBUILD_CLEAN_BASE_OSX[@]}" -configuration Debug clean
 | 
	
		
			
				|  |  | -  "${XCODEBUILD_CLEAN_BASE_OSX[@]}" -configuration Release clean
 | 
	
		
			
				|  |  | +    if [[ "${DO_XCODE_DEBUG}" == "yes" ]] ; then
 | 
	
		
			
				|  |  | +      "${XCODEBUILD_CLEAN_BASE_OSX[@]}" -configuration Debug clean
 | 
	
		
			
				|  |  | +    fi
 | 
	
		
			
				|  |  | +    if [[ "${DO_XCODE_RELEASE}" == "yes" ]] ; then
 | 
	
		
			
				|  |  | +      "${XCODEBUILD_CLEAN_BASE_OSX[@]}" -configuration Release clean
 | 
	
		
			
				|  |  | +    fi
 | 
	
		
			
				|  |  |    fi
 | 
	
		
			
				|  |  |  fi
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -222,20 +242,20 @@ if [[ "${DO_XCODE_IOS_TESTS}" == "yes" ]] ; then
 | 
	
		
			
				|  |  |            -destination "platform=iOS Simulator,name=iPad Air,OS=9.0" # 64bit
 | 
	
		
			
				|  |  |        )
 | 
	
		
			
				|  |  |        ;;
 | 
	
		
			
				|  |  | -    7.3* )
 | 
	
		
			
				|  |  | +    7.2* )
 | 
	
		
			
				|  |  |        XCODEBUILD_TEST_BASE_IOS+=(
 | 
	
		
			
				|  |  |            -destination "platform=iOS Simulator,name=iPhone 4s,OS=8.1" # 32bit
 | 
	
		
			
				|  |  | -          -destination "platform=iOS Simulator,name=iPhone 6,OS=9.3" # 64bit
 | 
	
		
			
				|  |  | +          -destination "platform=iOS Simulator,name=iPhone 6,OS=9.2" # 64bit
 | 
	
		
			
				|  |  |            -destination "platform=iOS Simulator,name=iPad 2,OS=8.1" # 32bit
 | 
	
		
			
				|  |  | -          -destination "platform=iOS Simulator,name=iPad Air,OS=9.3" # 64bit
 | 
	
		
			
				|  |  | +          -destination "platform=iOS Simulator,name=iPad Air,OS=9.2" # 64bit
 | 
	
		
			
				|  |  |        )
 | 
	
		
			
				|  |  |        ;;
 | 
	
		
			
				|  |  | -    7.* )
 | 
	
		
			
				|  |  | +    7.3* )
 | 
	
		
			
				|  |  |        XCODEBUILD_TEST_BASE_IOS+=(
 | 
	
		
			
				|  |  |            -destination "platform=iOS Simulator,name=iPhone 4s,OS=8.1" # 32bit
 | 
	
		
			
				|  |  | -          -destination "platform=iOS Simulator,name=iPhone 6,OS=9.2" # 64bit
 | 
	
		
			
				|  |  | +          -destination "platform=iOS Simulator,name=iPhone 6,OS=9.3" # 64bit
 | 
	
		
			
				|  |  |            -destination "platform=iOS Simulator,name=iPad 2,OS=8.1" # 32bit
 | 
	
		
			
				|  |  | -          -destination "platform=iOS Simulator,name=iPad Air,OS=9.2" # 64bit
 | 
	
		
			
				|  |  | +          -destination "platform=iOS Simulator,name=iPad Air,OS=9.3" # 64bit
 | 
	
		
			
				|  |  |        )
 | 
	
		
			
				|  |  |        ;;
 | 
	
		
			
				|  |  |      * )
 | 
	
	
		
			
				|  | @@ -243,10 +263,14 @@ if [[ "${DO_XCODE_IOS_TESTS}" == "yes" ]] ; then
 | 
	
		
			
				|  |  |        exit 2
 | 
	
		
			
				|  |  |        ;;
 | 
	
		
			
				|  |  |    esac
 | 
	
		
			
				|  |  | -  header "Doing Xcode iOS build/tests - Debug"
 | 
	
		
			
				|  |  | -  "${XCODEBUILD_TEST_BASE_IOS[@]}" -configuration Debug test
 | 
	
		
			
				|  |  | -  header "Doing Xcode iOS build/tests - Release"
 | 
	
		
			
				|  |  | -  "${XCODEBUILD_TEST_BASE_IOS[@]}" -configuration Release test
 | 
	
		
			
				|  |  | +  if [[ "${DO_XCODE_DEBUG}" == "yes" ]] ; then
 | 
	
		
			
				|  |  | +    header "Doing Xcode iOS build/tests - Debug"
 | 
	
		
			
				|  |  | +    "${XCODEBUILD_TEST_BASE_IOS[@]}" -configuration Debug test
 | 
	
		
			
				|  |  | +  fi
 | 
	
		
			
				|  |  | +  if [[ "${DO_XCODE_RELEASE}" == "yes" ]] ; then
 | 
	
		
			
				|  |  | +    header "Doing Xcode iOS build/tests - Release"
 | 
	
		
			
				|  |  | +    "${XCODEBUILD_TEST_BASE_IOS[@]}" -configuration Release test
 | 
	
		
			
				|  |  | +  fi
 | 
	
		
			
				|  |  |    # Don't leave the simulator in the developer's face.
 | 
	
		
			
				|  |  |    killall "${IOS_SIMULATOR_NAME}"
 | 
	
		
			
				|  |  |  fi
 | 
	
	
		
			
				|  | @@ -258,13 +282,18 @@ if [[ "${DO_XCODE_OSX_TESTS}" == "yes" ]] ; then
 | 
	
		
			
				|  |  |        # Since the ObjC 2.0 Runtime is required, 32bit OS X isn't supported.
 | 
	
		
			
				|  |  |        -destination "platform=OS X,arch=x86_64" # 64bit
 | 
	
		
			
				|  |  |    )
 | 
	
		
			
				|  |  | -  header "Doing Xcode OS X build/tests - Debug"
 | 
	
		
			
				|  |  | -  "${XCODEBUILD_TEST_BASE_OSX[@]}" -configuration Debug test
 | 
	
		
			
				|  |  | -  header "Doing Xcode OS X build/tests - Release"
 | 
	
		
			
				|  |  | -  "${XCODEBUILD_TEST_BASE_OSX[@]}" -configuration Release test
 | 
	
		
			
				|  |  | +  if [[ "${DO_XCODE_DEBUG}" == "yes" ]] ; then
 | 
	
		
			
				|  |  | +    header "Doing Xcode OS X build/tests - Debug"
 | 
	
		
			
				|  |  | +    "${XCODEBUILD_TEST_BASE_OSX[@]}" -configuration Debug test
 | 
	
		
			
				|  |  | +  fi
 | 
	
		
			
				|  |  | +  if [[ "${DO_XCODE_RELEASE}" == "yes" ]] ; then
 | 
	
		
			
				|  |  | +    header "Doing Xcode OS X build/tests - Release"
 | 
	
		
			
				|  |  | +    "${XCODEBUILD_TEST_BASE_OSX[@]}" -configuration Release test
 | 
	
		
			
				|  |  | +  fi
 | 
	
		
			
				|  |  |  fi
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  if [[ "${DO_OBJC_CONFORMANCE_TESTS}" == "yes" ]] ; then
 | 
	
		
			
				|  |  | +  header "Running ObjC Conformance Tests"
 | 
	
		
			
				|  |  |    cd conformance
 | 
	
		
			
				|  |  |    wrapped_make -j "${NUM_MAKE_JOBS}" test_objc
 | 
	
		
			
				|  |  |    cd ..
 |