aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/contrib/makefile/compile_ios_protobuf.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tensorflow/contrib/makefile/compile_ios_protobuf.sh')
-rwxr-xr-xtensorflow/contrib/makefile/compile_ios_protobuf.sh369
1 files changed, 213 insertions, 156 deletions
diff --git a/tensorflow/contrib/makefile/compile_ios_protobuf.sh b/tensorflow/contrib/makefile/compile_ios_protobuf.sh
index 4056db18a7..43e5809dd2 100755
--- a/tensorflow/contrib/makefile/compile_ios_protobuf.sh
+++ b/tensorflow/contrib/makefile/compile_ios_protobuf.sh
@@ -21,10 +21,28 @@ if [[ -n MACOSX_DEPLOYMENT_TARGET ]]; then
export MACOSX_DEPLOYMENT_TARGET=$(sw_vers -productVersion)
fi
-SCRIPT_DIR=$(dirname $0)
+usage() {
+ echo "Usage: $(basename "$0") [-a]"
+ echo "-a [build_arch] build for specified arch comma separate for multiple archs (eg: x86_64,arm64)"
+ echo "default arch i386, x86_64, armv7, armv7s, arm64"
+ exit 1
+}
+
+BUILD_TARGET="i386 x86_64 armv7 armv7s arm64"
+while getopts "a:" opt_name; do
+ case "$opt_name" in
+ a) BUILD_TARGET="${OPTARG}";;
+ *) usage;;
+ esac
+done
+shift $((OPTIND - 1))
+
+IFS=' ' read -r -a build_targets <<< "${BUILD_TARGET}"
+
+SCRIPT_DIR=$(cd `dirname $0` && pwd)
source "${SCRIPT_DIR}/build_helper.subr"
-cd tensorflow/contrib/makefile
+cd ${SCRIPT_DIR}
HOST_GENDIR="$(pwd)/gen/protobuf-host"
mkdir -p "${HOST_GENDIR}"
@@ -64,6 +82,10 @@ else
echo "protoc found. Skip building host tools."
fi
+# Remove old libs
+rm -f ${LIBDIR}/libprotobuf.a
+rm -f ${LIBDIR}/libprotobuf-lite.a
+
./autogen.sh
if [ $? -ne 0 ]
then
@@ -71,157 +93,192 @@ then
exit 1
fi
-make distclean
-./configure \
---host=i386-apple-${OSX_VERSION} \
---disable-shared \
---enable-cross-compile \
---with-protoc="${PROTOC_PATH}" \
---prefix=${LIBDIR}/iossim_386 \
---exec-prefix=${LIBDIR}/iossim_386 \
-"CFLAGS=${CFLAGS} \
--mios-simulator-version-min=${MIN_SDK_VERSION} \
--arch i386 \
--fembed-bitcode \
--isysroot ${IPHONESIMULATOR_SYSROOT}" \
-"CXX=${CXX}" \
-"CXXFLAGS=${CXXFLAGS} \
--mios-simulator-version-min=${MIN_SDK_VERSION} \
--arch i386 \
--fembed-bitcode \
--isysroot \
-${IPHONESIMULATOR_SYSROOT}" \
-LDFLAGS="-arch i386 \
--fembed-bitcode \
--mios-simulator-version-min=${MIN_SDK_VERSION} \
-${LDFLAGS} \
--L${IPHONESIMULATOR_SYSROOT}/usr/lib/ \
--L${IPHONESIMULATOR_SYSROOT}/usr/lib/system" \
-"LIBS=${LIBS}"
-make -j"${JOB_COUNT}"
-make install
-
-make distclean
-./configure \
---host=x86_64-apple-${OSX_VERSION} \
---disable-shared \
---enable-cross-compile \
---with-protoc="${PROTOC_PATH}" \
---prefix=${LIBDIR}/iossim_x86_64 \
---exec-prefix=${LIBDIR}/iossim_x86_64 \
-"CFLAGS=${CFLAGS} \
--mios-simulator-version-min=${MIN_SDK_VERSION} \
--arch x86_64 \
--fembed-bitcode \
--isysroot ${IPHONESIMULATOR_SYSROOT}" \
-"CXX=${CXX}" \
-"CXXFLAGS=${CXXFLAGS} \
--mios-simulator-version-min=${MIN_SDK_VERSION} \
--arch x86_64 \
--fembed-bitcode \
--isysroot \
-${IPHONESIMULATOR_SYSROOT}" \
-LDFLAGS="-arch x86_64 \
--fembed-bitcode \
--mios-simulator-version-min=${MIN_SDK_VERSION} \
-${LDFLAGS} \
--L${IPHONESIMULATOR_SYSROOT}/usr/lib/ \
--L${IPHONESIMULATOR_SYSROOT}/usr/lib/system" \
-"LIBS=${LIBS}"
-make -j"${JOB_COUNT}"
-make install
-
-make distclean
-./configure \
---host=armv7-apple-${OSX_VERSION} \
---with-protoc="${PROTOC_PATH}" \
---disable-shared \
---prefix=${LIBDIR}/ios_arm7 \
---exec-prefix=${LIBDIR}/ios_arm7 \
-"CFLAGS=${CFLAGS} \
--miphoneos-version-min=${MIN_SDK_VERSION} \
--arch armv7 \
--fembed-bitcode \
--isysroot ${IPHONEOS_SYSROOT}" \
-"CXX=${CXX}" \
-"CXXFLAGS=${CXXFLAGS} \
--miphoneos-version-min=${MIN_SDK_VERSION} \
--arch armv7 \
--fembed-bitcode \
--isysroot ${IPHONEOS_SYSROOT}" \
-LDFLAGS="-arch armv7 \
--fembed-bitcode \
--miphoneos-version-min=${MIN_SDK_VERSION} \
-${LDFLAGS}" \
-"LIBS=${LIBS}"
-make -j"${JOB_COUNT}"
-make install
-
-make distclean
-./configure \
---host=armv7s-apple-${OSX_VERSION} \
---with-protoc="${PROTOC_PATH}" \
---disable-shared \
---prefix=${LIBDIR}/ios_arm7s \
---exec-prefix=${LIBDIR}/ios_arm7s \
-"CFLAGS=${CFLAGS} \
--miphoneos-version-min=${MIN_SDK_VERSION} \
--arch armv7s \
--fembed-bitcode \
--isysroot ${IPHONEOS_SYSROOT}" \
-"CXX=${CXX}" \
-"CXXFLAGS=${CXXFLAGS} \
--miphoneos-version-min=${MIN_SDK_VERSION} \
--arch armv7s \
--fembed-bitcode \
--isysroot ${IPHONEOS_SYSROOT}" \
-LDFLAGS="-arch armv7s \
--fembed-bitcode \
--miphoneos-version-min=${MIN_SDK_VERSION} \
-${LDFLAGS}" \
-"LIBS=${LIBS}"
-make -j"${JOB_COUNT}"
-make install
-
-make distclean
-./configure \
---host=arm \
---with-protoc="${PROTOC_PATH}" \
---disable-shared \
---prefix=${LIBDIR}/ios_arm64 \
---exec-prefix=${LIBDIR}/ios_arm64 \
-"CFLAGS=${CFLAGS} \
--miphoneos-version-min=${MIN_SDK_VERSION} \
--arch arm64 \
--fembed-bitcode \
--isysroot ${IPHONEOS_SYSROOT}" \
-"CXXFLAGS=${CXXFLAGS} \
--miphoneos-version-min=${MIN_SDK_VERSION} \
--arch arm64 \
--fembed-bitcode \
--isysroot ${IPHONEOS_SYSROOT}" \
-LDFLAGS="-arch arm64 \
--fembed-bitcode \
--miphoneos-version-min=${MIN_SDK_VERSION} \
-${LDFLAGS}" \
-"LIBS=${LIBS}"
-make -j"${JOB_COUNT}"
-make install
-
-lipo \
-${LIBDIR}/iossim_386/lib/libprotobuf.a \
-${LIBDIR}/iossim_x86_64/lib/libprotobuf.a \
-${LIBDIR}/ios_arm7/lib/libprotobuf.a \
-${LIBDIR}/ios_arm7s/lib/libprotobuf.a \
-${LIBDIR}/ios_arm64/lib/libprotobuf.a \
--create \
--output ${LIBDIR}/libprotobuf.a
-
-lipo \
-${LIBDIR}/iossim_386/lib/libprotobuf-lite.a \
-${LIBDIR}/iossim_x86_64/lib/libprotobuf-lite.a \
-${LIBDIR}/ios_arm7/lib/libprotobuf-lite.a \
-${LIBDIR}/ios_arm7s/lib/libprotobuf-lite.a \
-${LIBDIR}/ios_arm64/lib/libprotobuf-lite.a \
--create \
--output ${LIBDIR}/libprotobuf-lite.a
+package_pb_library() {
+ pb_libs="${LIBDIR}/${1}/lib/libprotobuf.a"
+ if [ -f "${LIBDIR}/libprotobuf.a" ]; then
+ pb_libs="$pb_libs ${LIBDIR}/libprotobuf.a"
+ fi
+ lipo \
+ $pb_libs \
+ -create \
+ -output ${LIBDIR}/libprotobuf.a
+
+ pblite_libs="${LIBDIR}/${1}/lib/libprotobuf-lite.a"
+ if [ -f "${LIBDIR}/libprotobuf-lite.a" ]; then
+ pblite_libs="$pblite_libs ${LIBDIR}/libprotobuf-lite.a"
+ fi
+ lipo \
+ $pblite_libs \
+ -create \
+ -output ${LIBDIR}/libprotobuf-lite.a
+}
+
+build_target() {
+case "$1" in
+ i386) make distclean
+ ./configure \
+ --host=i386-apple-${OSX_VERSION} \
+ --disable-shared \
+ --enable-cross-compile \
+ --with-protoc="${PROTOC_PATH}" \
+ --prefix=${LIBDIR}/iossim_386 \
+ --exec-prefix=${LIBDIR}/iossim_386 \
+ "CFLAGS=${CFLAGS} \
+ -mios-simulator-version-min=${MIN_SDK_VERSION} \
+ -arch i386 \
+ -fembed-bitcode \
+ -isysroot ${IPHONESIMULATOR_SYSROOT}" \
+ "CXX=${CXX}" \
+ "CXXFLAGS=${CXXFLAGS} \
+ -mios-simulator-version-min=${MIN_SDK_VERSION} \
+ -arch i386 \
+ -fembed-bitcode \
+ -isysroot \
+ ${IPHONESIMULATOR_SYSROOT}" \
+ LDFLAGS="-arch i386 \
+ -fembed-bitcode \
+ -mios-simulator-version-min=${MIN_SDK_VERSION} \
+ ${LDFLAGS} \
+ -L${IPHONESIMULATOR_SYSROOT}/usr/lib/ \
+ -L${IPHONESIMULATOR_SYSROOT}/usr/lib/system" \
+ "LIBS=${LIBS}"
+ make -j"${JOB_COUNT}"
+ make install
+
+ package_pb_library "iossim_386"
+ ;;
+
+ x86_64) make distclean
+ ./configure \
+ --host=x86_64-apple-${OSX_VERSION} \
+ --disable-shared \
+ --enable-cross-compile \
+ --with-protoc="${PROTOC_PATH}" \
+ --prefix=${LIBDIR}/iossim_x86_64 \
+ --exec-prefix=${LIBDIR}/iossim_x86_64 \
+ "CFLAGS=${CFLAGS} \
+ -mios-simulator-version-min=${MIN_SDK_VERSION} \
+ -arch x86_64 \
+ -fembed-bitcode \
+ -isysroot ${IPHONESIMULATOR_SYSROOT}" \
+ "CXX=${CXX}" \
+ "CXXFLAGS=${CXXFLAGS} \
+ -mios-simulator-version-min=${MIN_SDK_VERSION} \
+ -arch x86_64 \
+ -fembed-bitcode \
+ -isysroot \
+ ${IPHONESIMULATOR_SYSROOT}" \
+ LDFLAGS="-arch x86_64 \
+ -fembed-bitcode \
+ -mios-simulator-version-min=${MIN_SDK_VERSION} \
+ ${LDFLAGS} \
+ -L${IPHONESIMULATOR_SYSROOT}/usr/lib/ \
+ -L${IPHONESIMULATOR_SYSROOT}/usr/lib/system" \
+ "LIBS=${LIBS}"
+ make -j"${JOB_COUNT}"
+ make install
+
+ package_pb_library "iossim_x86_64"
+ ;;
+
+ armv7) make distclean
+ ./configure \
+ --host=armv7-apple-${OSX_VERSION} \
+ --with-protoc="${PROTOC_PATH}" \
+ --disable-shared \
+ --prefix=${LIBDIR}/ios_arm7 \
+ --exec-prefix=${LIBDIR}/ios_arm7 \
+ "CFLAGS=${CFLAGS} \
+ -miphoneos-version-min=${MIN_SDK_VERSION} \
+ -arch armv7 \
+ -fembed-bitcode \
+ -isysroot ${IPHONEOS_SYSROOT}" \
+ "CXX=${CXX}" \
+ "CXXFLAGS=${CXXFLAGS} \
+ -miphoneos-version-min=${MIN_SDK_VERSION} \
+ -arch armv7 \
+ -fembed-bitcode \
+ -isysroot ${IPHONEOS_SYSROOT}" \
+ LDFLAGS="-arch armv7 \
+ -fembed-bitcode \
+ -miphoneos-version-min=${MIN_SDK_VERSION} \
+ ${LDFLAGS}" \
+ "LIBS=${LIBS}"
+ make -j"${JOB_COUNT}"
+ make install
+
+ package_pb_library "ios_arm7"
+ ;;
+
+ armv7s) make distclean
+ ./configure \
+ --host=armv7s-apple-${OSX_VERSION} \
+ --with-protoc="${PROTOC_PATH}" \
+ --disable-shared \
+ --prefix=${LIBDIR}/ios_arm7s \
+ --exec-prefix=${LIBDIR}/ios_arm7s \
+ "CFLAGS=${CFLAGS} \
+ -miphoneos-version-min=${MIN_SDK_VERSION} \
+ -arch armv7s \
+ -fembed-bitcode \
+ -isysroot ${IPHONEOS_SYSROOT}" \
+ "CXX=${CXX}" \
+ "CXXFLAGS=${CXXFLAGS} \
+ -miphoneos-version-min=${MIN_SDK_VERSION} \
+ -arch armv7s \
+ -fembed-bitcode \
+ -isysroot ${IPHONEOS_SYSROOT}" \
+ LDFLAGS="-arch armv7s \
+ -fembed-bitcode \
+ -miphoneos-version-min=${MIN_SDK_VERSION} \
+ ${LDFLAGS}" \
+ "LIBS=${LIBS}"
+ make -j"${JOB_COUNT}"
+ make install
+
+ package_pb_library "ios_arm7s"
+ ;;
+
+ arm64) make distclean
+ ./configure \
+ --host=arm \
+ --with-protoc="${PROTOC_PATH}" \
+ --disable-shared \
+ --prefix=${LIBDIR}/ios_arm64 \
+ --exec-prefix=${LIBDIR}/ios_arm64 \
+ "CFLAGS=${CFLAGS} \
+ -miphoneos-version-min=${MIN_SDK_VERSION} \
+ -arch arm64 \
+ -fembed-bitcode \
+ -isysroot ${IPHONEOS_SYSROOT}" \
+ "CXXFLAGS=${CXXFLAGS} \
+ -miphoneos-version-min=${MIN_SDK_VERSION} \
+ -arch arm64 \
+ -fembed-bitcode \
+ -isysroot ${IPHONEOS_SYSROOT}" \
+ LDFLAGS="-arch arm64 \
+ -fembed-bitcode \
+ -miphoneos-version-min=${MIN_SDK_VERSION} \
+ ${LDFLAGS}" \
+ "LIBS=${LIBS}"
+ make -j"${JOB_COUNT}"
+ make install
+
+ package_pb_library "ios_arm64"
+ ;;
+ *)
+ echo "Unknown ARCH"
+ exit 1
+ ;;
+esac
+}
+
+for build_element in "${build_targets[@]}"
+do
+ echo "$build_element"
+ build_target "$build_element"
+done
+
+file ${LIBDIR}/libprotobuf.a
+file ${LIBDIR}/libprotobuf-lite.a
+echo "Done building and packaging the libraries"