Skip to content

Commit

Permalink
Autodetect macOSX SDK, improve screen output
Browse files Browse the repository at this point in the history
  • Loading branch information
Jan-E committed Apr 13, 2021
1 parent ddb9391 commit f9f6d1f
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 21 deletions.
40 changes: 37 additions & 3 deletions catalyst.sh
Original file line number Diff line number Diff line change
Expand Up @@ -202,13 +202,47 @@ rm -rf ./openssl_iphoneos/lib
OSX_MIN_VERSION="10.15"
OSX_SDK_PLATFORM="MacOSX"
OSX_SDK_VERSION="11.1"
echo CFLAGS="-target x86_64-apple-ios13.0-macabi" ./iSSH2cat.sh --platform=iphoneos --target=macosx --min-version=$OSX_MIN_VERSION --archs="x86_64" --sdk-version=$SDK_VERSION
CFLAGS="-target x86_64-apple-ios13.0-macabi" ./iSSH2cat.sh --platform=iphoneos --target=macosx --min-version=$OSX_MIN_VERSION --archs="x86_64" --sdk-version=$SDK_VERSION
echo "Building fat files"
mkdir -p ./libssh2_iphoneos/lib
mkdir -p ./openssl_iphoneos/lib
lipo -create ${TMPDIR}iSSH2/libssh2-$LIBSSH_VERSION/${OSX_SDK_PLATFORM}_${OSX_MIN_VERSION}-x86_64/install/lib/libssh2.a ${TMPDIR}iSSH2/libssh2-$LIBSSH_VERSION/iPhoneOS_$SDK_VERSION-arm64/install/lib/libssh2.a ${TMPDIR}iSSH2/libssh2-$LIBSSH_VERSION/iPhoneOS_$SDK_VERSION-arm64e/install/lib/libssh2.a ${TMPDIR}iSSH2/libssh2-$LIBSSH_VERSION/iPhoneOS_$SDK_VERSION-armv7/install/lib/libssh2.a ${TMPDIR}iSSH2/libssh2-$LIBSSH_VERSION/iPhoneOS_$SDK_VERSION-armv7s/install/lib/libssh2.a ${TMPDIR}iSSH2/libssh2-$LIBSSH_VERSION/iPhoneSimulator_$SDK_VERSION-i386/install/lib/libssh2.a -output ./libssh2_iphoneos/lib/libssh2.a
lipo -create ${TMPDIR}iSSH2/libssh2-$LIBSSH_VERSION/${OSX_SDK_PLATFORM}_${OSX_MIN_VERSION}-x86_64/install/lib/libssh2.a \
${TMPDIR}iSSH2/libssh2-$LIBSSH_VERSION/iPhoneOS_$SDK_VERSION-arm64/install/lib/libssh2.a \
${TMPDIR}iSSH2/libssh2-$LIBSSH_VERSION/iPhoneOS_$SDK_VERSION-arm64e/install/lib/libssh2.a \
${TMPDIR}iSSH2/libssh2-$LIBSSH_VERSION/iPhoneOS_$SDK_VERSION-armv7/install/lib/libssh2.a \
${TMPDIR}iSSH2/libssh2-$LIBSSH_VERSION/iPhoneOS_$SDK_VERSION-armv7s/install/lib/libssh2.a \
${TMPDIR}iSSH2/libssh2-$LIBSSH_VERSION/iPhoneSimulator_$SDK_VERSION-i386/install/lib/libssh2.a -output ./libssh2_iphoneos/lib/libssh2.a
echo lipo -create \${TMPDIR}iSSH2/libssh2-$LIBSSH_VERSION/${OSX_SDK_PLATFORM}_${OSX_MIN_VERSION}-x86_64/install/lib/libssh2.a \\
echo \${TMPDIR}iSSH2/libssh2-$LIBSSH_VERSION/iPhoneOS_$SDK_VERSION-arm64/install/lib/libssh2.a \\
echo \${TMPDIR}iSSH2/libssh2-$LIBSSH_VERSION/iPhoneOS_$SDK_VERSION-arm64e/install/lib/libssh2.a \\
echo \${TMPDIR}iSSH2/libssh2-$LIBSSH_VERSION/iPhoneOS_$SDK_VERSION-armv7/install/lib/libssh2.a \\
echo \${TMPDIR}iSSH2/libssh2-$LIBSSH_VERSION/iPhoneOS_$SDK_VERSION-armv7s/install/lib/libssh2.a \\
echo \${TMPDIR}iSSH2/libssh2-$LIBSSH_VERSION/iPhoneSimulator_$SDK_VERSION-i386/install/lib/libssh2.a -output ./libssh2_iphoneos/lib/libssh2.a
lipo -info ./libssh2_iphoneos/lib/libssh2.a
lipo -create ${TMPDIR}iSSH2/openssl-$LIBSSL_VERSION/${OSX_SDK_PLATFORM}_${OSX_MIN_VERSION}-x86_64/install/lib/libcrypto.a ${TMPDIR}iSSH2/openssl-$LIBSSL_VERSION/iPhoneOS_$SDK_VERSION-arm64/libcrypto.a ${TMPDIR}iSSH2/openssl-$LIBSSL_VERSION/iPhoneOS_$SDK_VERSION-arm64e/libcrypto.a ${TMPDIR}iSSH2/openssl-$LIBSSL_VERSION/iPhoneOS_$SDK_VERSION-armv7/libcrypto.a ${TMPDIR}iSSH2/openssl-$LIBSSL_VERSION/iPhoneOS_$SDK_VERSION-armv7s/libcrypto.a ${TMPDIR}iSSH2/openssl-$LIBSSL_VERSION/iPhoneSimulator_$SDK_VERSION-i386/libcrypto.a -output ./openssl_iphoneos/lib/libcrypto.a
lipo -create ${TMPDIR}iSSH2/openssl-$LIBSSL_VERSION/${OSX_SDK_PLATFORM}_${OSX_MIN_VERSION}-x86_64/install/lib/libcrypto.a \
${TMPDIR}iSSH2/openssl-$LIBSSL_VERSION/iPhoneOS_$SDK_VERSION-arm64/libcrypto.a \
${TMPDIR}iSSH2/openssl-$LIBSSL_VERSION/iPhoneOS_$SDK_VERSION-arm64e/libcrypto.a \
${TMPDIR}iSSH2/openssl-$LIBSSL_VERSION/iPhoneOS_$SDK_VERSION-armv7/libcrypto.a \
${TMPDIR}iSSH2/openssl-$LIBSSL_VERSION/iPhoneOS_$SDK_VERSION-armv7s/libcrypto.a \
${TMPDIR}iSSH2/openssl-$LIBSSL_VERSION/iPhoneSimulator_$SDK_VERSION-i386/libcrypto.a -output ./openssl_iphoneos/lib/libcrypto.a
echo lipo -create \${TMPDIR}iSSH2/openssl-$LIBSSL_VERSION/${OSX_SDK_PLATFORM}_${OSX_MIN_VERSION}-x86_64/install/lib/libcrypto.a \\
echo \${TMPDIR}iSSH2/openssl-$LIBSSL_VERSION/iPhoneOS_$SDK_VERSION-arm64/libcrypto.a \\
echo \${TMPDIR}iSSH2/openssl-$LIBSSL_VERSION/iPhoneOS_$SDK_VERSION-arm64e/libcrypto.a \\
echo \${TMPDIR}iSSH2/openssl-$LIBSSL_VERSION/iPhoneOS_$SDK_VERSION-armv7/libcrypto.a \\
echo \${TMPDIR}iSSH2/openssl-$LIBSSL_VERSION/iPhoneOS_$SDK_VERSION-armv7s/libcrypto.a \\
echo \${TMPDIR}iSSH2/openssl-$LIBSSL_VERSION/iPhoneSimulator_$SDK_VERSION-i386/libcrypto.a -output ./openssl_iphoneos/lib/libcrypto.a
lipo -info ./openssl_iphoneos/lib/libcrypto.a
lipo -create ${TMPDIR}iSSH2/openssl-$LIBSSL_VERSION/${OSX_SDK_PLATFORM}_${OSX_MIN_VERSION}-x86_64/install/lib/libssl.a ${TMPDIR}iSSH2/openssl-$LIBSSL_VERSION/iPhoneOS_$SDK_VERSION-arm64/libssl.a ${TMPDIR}iSSH2/openssl-$LIBSSL_VERSION/iPhoneOS_$SDK_VERSION-arm64e/libssl.a ${TMPDIR}iSSH2/openssl-$LIBSSL_VERSION/iPhoneOS_$SDK_VERSION-armv7/libssl.a ${TMPDIR}iSSH2/openssl-$LIBSSL_VERSION/iPhoneOS_$SDK_VERSION-armv7s/libssl.a ${TMPDIR}iSSH2/openssl-$LIBSSL_VERSION/iPhoneSimulator_$SDK_VERSION-i386/libssl.a -output ./openssl_iphoneos/lib/libssl.a
lipo -create ${TMPDIR}iSSH2/openssl-$LIBSSL_VERSION/${OSX_SDK_PLATFORM}_${OSX_MIN_VERSION}-x86_64/install/lib/libssl.a \
${TMPDIR}iSSH2/openssl-$LIBSSL_VERSION/iPhoneOS_$SDK_VERSION-arm64/libssl.a \
${TMPDIR}iSSH2/openssl-$LIBSSL_VERSION/iPhoneOS_$SDK_VERSION-arm64e/libssl.a \
${TMPDIR}iSSH2/openssl-$LIBSSL_VERSION/iPhoneOS_$SDK_VERSION-armv7/libssl.a \
${TMPDIR}iSSH2/openssl-$LIBSSL_VERSION/iPhoneOS_$SDK_VERSION-armv7s/libssl.a \
${TMPDIR}iSSH2/openssl-$LIBSSL_VERSION/iPhoneSimulator_$SDK_VERSION-i386/libssl.a -output ./openssl_iphoneos/lib/libssl.a
echo lipo -create \${TMPDIR}iSSH2/openssl-$LIBSSL_VERSION/${OSX_SDK_PLATFORM}_${OSX_MIN_VERSION}-x86_64/install/lib/libssl.a \\
echo \${TMPDIR}iSSH2/openssl-$LIBSSL_VERSION/iPhoneOS_$SDK_VERSION-arm64/libssl.a \\
echo \${TMPDIR}iSSH2/openssl-$LIBSSL_VERSION/iPhoneOS_$SDK_VERSION-arm64e/libssl.a \\
echo \${TMPDIR}iSSH2/openssl-$LIBSSL_VERSION/iPhoneOS_$SDK_VERSION-armv7/libssl.a \\
echo \${TMPDIR}iSSH2/openssl-$LIBSSL_VERSION/iPhoneOS_$SDK_VERSION-armv7s/libssl.a \\
echo \${TMPDIR}iSSH2/openssl-$LIBSSL_VERSION/iPhoneSimulator_$SDK_VERSION-i386/libssl.a -output ./openssl_iphoneos/lib/libssl.a
lipo -info ./openssl_iphoneos/lib/libssl.a
11 changes: 5 additions & 6 deletions iSSH2cat-libssh2.sh
Original file line number Diff line number Diff line change
Expand Up @@ -111,15 +111,15 @@ echo OPENSSLDIR = $OPENSSLDIR
echo ./configure --host=$HOST --prefix="$PLATFORM_OUT" --disable-debug --disable-dependency-tracking --disable-silent-rules --disable-examples-build --without-libz $CRYPTO_BACKEND_OPTION --with-libssl-prefix=$TMPDIR/iSSH2/openssl-$LIBSSL_VERSION/MacOSX_$MIN_VERSION-x86_64/install --disable-shared --enable-static
#bash

./configure --host=$HOST --prefix="$PLATFORM_OUT" --disable-debug --disable-dependency-tracking --disable-silent-rules --disable-examples-build --without-libz $CRYPTO_BACKEND_OPTION --with-libssl-prefix=$TMPDIR/iSSH2/openssl-$LIBSSL_VERSION/MacOSX_$MIN_VERSION-x86_64/install --disable-shared --enable-static
./configure --host=$HOST --prefix="$PLATFORM_OUT" --disable-debug --disable-dependency-tracking --disable-silent-rules --disable-examples-build --without-libz $CRYPTO_BACKEND_OPTION --with-libssl-prefix=$TMPDIR/iSSH2/openssl-$LIBSSL_VERSION/MacOSX_$MIN_VERSION-x86_64/install --disable-shared --enable-static >> "$LOG" 2>&1
# if [[ "$ARCH" != "x86_64" ]]; then
# perl -pi.bak -e "s/-miphoneos-version-min=10.15/-target $ARCH-apple-ios13.0-macabi -miphoneos-version-min=10.15/gi" src/Makefile
# perl -pi.bak -e "s/-miphoneos-version-min=10.15/-target $ARCH-apple-ios13.0-macabi -miphoneos-version-min=10.15/gi" tests/Makefile
# perl -pi.bak -e "s/-miphoneos-version-min=10.15/-target $ARCH-apple-ios13.0-macabi -miphoneos-version-min=10.15/gi" Makefile
# fi
#bash
make
make -j "$BUILD_THREADS" install
make >> "$LOG" 2>&1
make -j "$BUILD_THREADS" install >> "$LOG" 2>&1

echo "- $PLATFORM $ARCH done!"
fi
Expand All @@ -131,10 +131,9 @@ if [[ -f "$OSX_LIPO_SSH2" ]] && [[ "$ARCH" != "x86_64" ]]; then
echo "todo: lipo -create $OSX_LIPO_SSH2 $LIPO_SSH2 -output $BASEPATH/libssh2_$SDK_PLATFORM/lib/libssh2.a"
touch "$BASEPATH/libssh2_$SDK_PLATFORM/lib/libssh2.a"
else
echo "todo: lipo -create $LIPO_SSH2 -output $BASEPATH/libssh2_$SDK_PLATFORM/lib/libssh2.a"
touch "$BASEPATH/libssh2_$SDK_PLATFORM/lib/libssh2.a"
echo "todo: lipo -create $LIPO_SSH2 -output $BASEPATH/libssh2_iphoneos/lib/libssh2.a"
fi

importHeaders "$LIBSSHSRC/include/" "$BASEPATH/libssh2_$SDK_PLATFORM/include"

echo "Building done."
echo "Building Mac Catalyst libssh2 lib done."
31 changes: 19 additions & 12 deletions iSSH2cat-openssl.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash
#########
#################################### #####################################
#################################### iSSH2 #####################################
# ######### #
# Copyright (c) 2013 Tommaso Madonia. All rights reserved. #
# #
Expand Down Expand Up @@ -70,16 +70,16 @@ do
if [[ "$ARCH" == "x86_64" ]] && [[ "$MIN_VERSION" == "10.15" ]]; then
HOST="darwin64-x86_64-cc"
SDK_PLATFORM="macosx"
SDK_VERSION="11.1"
MIN_VERSION="10.15"
CONF="no-shared"
SDK_VERSION=`xcrun --sdk $SDK_PLATFORM --show-sdk-version`
PLATFORM="$(platformName "$SDK_PLATFORM" "$ARCH")"
OPENSSLDIR="$LIBSSLDIR/${PLATFORM}_$MIN_VERSION-$ARCH"
PLATFORM_OUT="$LIBSSLDIR/${PLATFORM}_$MIN_VERSION-$ARCH/install"
else
HOST="iphoneos-cross"
if [[ "${ARCH}" == *64 ]] || [[ "${ARCH}" == arm64* ]]; then
CONF="$CONF enable-ec_nistp_64_gcc_128"
fi
fi
if [[ "${ARCH}" == *64 ]] || [[ "${ARCH}" == arm64* ]]; then
CONF="$CONF enable-ec_nistp_64_gcc_128"
fi

export CROSS_TOP="$DEVELOPER/Platforms/$PLATFORM.platform/Developer"
Expand All @@ -88,16 +88,19 @@ do
export CC="$CLANG -arch $ARCH"

CONF="$CONF -m$SDK_PLATFORM-version-min=$MIN_VERSION $EMBED_BITCODE"
./Configure $HOST --prefix=$PLATFORM_OUT $CONF >> "$LOG" 2>&1
./Configure $HOST --prefix=$PLATFORM_OUT $CONF

if [[ "$ARCH" == "x86_64" ]]; then
sed -ie "s!^CFLAG=!CFLAG=-isysroot $SDKROOT !" "Makefile"
if [[ "$MIN_VERSION" == "10.15" ]]; then
echo "Building OpenSSL $LIBSSL_VERSION $ARCH for $HOST, please wait..."
fi
fi
make depend
make -j "$BUILD_THREADS" build_libs
make depend >> "$LOG" 2>&1
make -j "$BUILD_THREADS" build_libs >> "$LOG" 2>&1
if [[ "$ARCH" == "x86_64" ]] && [[ "$MIN_VERSION" == "10.15" ]]; then
mkdir -p $PLATFORM_OUT
make install
make install >> "$LOG" 2>&1
fi
#bash
if [[ "$ARCH" == "x86_64" ]] && [[ "$MIN_VERSION" == "10.15" ]]; then
Expand All @@ -108,7 +111,11 @@ do
OPENSSLDIR="$LIBSSLDIR/${PLATFORM}_$MIN_VERSION-$ARCH"
fi

echo "- $PLATFORM $ARCH done!"
if [[ "$ARCH" == "x86_64" ]] && [[ "$MIN_VERSION" == "10.15" ]]; then
echo "- Mac Catalyst for $HOST $ARCH done!"
else
echo "- $PLATFORM $ARCH done!"
fi

fi
done
Expand All @@ -118,4 +125,4 @@ lipoFatLibrary "$LIPO_LIBCRYPTO" "$BASEPATH/openssl_$SDK_PLATFORM/lib/libcrypto.

importHeaders "$OPENSSLDIR/include/" "$BASEPATH/openssl_$SDK_PLATFORM/include"

echo "Building done."
echo "Building Mac Catalyst openssl lib done."

1 comment on commit f9f6d1f

@Jan-E
Copy link
Owner Author

@Jan-E Jan-E commented on f9f6d1f Apr 13, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Output at the end of running ./catalyst.sh:

Building fat files
lipo -create ${TMPDIR}iSSH2/libssh2-1.9.0/MacOSX_10.15-x86_64/install/lib/libssh2.a \
${TMPDIR}iSSH2/libssh2-1.9.0/iPhoneOS_14.4-arm64/install/lib/libssh2.a \
${TMPDIR}iSSH2/libssh2-1.9.0/iPhoneOS_14.4-arm64e/install/lib/libssh2.a \
${TMPDIR}iSSH2/libssh2-1.9.0/iPhoneOS_14.4-armv7/install/lib/libssh2.a \
${TMPDIR}iSSH2/libssh2-1.9.0/iPhoneOS_14.4-armv7s/install/lib/libssh2.a \
${TMPDIR}iSSH2/libssh2-1.9.0/iPhoneSimulator_14.4-i386/install/lib/libssh2.a -output ./libssh2_iphoneos/lib/libssh2.a
Architectures in the fat file: ./libssh2_iphoneos/lib/libssh2.a are: armv7 armv7s i386 x86_64 arm64 arm64e 

lipo -create ${TMPDIR}iSSH2/openssl-1.1.1k/MacOSX_10.15-x86_64/install/lib/libcrypto.a \
${TMPDIR}iSSH2/openssl-1.1.1k/iPhoneOS_14.4-arm64/libcrypto.a \
${TMPDIR}iSSH2/openssl-1.1.1k/iPhoneOS_14.4-arm64e/libcrypto.a \
${TMPDIR}iSSH2/openssl-1.1.1k/iPhoneOS_14.4-armv7/libcrypto.a \
${TMPDIR}iSSH2/openssl-1.1.1k/iPhoneOS_14.4-armv7s/libcrypto.a \
${TMPDIR}iSSH2/openssl-1.1.1k/iPhoneSimulator_14.4-i386/libcrypto.a -output ./openssl_iphoneos/lib/libcrypto.a
Architectures in the fat file: ./openssl_iphoneos/lib/libcrypto.a are: armv7 armv7s i386 x86_64 arm64 arm64e
 
lipo -create ${TMPDIR}iSSH2/openssl-1.1.1k/MacOSX_10.15-x86_64/install/lib/libssl.a \
${TMPDIR}iSSH2/openssl-1.1.1k/iPhoneOS_14.4-arm64/libssl.a \
${TMPDIR}iSSH2/openssl-1.1.1k/iPhoneOS_14.4-arm64e/libssl.a \
${TMPDIR}iSSH2/openssl-1.1.1k/iPhoneOS_14.4-armv7/libssl.a \
${TMPDIR}iSSH2/openssl-1.1.1k/iPhoneOS_14.4-armv7s/libssl.a \
${TMPDIR}iSSH2/openssl-1.1.1k/iPhoneSimulator_14.4-i386/libssl.a -output ./openssl_iphoneos/lib/libssl.a
Architectures in the fat file: ./openssl_iphoneos/lib/libssl.a are: armv7 armv7s i386 x86_64 arm64 arm64e 

Please sign in to comment.