#!/usr/bin/env bash # build_ubuntu.sh # # Build script for OSX using MacPorts, git pulls codec2 and # lpcnet repos so they are available for parallel development. export FREEDVGUIDIR=${PWD} export UT_ENABLE=${UT_ENABLE:-0} export UNIV_BUILD=${UNIV_BUILD:-1} export CODESIGN_IDENTITY=${CODESIGN_IDENTITY:--} export BUILD_DEPS=${BUILD_DEPS:-1} export USE_NATIVE_AUDIO=${USE_NATIVE_AUDIO:-1} export BUILD_TYPE=${BUILD_TYPE:-Debug} export WITH_ASAN=${WITH_ASAN:-0} export WITH_RTSAN=${WITH_RTSAN:-0} export WITH_TSAN=${WITH_TSAN:-0} export WITH_UBSAN=${WITH_UBSAN:-0} export ENABLE_LTO=${ENABLE_LTO:-0} export PGO_INSTRUMENT=${PGO_INSTRUMENT:-0} export PGO_USE_PROFILE=${PGO_USE_PROFILE:-} export USE_CCACHE=${USE_CCACHE:-0} # Prerequisite: build dylibbundler if [ ! -d macdylibbundler ]; then git clone https://github.com/tmiw/macdylibbundler.git cd macdylibbundler && git checkout main && git pull make -j$(sysctl -n hw.logicalcpu) cd .. fi # Build freedv-gui cd $FREEDVGUIDIR if [ -d .git ]; then git pull fi mkdir -p build_osx && cd build_osx && rm -Rf * if [ "$CODESIGN_KEYCHAIN_PROFILE" != "" ]; then export CODESIGN_KEYCHAIN_PROFILE_ARG=-DMACOS_CODESIGN_KEYCHAIN_PROFILE=$CODESIGN_KEYCHAIN_PROFILE fi if [ $USE_CCACHE == 1 ]; then CCACHE_ARGS=-DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_OBJCXX_COMPILER_LAUNCHER=ccache else CCACHE_ARGS= fi if [ $BUILD_DEPS == 1 ]; then cmake ${CCACHE_ARGS} -DCMAKE_AR=/usr/bin/ar -DCMAKE_RANLIB=/usr/bin/ranlib -DPGO_INSTRUMENT=${PGO_INSTRUMENT} -DPGO_USE_PROFILE=${PGO_USE_PROFILE} -DENABLE_LTO=${ENABLE_LTO} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DENABLE_UBSAN=${WITH_UBSAN} -DENABLE_TSAN=${WITH_TSAN} -DENABLE_RTSAN=${WITH_RTSAN} -DENABLE_ASAN=${WITH_ASAN} -DUSE_NATIVE_AUDIO=$USE_NATIVE_AUDIO -DBUILD_OSX_UNIVERSAL=${UNIV_BUILD} -DUNITTEST=$UT_ENABLE -DBOOTSTRAP_WXWIDGETS=1 -DUSE_STATIC_SPEEXDSP=1 -DUSE_STATIC_PORTAUDIO=1 -DUSE_STATIC_SAMPLERATE=1 -DUSE_STATIC_SNDFILE=1 -DUSE_STATIC_LIBRESSL=1 -DMACOS_CODESIGN_IDENTITY=${CODESIGN_IDENTITY} ${CODESIGN_KEYCHAIN_PROFILE_ARG} .. else cmake ${CCACHE_ARGS} -DCMAKE_AR=/usr/bin/ar -DCMAKE_RANLIB=/usr/bin/ranlib -DPGO_INSTRUMENT=${PGO_INSTRUMENT} -DPGO_USE_PROFILE=${PGO_USE_PROFILE} -DENABLE_LTO=${ENABLE_LTO} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DENABLE_UBSAN=${WITH_UBSAN} -DENABLE_TSAN=${WITH_TSAN} -DENABLE_RTSAN=${WITH_RTSAN} -DENABLE_ASAN=${WITH_ASAN} -DUSE_NATIVE_AUDIO=$USE_NATIVE_AUDIO -DBUILD_OSX_UNIVERSAL=${UNIV_BUILD} -DUNITTEST=$UT_ENABLE -DMACOS_CODESIGN_IDENTITY=${CODESIGN_IDENTITY} ${CODESIGN_KEYCHAIN_PROFILE_ARG} .. fi make -j$(sysctl -n hw.logicalcpu)