diff --git a/.travis.yml b/.travis.yml index 410877c4a..3980a255c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -105,38 +105,42 @@ matrix: - TOOLCHAIN_ROOT="$HOME/rpi2_toolchain" - TOOLCHAIN_PREFIX=arm-linux-gnueabihf - # osx xcode7 + # osx xcode12 - os: osx cache: ccache - osx_image: xcode7.3 + osx_image: xcode12.2 compiler: clang env: - TARGET="osx" - BUNDLE="1" + - DEVELOPER_DIR="/Applications/Xcode-12.2.app/Contents/Developer" - os: osx cache: ccache - osx_image: xcode7.3 + osx_image: xcode12.2 compiler: clang env: - TARGET="osx" - BUNDLE="2" + - DEVELOPER_DIR="/Applications/Xcode-12.2.app/Contents/Developer" - os: osx cache: ccache - osx_image: xcode7.3 + osx_image: xcode12.2 compiler: clang env: - TARGET="osx" - BUNDLE="3" + - DEVELOPER_DIR="/Applications/Xcode-12.2.app/Contents/Developer" - os: osx cache: ccache - osx_image: xcode7.3 + osx_image: xcode12.2 compiler: clang env: - TARGET="osx" - BUNDLE="4" + - DEVELOPER_DIR="/Applications/Xcode-12.2.app/Contents/Developer" # ios - os: osx diff --git a/apothecary/formulas/FreeImage/Makefile.osx b/apothecary/formulas/FreeImage/Makefile.osx index d263f4389..94fbe5f6b 100755 --- a/apothecary/formulas/FreeImage/Makefile.osx +++ b/apothecary/formulas/FreeImage/Makefile.osx @@ -6,7 +6,7 @@ include Makefile.srcs # Update this based on your installed SDKs MACOSX_SDK=$(shell xcrun -sdk macosx --show-sdk-version) -MACOSX_MIN_SDK = 10.7 +MACOSX_MIN_SDK = 10.9 # Find SDK path via xcode-select, backwards compatible with Xcode vers < 4.5 MACOSX_SYSROOT = $(shell xcode-select -print-path)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX$(MACOSX_SDK).sdk @@ -15,7 +15,7 @@ MACOSX_SYSROOT = $(shell xcode-select -print-path)/Platforms/MacOSX.platform/Dev CC_X86_64 = $(shell xcrun -find clang) CPP_X86_64 = $(shell xcrun -find clang++) -COMPILERFLAGS = -arch x86_64 -arch i386 -Wno-ctor-dtor-privacy -stdlib=libc++ -Wc++11-narrowing -Os -fexceptions -fvisibility=hidden -DNO_LCMS -fPIC -DNDEBUG -D__ANSI__ -DDISABLE_PERF_MEASUREMENT -mmacosx-version-min=$(MACOSX_MIN_SDK) +COMPILERFLAGS = -arch x86_64 -arch arm64 -Wno-implicit-function-declaration -Wno-ctor-dtor-privacy -stdlib=libc++ -Wc++11-narrowing -Os -fexceptions -fvisibility=hidden -DNO_LCMS -fPIC -DPNG_ARM_NEON_OPT=0 -DNDEBUG -D__ANSI__ -DDISABLE_PERF_MEASUREMENT -mmacosx-version-min=$(MACOSX_MIN_SDK) INCLUDE_X86_64 = -isysroot $(MACOSX_SYSROOT) CFLAGS_X86_64 = $(COMPILERFLAGS) $(INCLUDE) $(INCLUDE_X86_64) @@ -31,9 +31,9 @@ STATICLIB = lib$(TARGET).a HEADER = Source/FreeImage.h -.SUFFIXES: .o-x86_64 -MODULES_X86_64 = $(SRCS:.c=.o-x86_64) -MODULES_X86_64 := $(MODULES_X86_64:.cpp=.o-x86_64) +.SUFFIXES: .o +MODULES_X86_64 = $(SRCS:.c=.o) +MODULES_X86_64 := $(MODULES_X86_64:.cpp=.o) PREFIX = /usr/local INSTALLDIR = $(PREFIX)/lib @@ -53,10 +53,10 @@ FreeImage: $(STATICLIB) $(STATICLIB): $(MODULES_X86_64) $(LIBTOOL) -o $@ $(MODULES_X86_64) -.c.o-x86_64: +.c.o: $(CC_X86_64) $(CFLAGS_X86_64) -c $< -o $@ -.cpp.o-x86_64: +.cpp.o: $(CPP_X86_64) $(CPPFLAGS_X86_64) -c $< -o $@ install: diff --git a/apothecary/formulas/_depends/pixman.sh b/apothecary/formulas/_depends/pixman.sh index 8fd535b87..93d0c5c1a 100644 --- a/apothecary/formulas/_depends/pixman.sh +++ b/apothecary/formulas/_depends/pixman.sh @@ -35,7 +35,8 @@ function build() { # these flags are used to create a fat 32/64 binary with i386->libstdc++, x86_64->libc++ # see https://gist.github.com/tgfrerer/8e2d973ed0cfdd514de6 - local FAT_LDFLAGS="-arch i386 -arch x86_64 -mmacosx-version-min=${OSX_MIN_SDK_VER}" + local SDK_PATH=$(xcrun --show-sdk-path) + local FAT_LDFLAGS="-arch arm64 -arch x86_64 -mmacosx-version-min=${OSX_MIN_SDK_VER} -isysroot ${SDK_PATH}" ./configure LDFLAGS="${FAT_LDFLAGS} " \ CFLAGS="-O3 ${FAT_LDFLAGS}" \ diff --git a/apothecary/formulas/assimp.sh b/apothecary/formulas/assimp.sh index a9b3dc4f0..db5921bb0 100755 --- a/apothecary/formulas/assimp.sh +++ b/apothecary/formulas/assimp.sh @@ -97,8 +97,8 @@ function build() { # cd build_osx # 32 bit cmake -G 'Unix Makefiles' $buildOpts \ - -DCMAKE_C_FLAGS="-arch i386 -arch x86_64 -O3 -DNDEBUG -funroll-loops -mmacosx-version-min=${OSX_MIN_SDK_VER}" \ - -DCMAKE_CXX_FLAGS="-arch i386 -arch x86_64 -stdlib=libc++ -O3 -DNDEBUG -funroll-loops -std=c++11 -mmacosx-version-min=${OSX_MIN_SDK_VER}" . + -DCMAKE_C_FLAGS="-arch arm64 -arch x86_64 -O3 -DNDEBUG -funroll-loops -mmacosx-version-min=${OSX_MIN_SDK_VER}" \ + -DCMAKE_CXX_FLAGS="-arch arm64 -arch x86_64 -stdlib=libc++ -O3 -DNDEBUG -funroll-loops -std=c++11 -mmacosx-version-min=${OSX_MIN_SDK_VER}" . make assimp -j${PARALLEL_MAKE} elif [ "$TYPE" == "vs" ] ; then diff --git a/apothecary/formulas/boost/boost.sh b/apothecary/formulas/boost/boost.sh index bb32acbab..c2fcacd21 100644 --- a/apothecary/formulas/boost/boost.sh +++ b/apothecary/formulas/boost/boost.sh @@ -8,7 +8,7 @@ FORMULA_TYPES=( "osx" "ios" "tvos" "android" "emscripten" "vs" ) # define the version -VERSION=1.65.0 +VERSION=1.66.0 VERSION_UNDERSCORES="$(echo "$VERSION" | sed 's/\./_/g')" TARBALL="boost_${VERSION_UNDERSCORES}.tar.gz" @@ -42,7 +42,7 @@ function download() { # prepare the build environment, executed inside the lib src dir function prepare() { - patch -p0 -u < $FORMULA_DIR/visualc.hpp.patch + # patch -p0 -u < $FORMULA_DIR/visualc.hpp.patch if [ "$TYPE" == "osx" ]; then ./bootstrap.sh --with-toolset=clang --with-libraries=filesystem @@ -80,7 +80,7 @@ function build() { elif [ "$TYPE" == "osx" ]; then - ./b2 -j${PARALLEL_MAKE} toolset=clang cxxflags="-std=c++11 -stdlib=libc++ -arch i386 -arch x86_64 -mmacosx-version-min=${OSX_MIN_SDK_VER}" linkflags="-stdlib=libc++" threading=multi variant=release --build-dir=build --stage-dir=stage link=static stage + ./b2 -j${PARALLEL_MAKE} toolset=clang cxxflags="-std=c++11 -stdlib=libc++ -arch arm64 -arch x86_64 -Wno-implicit-function-declaration -mmacosx-version-min=${OSX_MIN_SDK_VER}" linkflags="-stdlib=libc++" threading=multi variant=release --build-dir=build --stage-dir=stage link=static stage cd tools/bcp ../../b2 elif [[ "$TYPE" == "ios" || "${TYPE}" == "tvos" ]]; then diff --git a/apothecary/formulas/cairo.sh b/apothecary/formulas/cairo.sh index 13af8192e..653413efa 100644 --- a/apothecary/formulas/cairo.sh +++ b/apothecary/formulas/cairo.sh @@ -112,10 +112,16 @@ function build() { # exit 1 with_vs_env "make -f Makefile.win32 \"CFG=release\"" elif [ "$TYPE" == "osx" ] ; then - ./configure PKG_CONFIG="$BUILD_ROOT_DIR/bin/pkg-config" \ + + # needed for travis FREETYPE_LIBS configure var forces cairo to search this location for freetype + ROOT=${PWD}/.. + FREETYPE_LIB_PATH="-L$ROOT/freetype/build/osx/lib -lfreetype" + + ./configure PKG_CONFIG="$BUILD_ROOT_DIR/bin/pkg-config" \ PKG_CONFIG_PATH="$BUILD_ROOT_DIR/lib/pkgconfig" \ - LDFLAGS="-arch i386 -arch x86_64 -mmacosx-version-min=${OSX_MIN_SDK_VER}" \ - CFLAGS="-Os -arch i386 -arch x86_64 -mmacosx-version-min=${OSX_MIN_SDK_VER}" \ + FREETYPE_LIBS="$FREETYPE_LIB_PATH" \ + LDFLAGS="-arch arm64 -arch x86_64 -mmacosx-version-min=${OSX_MIN_SDK_VER}" \ + CFLAGS="-Os -arch arm64 -arch x86_64 -mmacosx-version-min=${OSX_MIN_SDK_VER}" \ --prefix=$BUILD_ROOT_DIR \ --disable-gtk-doc \ --disable-gtk-doc-html \ @@ -123,7 +129,12 @@ function build() { --disable-full-testing \ --disable-dependency-tracking \ --disable-xlib \ - --disable-qt + --disable-qt \ + --disable-shared \ + --disable-quartz-font \ + --disable-quartz \ + --disable-quartz-image + make -j${PARALLEL_MAKE} make install else diff --git a/apothecary/formulas/curl/curl.sh b/apothecary/formulas/curl/curl.sh index 8005044ad..0c1661108 100644 --- a/apothecary/formulas/curl/curl.sh +++ b/apothecary/formulas/curl/curl.sh @@ -88,16 +88,16 @@ function build() { #local OPENSSL_DIR=$BUILD_DIR/openssl/build/$TYPE ./buildconf - export CFLAGS="-arch i386 -mmacosx-version-min=${OSX_MIN_SDK_VER}" - export LDFLAGS="-arch i386 -mmacosx-version-min=${OSX_MIN_SDK_VER}" + export CFLAGS="-arch arm64 -mmacosx-version-min=${OSX_MIN_SDK_VER}" + export LDFLAGS="-arch arm64 -mmacosx-version-min=${OSX_MIN_SDK_VER}" ./configure \ --with-darwinssl \ - --prefix=$BUILD_DIR/curl/build/osx/x86 \ + --prefix=$BUILD_DIR/curl/build/osx/arm64 \ --enable-static \ --disable-shared \ --disable-ldap \ --disable-ldaps \ - --host=x86-apple-darwin + --host=arm-apple-darwin make clean make -j${PARALLEL_MAKE} make install @@ -118,7 +118,7 @@ function build() { cp -r build/osx/x64/* build/osx/ - lipo -create build/osx/x86/lib/libcurl.a \ + lipo -create build/osx/arm64/lib/libcurl.a \ build/osx/x64/lib/libcurl.a \ -output build/osx/lib/libcurl.a make install diff --git a/apothecary/formulas/freetype/freetype.sh b/apothecary/formulas/freetype/freetype.sh index 65f88cd80..ca88df109 100644 --- a/apothecary/formulas/freetype/freetype.sh +++ b/apothecary/formulas/freetype/freetype.sh @@ -36,9 +36,9 @@ function build() { if [ "$TYPE" == "osx" ] ; then local BUILD_TO_DIR=$BUILD_DIR/freetype/build/$TYPE/ - # these flags are used to create a fat 32/64 binary with i386->libstdc++, x86_64->libc++ + # these flags are used to create a fat arm64/x86_64 binary with libc++ # see https://gist.github.com/tgfrerer/8e2d973ed0cfdd514de6 - local FAT_CFLAGS="-arch i386 -arch x86_64 -stdlib=libc++ -mmacosx-version-min=${OSX_MIN_SDK_VER}" + local FAT_CFLAGS="-arch arm64 -arch x86_64 -stdlib=libc++ -mmacosx-version-min=${OSX_MIN_SDK_VER}" set -e CURRENTPATH=`pwd` diff --git a/apothecary/formulas/glew.sh b/apothecary/formulas/glew.sh index 817680578..7de1752b8 100644 --- a/apothecary/formulas/glew.sh +++ b/apothecary/formulas/glew.sh @@ -36,19 +36,19 @@ function build() { if [ "$TYPE" == "osx" ] ; then - # GLEW will not allow one to simply supply OPT="-arch i386 -arch x86_64" + # GLEW will not allow one to simply supply OPT="-arch arm64 -arch x86_64" # so we build them separately. - # 32 bit - make clean; make -j${PARALLEL_MAKE} glew.lib OPT="-arch i386 -mmacosx-version-min=${OSX_MIN_SDK_VER}" - mv lib/libGLEW.a libGLEW-i386.a + # arm64 + make clean; make -j${PARALLEL_MAKE} glew.lib OPT="-arch arm64 -mmacosx-version-min=${OSX_MIN_SDK_VER}" + mv lib/libGLEW.a libGLEW-arm64.a # 64 bit make clean; make -j${PARALLEL_MAKE} glew.lib OPT="-arch x86_64 -mmacosx-version-min=${OSX_MIN_SDK_VER}" mv lib/libGLEW.a libGLEW-x86_64.a # link into fat universal lib - lipo -c libGLEW-i386.a libGLEW-x86_64.a -o libGLEW.a + lipo -c libGLEW-arm64.a libGLEW-x86_64.a -o libGLEW.a elif [ "$TYPE" == "vs" ] ; then unset TMP diff --git a/apothecary/formulas/glfw.sh b/apothecary/formulas/glfw.sh index e12576fd2..e1081d676 100644 --- a/apothecary/formulas/glfw.sh +++ b/apothecary/formulas/glfw.sh @@ -64,7 +64,7 @@ function build() { -DGLFW_BUILD_EXAMPLES=OFF \ -DBUILD_SHARED_LIBS=OFF \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_C_FLAGS="-arch i386 -arch x86_64 -mmacosx-version-min=${OSX_MIN_SDK_VER}" \ + -DCMAKE_C_FLAGS="-arch arm64 -arch x86_64 -mmacosx-version-min=${OSX_MIN_SDK_VER}" \ $EXTRA_CONFIG else cmake .. -DGLFW_BUILD_DOCS=OFF \ diff --git a/apothecary/formulas/libpng/libpng.sh b/apothecary/formulas/libpng/libpng.sh index 1c27503c3..862baf4fa 100644 --- a/apothecary/formulas/libpng/libpng.sh +++ b/apothecary/formulas/libpng/libpng.sh @@ -41,15 +41,19 @@ function prepare() { function build() { if [ "$TYPE" == "osx" ] ; then - - # these flags are used to create a fat 32/64 binary with i386->libstdc++, x86_64->libc++ + local SDK_PATH=$(xcrun --show-sdk-path) + echo "SDK PATH IS ${SDK_PATH}" + + # these flags are used to create a fat arm/64 binary with libc++ # see https://gist.github.com/tgfrerer/8e2d973ed0cfdd514de6 - local FAT_LDFLAGS="-arch i386 -arch x86_64 -stdlib=libstdc++ -Xarch_x86_64 -stdlib=libc++" + local FAT_LDFLAGS="-arch arm64 -arch x86_64 -stdlib=libc++ -isysroot ${SDK_PATH} -mmacosx-version-min=${OSX_MIN_SDK_VER}" ./configure LDFLAGS="${FAT_LDFLAGS} " \ CFLAGS="-O3 ${FAT_LDFLAGS}" \ --prefix=$BUILD_ROOT_DIR \ - --disable-dependency-tracking + --disable-dependency-tracking \ + --disable-arm-neon \ + --disable-shared make clean make elif [ "$TYPE" == "vs" ] ; then diff --git a/apothecary/formulas/libusb.sh b/apothecary/formulas/libusb.sh index ab25fc98d..3ae09c9bd 100644 --- a/apothecary/formulas/libusb.sh +++ b/apothecary/formulas/libusb.sh @@ -68,7 +68,7 @@ function build() { fi if [ "$TYPE" == "osx" ] ; then - CFLAGS="-arch i386 -arch x86_64" ./configure --disable-shared --enable-static + CFLAGS="-arch arm64 -arch x86_64" ./configure --disable-shared --enable-static make -j${PARALLEL_MAKE} fi diff --git a/apothecary/formulas/libxml2/libxml2.sh b/apothecary/formulas/libxml2/libxml2.sh index 5a28f89c1..3e08df6df 100644 --- a/apothecary/formulas/libxml2/libxml2.sh +++ b/apothecary/formulas/libxml2/libxml2.sh @@ -74,8 +74,8 @@ function build() { make -j${PARALLEL_MAKE} make install elif [ "$TYPE" == "osx" ]; then - export CFLAGS="-arch i386 -arch x86_64 -mmacosx-version-min=${OSX_MIN_SDK_VER}" - export LDFLAGS="-arch i386 -arch x86_64 -mmacosx-version-min=${OSX_MIN_SDK_VER}" + export CFLAGS="-arch arm64 -arch x86_64 -mmacosx-version-min=${OSX_MIN_SDK_VER}" + export LDFLAGS="-arch arm64 -arch x86_64 -mmacosx-version-min=${OSX_MIN_SDK_VER}" ./configure --without-lzma --without-zlib --disable-shared --enable-static --without-ftp --without-html --without-http --without-iconv --without-legacy --without-modules --without-output --without-python make clean @@ -114,8 +114,8 @@ function build() { elif [ "$TYPE" == "osx" ]; then - export CFLAGS="-arch i386 -arch x86_64 -mmacosx-version-min=${OSX_MIN_SDK_VER}" - export LDFLAGS="-arch i386 -arch x86_64 -mmacosx-version-min=${OSX_MIN_SDK_VER}" + export CFLAGS="-arch arm64 -arch x86_64 -mmacosx-version-min=${OSX_MIN_SDK_VER}" + export LDFLAGS="-arch arm64 -arch x86_64 -mmacosx-version-min=${OSX_MIN_SDK_VER}" ./configure --without-lzma --without-zlib --disable-shared --enable-static --without-ftp --without-html --without-http --without-iconv --without-legacy --without-modules --without-output --without-python make clean @@ -197,4 +197,4 @@ function clean() { else make clean fi -} \ No newline at end of file +} diff --git a/apothecary/formulas/opencv/opencv.sh b/apothecary/formulas/opencv/opencv.sh index 4ec738231..07c2c6a4a 100644 --- a/apothecary/formulas/opencv/opencv.sh +++ b/apothecary/formulas/opencv/opencv.sh @@ -53,8 +53,8 @@ function build() { cmake .. -DCMAKE_INSTALL_PREFIX=$LIB_FOLDER \ -DCMAKE_OSX_DEPLOYMENT_TARGET=10.7 \ -DENABLE_FAST_MATH=OFF \ - -DCMAKE_CXX_FLAGS="-fvisibility-inlines-hidden -stdlib=libc++ -std=c++11 -O3 -fPIC -arch i386 -arch x86_64 -mmacosx-version-min=${OSX_MIN_SDK_VER}" \ - -DCMAKE_C_FLAGS="-fvisibility-inlines-hidden -stdlib=libc++ -O3 -fPIC -arch i386 -arch x86_64 -mmacosx-version-min=${OSX_MIN_SDK_VER}" \ + -DCMAKE_CXX_FLAGS="-fvisibility-inlines-hidden -stdlib=libc++ -std=c++11 -O3 -fPIC -arch arm64 -arch x86_64 -Wno-implicit-function-declaration -mmacosx-version-min=${OSX_MIN_SDK_VER}" \ + -DCMAKE_C_FLAGS="-fvisibility-inlines-hidden -stdlib=libc++ -O3 -fPIC -arch arm64 -arch x86_64 -Wno-implicit-function-declaration -mmacosx-version-min=${OSX_MIN_SDK_VER}" \ -DCMAKE_BUILD_TYPE="Release" \ -DBUILD_SHARED_LIBS=OFF \ -DBUILD_DOCS=OFF \ diff --git a/apothecary/formulas/openssl/13-macos-arm.conf b/apothecary/formulas/openssl/13-macos-arm.conf new file mode 100644 index 000000000..1cb34d2b6 --- /dev/null +++ b/apothecary/formulas/openssl/13-macos-arm.conf @@ -0,0 +1,15 @@ +## -*- mode: perl; -*- +## macos configuration targets + +%targets = ( + # Based on 10-main.conf + # tip from https://cutecoder.org/programming/compile-open-ssl-apple-silicon/ + "darwin64-arm64-cc" => { + inherit_from => [ "darwin-common", asm("aarch64_asm") ], + CFLAGS => add("-Wall"), + cflags => add("-arch arm64"), + lib_cppflags => add("-DL_ENDIAN"), + bn_ops => "SIXTY_FOUR_BIT_LONG", + perlasm_scheme => "macosx", + }, +); diff --git a/apothecary/formulas/openssl/openssl.sh b/apothecary/formulas/openssl/openssl.sh index 4dfcb8d7e..cd5fe0daa 100644 --- a/apothecary/formulas/openssl/openssl.sh +++ b/apothecary/formulas/openssl/openssl.sh @@ -35,7 +35,7 @@ function download() { mv $FILENAME openssl rm $FILENAME.tar.gz rm $FILENAME.tar.gz.sha1 - else + else echoError "Invalid shasum for $FILENAME." fi fi @@ -45,7 +45,9 @@ function download() { function prepare() { if [ "$TYPE" == "tvos" ]; then cp $FORMULA_DIR/20-ios-tvos-cross.conf Configurations/ - fi + elif [ "$TYPE" == "osx" ]; then + cp $FORMULA_DIR/13-macos-arm.conf Configurations/ + fi } # executed inside the lib src dir @@ -56,39 +58,42 @@ function build() { rm -rf $BUILD_TO_DIR rm -f libcrypto.a libssl.a - local BUILD_OPTS="-fPIC -stdlib=libc++ -mmacosx-version-min=${OSX_MIN_SDK_VER} no-shared" - local BUILD_TO_DIR=$BUILD_DIR/openssl/build/$TYPE/x86 - + local BUILD_OPTS_ARM="-fPIC -stdlib=libc++ -mmacosx-version-min=${OSX_MIN_SDK_VER} no-shared no-asm darwin64-arm64-cc" + local BUILD_TO_DIR=$BUILD_DIR/openssl/build/$TYPE/arm64 + KERNEL_BITS=64 + rm -f libcrypto.a rm -f libssl.a - KERNEL_BITS=32 ./config $BUILD_OPTS --openssldir=$BUILD_TO_DIR --prefix=$BUILD_TO_DIR + ./Configure $BUILD_OPTS_ARM --openssldir=$BUILD_TO_DIR --prefix=$BUILD_TO_DIR sed -ie "s!LIBCRYPTO=-L.. -lcrypto!LIBCRYPTO=../libcrypto.a!g" Makefile sed -ie "s!LIBSSL=-L.. -lssl!LIBSSL=../libssl.a!g" Makefile make clean make -j1 depend # running make multithreaded is unreliable make -j1 - make -j1 install - - - rm -f libcrypto.a - rm -f libssl.a - local BUILD_TO_DIR=$BUILD_DIR/openssl/build/$TYPE/x64 - KERNEL_BITS=64 ./config $BUILD_OPTS --openssldir=$BUILD_TO_DIR --prefix=$BUILD_TO_DIR - sed -ie "s!LIBCRYPTO=-L.. -lcrypto!LIBCRYPTO=../libcrypto.a!g" Makefile - sed -ie "s!LIBSSL=-L.. -lssl!LIBSSL=../libssl.a!g" Makefile - make clean - make -j1 depend - make -j1 - make -j1 install + make -j1 install_sw + + local BUILD_OPTS_X86_64="-fPIC -stdlib=libc++ -mmacosx-version-min=${OSX_MIN_SDK_VER} no-shared darwin64-x86_64-cc" + + rm -f libcrypto.a + rm -f libssl.a + local BUILD_TO_DIR=$BUILD_DIR/openssl/build/$TYPE/x64 + + ./Configure $BUILD_OPTS_X86_64 --openssldir=$BUILD_TO_DIR --prefix=$BUILD_TO_DIR + sed -ie "s!LIBCRYPTO=-L.. -lcrypto!LIBCRYPTO=../libcrypto.a!g" Makefile + sed -ie "s!LIBSSL=-L.. -lssl!LIBSSL=../libssl.a!g" Makefile + make clean + make -j1 depend + make -j1 + make -j1 install_sw local BUILD_TO_DIR=$BUILD_DIR/openssl/build/$TYPE/ cp -r $BUILD_TO_DIR/x64/* $BUILD_TO_DIR/ - lipo -create $BUILD_TO_DIR/x86/lib/libcrypto.a \ + lipo -create $BUILD_TO_DIR/arm64/lib/libcrypto.a \ $BUILD_TO_DIR/x64/lib/libcrypto.a \ -output $BUILD_TO_DIR/lib/libcrypto.a - lipo -create $BUILD_TO_DIR/x86/lib/libssl.a \ + lipo -create $BUILD_TO_DIR/arm64/lib/libssl.a \ $BUILD_TO_DIR/x64/lib/libssl.a \ -output $BUILD_TO_DIR/lib/libssl.a @@ -174,7 +179,7 @@ function build() { make -j1 depend # running make multithreaded is unreliable make -j1 - make -j1 install + make -j1 install_sw # reset source file back. diff --git a/apothecary/formulas/poco/poco.sh b/apothecary/formulas/poco/poco.sh index 132d434de..82b96d6aa 100644 --- a/apothecary/formulas/poco/poco.sh +++ b/apothecary/formulas/poco/poco.sh @@ -142,7 +142,7 @@ function build() { echo "--------------------" echo "Making Poco-${VER}" echo "--------------------" - echo "Configuring for universal i386 and x86_64 libc++ ..." + echo "Configuring for universal arm64 and x86_64 libc++ ..." # Locate the path of the openssl libs distributed with openFrameworks. local OF_LIBS_OPENSSL="$LIBS_DIR/openssl/" @@ -150,11 +150,18 @@ function build() { local OPENSSL_INCLUDE=$OF_LIBS_OPENSSL_ABS_PATH/include local OPENSSL_LIBS=$OF_LIBS_OPENSSL_ABS_PATH/lib/$TYPE + + local SDK_PATH=$(xcrun --show-sdk-path) local BUILD_OPTS="$BUILD_OPTS --include-path=$OPENSSL_INCLUDE --library-path=$OPENSSL_LIBS" - export ARCHFLAGS="-arch i386 -arch x86_64 -mmacosx-version-min=${OSX_MIN_SDK_VER}" + + # only build release libs + sed -i '' 's/DEFAULT_TARGET = all_static/DEFAULT_TARGET = static_release/g' build/rules/global + + export ARCHFLAGS="-arch arm64 -arch x86_64 -isysroot ${SDK_PATH} -mmacosx-version-min=${OSX_MIN_SDK_VER}" ./configure $BUILD_OPTS --config=Darwin-clang-libc++ \ --prefix=$BUILD_DIR/poco/install/$TYPE + make -j${PARALLEL_MAKE} make install rm -f install/$TYPE/lib/*d.a diff --git a/apothecary/formulas/rtAudio/rtAudio.sh b/apothecary/formulas/rtAudio/rtAudio.sh index 09c029127..731b1e33d 100644 --- a/apothecary/formulas/rtAudio/rtAudio.sh +++ b/apothecary/formulas/rtAudio/rtAudio.sh @@ -56,7 +56,7 @@ function build() { -Wall \ -fPIC \ -stdlib=libc++ \ - -arch i386 -arch x86_64 \ + -arch arm64 -arch x86_64 \ -Iinclude \ -DHAVE_GETTIMEOFDAY \ -D__MACOSX_CORE__ \ diff --git a/apothecary/formulas/svgtiny/svgtiny.sh b/apothecary/formulas/svgtiny/svgtiny.sh index 7570449eb..07691e85c 100644 --- a/apothecary/formulas/svgtiny/svgtiny.sh +++ b/apothecary/formulas/svgtiny/svgtiny.sh @@ -106,8 +106,8 @@ function build() { make -j${PARALLEL_MAKE} elif [ "$TYPE" == "osx" ]; then - export CFLAGS="-arch i386 -arch x86_64 -mmacosx-version-min=${OSX_MIN_SDK_VER}" - export LDFLAGS="-arch i386 -arch x86_64 -mmacosx-version-min=${OSX_MIN_SDK_VER}" + export CFLAGS="-arch arm64 -arch x86_64 -mmacosx-version-min=${OSX_MIN_SDK_VER}" + export LDFLAGS="-arch arm64 -arch x86_64 -mmacosx-version-min=${OSX_MIN_SDK_VER}" export CFLAGS="$CFLAGS -I$LIBS_DIR/libxml2/include" make clean make -j${PARALLEL_MAKE} diff --git a/apothecary/formulas/tess2/tess2.sh b/apothecary/formulas/tess2/tess2.sh index af57d45d2..9002787c7 100644 --- a/apothecary/formulas/tess2/tess2.sh +++ b/apothecary/formulas/tess2/tess2.sh @@ -62,7 +62,7 @@ function build() { STD_LIB_FLAGS="-stdlib=libc++" OPTIM_FLAGS="-O3" # choose "fastest" optimisation - export CFLAGS="-arch i386 -arch x86_64 $OPTIM_FLAGS -DNDEBUG -fPIC -mmacosx-version-min=${OSX_MIN_SDK_VER}" + export CFLAGS="-arch arm64 -arch x86_64 $OPTIM_FLAGS -DNDEBUG -fPIC -mmacosx-version-min=${OSX_MIN_SDK_VER}" export CPPFLAGS=$CFLAGS export LINKFLAGS="$CFLAGS $STD_LIB_FLAGS" export LDFLAGS="$LINKFLAGS" diff --git a/apothecary/formulas/uri/uri.sh b/apothecary/formulas/uri/uri.sh index da6055261..b95964e70 100644 --- a/apothecary/formulas/uri/uri.sh +++ b/apothecary/formulas/uri/uri.sh @@ -61,8 +61,8 @@ function build() { export BOOST_LIBRARYDIR=${BUILD_DIR}/boost/stage/lib export BOOST_INCLUDEDIR=${BUILD_DIR}/boost/ cmake -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_C_FLAGS="-arch i386 -arch x86_64" \ - -DCMAKE_CXX_FLAGS="-arch i386 -arch x86_64 -std=c++11 -stdlib=libc++" \ + -DCMAKE_C_FLAGS="-arch arm64 -arch x86_64" \ + -DCMAKE_CXX_FLAGS="-arch arm64 -arch x86_64 -std=c++11 -stdlib=libc++" \ .. make -j${PARALLEL_MAKE} diff --git a/apothecary/formulas/uriparser/uriparser.sh b/apothecary/formulas/uriparser/uriparser.sh index 10132fa2c..32c2c56fc 100644 --- a/apothecary/formulas/uriparser/uriparser.sh +++ b/apothecary/formulas/uriparser/uriparser.sh @@ -65,8 +65,8 @@ function build() { make -j${PARALLEL_MAKE} make install elif [ "$TYPE" == "osx" ]; then - export CFLAGS="-arch i386 -arch x86_64 -mmacosx-version-min=${OSX_MIN_SDK_VER}" - export LDFLAGS="-arch i386 -arch x86_64 -mmacosx-version-min=${OSX_MIN_SDK_VER}" + export CFLAGS="-arch arm64 -arch x86_64 -mmacosx-version-min=${OSX_MIN_SDK_VER}" + export LDFLAGS="-arch arm64 -arch x86_64 -mmacosx-version-min=${OSX_MIN_SDK_VER}" local BUILD_TO_DIR=$BUILD_DIR/uriparser/build/$TYPE ./configure --prefix=$BUILD_TO_DIR --disable-test --disable-doc --enable-static --disable-shared diff --git a/scripts/build.sh b/scripts/build.sh index b7b9d9f57..dd23528ee 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -173,6 +173,7 @@ echo "Parallel builds: $PARALLEL" if type "ccache" > /dev/null; then if [ "$TRAVIS_OS_NAME" == "osx" ]; then export PATH="/usr/local/opt/ccache/libexec:$PATH"; + export SDKROOT="$DEVELOPER_DIR/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk" fi # if [ "$TRAVIS" = true ] && [ "$TARGET" == "emscripten" ]; then diff --git a/scripts/osx/install.sh b/scripts/osx/install.sh index f38a82432..98fcde418 100755 --- a/scripts/osx/install.sh +++ b/scripts/osx/install.sh @@ -3,3 +3,4 @@ brew update >/dev/null brew install cmake coreutils autoconf automake ccache brew reinstall libtool +export PATH="/usr/local/opt/ccache/libexec:$PATH"