|
- #!/bin/bash
-
- # ---------------------------------------------------------------------------------------------------------------------
- # OS setup
-
- if [ "${LINUX}" -eq 1 ]; then
- CMAKE_SYSTEM_NAME="Linux"
- PAWPAW_TARGET="linux"
-
- elif [ "${MACOS}" -eq 1 ]; then
- CMAKE_SYSTEM_NAME="Darwin"
- if [ "${MACOS_OLD}" -eq 1 ]; then
- PAWPAW_TARGET="macos-old"
- elif [ "${MACOS_UNIVERSAL}" -eq 1 ]; then
- PAWPAW_TARGET="macos-universal"
- else
- PAWPAW_TARGET="macos"
- fi
-
- elif [ "${WIN32}" -eq 1 ]; then
- CMAKE_SYSTEM_NAME="Windows"
- if [ "${WIN64}" -eq 1 ]; then
- PAWPAW_TARGET="win64"
- else
- PAWPAW_TARGET="win32"
- fi
-
- else
- echo "Unknown target '${target}'"
- exit 4
- fi
-
- # ---------------------------------------------------------------------------------------------------------------------
- # PawPaw setup
-
- PAWPAW_DIR="${HOME}/PawPawBuilds"
- PAWPAW_DOWNLOADDIR="${PAWPAW_DIR}/downloads"
- PAWPAW_BUILDDIR="${PAWPAW_DIR}/builds/${PAWPAW_TARGET}"
- PAWPAW_PREFIX="${PAWPAW_DIR}/targets/${PAWPAW_TARGET}"
- PAWPAW_TMPDIR="/tmp"
-
- # ---------------------------------------------------------------------------------------------------------------------
- # build environment
-
- ## build flags
-
- BUILD_FLAGS="-O2 -pipe -I${PAWPAW_PREFIX}/include"
- BUILD_FLAGS+=" -mtune=generic -msse -msse2 -ffast-math"
- BUILD_FLAGS+=" -fPIC -DPIC -DNDEBUG -D_FORTIFY_SOURCE=2"
- BUILD_FLAGS+=" -fdata-sections -ffunction-sections -fno-common -fstack-protector -fvisibility=hidden"
-
- if [ "${MACOS_UNIVERSAL}" -eq 0 ]; then
- BUILD_FLAGS+=" -mfpmath=sse"
- fi
-
- if [ "${MACOS}" -eq 1 ]; then
- if [ "${MACOS_OLD}" -eq 1 ]; then
- BUILD_FLAGS+=" -DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_5 -mmacosx-version-min=10.5"
- elif [ "${MACOS_UNIVERSAL}" -eq 1 ]; then
- BUILD_FLAGS+=" -DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_12 -mmacosx-version-min=10.12 -arch x86_64 -arch arm64"
- else
- BUILD_FLAGS+=" -DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_8 -mmacosx-version-min=10.8 -stdlib=libc++ -Wno-deprecated-declarations"
- fi
- elif [ "${WIN32}" -eq 1 ]; then
- BUILD_FLAGS+=" -DFLUIDSYNTH_NOT_A_DLL -DPTW32_STATIC_LIB -mstackrealign"
- fi
-
- TARGET_CFLAGS="${BUILD_FLAGS}"
- TARGET_CXXFLAGS="${BUILD_FLAGS} -fvisibility-inlines-hidden"
-
- ## link flags
-
- LINK_FLAGS="-L${PAWPAW_PREFIX}/lib"
- LINK_FLAGS+=" -fdata-sections -ffunction-sections -fstack-protector"
-
- if [ "${MACOS}" -eq 1 ]; then
- LINK_FLAGS+=" -Wl,-dead_strip -Wl,-dead_strip_dylibs"
-
- if [ "${MACOS_OLD}" -eq 1 ]; then
- LINK_FLAGS+=" -mmacosx-version-min=10.5"
- elif [ "${MACOS_UNIVERSAL}" -eq 1 ]; then
- LINK_FLAGS+=" -mmacosx-version-min=10.12 -arch x86_64 -arch arm64"
- else
- LINK_FLAGS+=" -mmacosx-version-min=10.8 -stdlib=libc++"
- fi
- else
- LINK_FLAGS+=" -Wl,-O1 -Wl,--as-needed -Wl,--gc-sections -Wl,--no-undefined -Wl,--strip-all"
- if [ "${WIN32}" -eq 1 ]; then
- LINK_FLAGS+=" -static -lssp_nonshared -Wl,-Bstatic"
- fi
- fi
-
- TARGET_LDFLAGS="${LINK_FLAGS}"
-
- ## toolchain
-
- if [ "${CROSS_COMPILING}" -eq 1 ]; then
- if [ "${MACOS}" -eq 1 ]; then
- TOOLCHAIN_PREFIX="i686-apple-darwin10"
- TOOLCHAIN_PREFIX_="${TOOLCHAIN_PREFIX}-"
- elif [ "${WIN64}" -eq 1 ]; then
- TOOLCHAIN_PREFIX="x86_64-w64-mingw32"
- TOOLCHAIN_PREFIX_="${TOOLCHAIN_PREFIX}-"
- elif [ "${WIN32}" -eq 1 ]; then
- TOOLCHAIN_PREFIX="i686-w64-mingw32"
- TOOLCHAIN_PREFIX_="${TOOLCHAIN_PREFIX}-"
- fi
- fi
-
- TARGET_AR="${TOOLCHAIN_PREFIX_}ar"
- TARGET_CC="${TOOLCHAIN_PREFIX_}gcc"
- TARGET_CXX="${TOOLCHAIN_PREFIX_}g++"
- TARGET_LD="${TOOLCHAIN_PREFIX_}ld"
- TARGET_STRIP="${TOOLCHAIN_PREFIX_}strip"
- TARGET_PATH="${PAWPAW_PREFIX}/bin:/usr/${TOOLCHAIN_PREFIX}/bin:${PATH}"
- TARGET_PKG_CONFIG="${PAWPAW_PREFIX}/bin/pkg-config --static"
- TARGET_PKG_CONFIG_PATH="${PAWPAW_PREFIX}/lib/pkgconfig"
-
- # ---------------------------------------------------------------------------------------------------------------------
- # other
-
- MAKE_ARGS=""
- WAF_ARGS=""
-
- if which nproc > /dev/null; then
- MAKE_ARGS+="-j $(nproc)"
- WAF_ARGS+="-j $(nproc)"
- elif [ "${MACOS}" -eq 1 ]; then
- MAKE_ARGS+="-j $(sysctl -n hw.logicalcpu)"
- WAF_ARGS+="-j $(sysctl -n hw.logicalcpu)"
- fi
-
- if [ "${CROSS_COMPILING}" -eq 1 ]; then
- MAKE_ARGS+=" CROSS_COMPILING=true"
- fi
-
- if [ "${MACOS}" -eq 1 ]; then
- MAKE_ARGS+=" MACOS=true"
- if [ "${MACOS_OLD}" -eq 1 ]; then
- MAKE_ARGS+=" MACOS_OLD=true"
- elif [ "${MACOS_UNIVERSAL}" -eq 1 ]; then
- MAKE_ARGS+=" MACOS_UNIVERSAL=true"
- fi
- elif [ "${WIN32}" -eq 1 ]; then
- MAKE_ARGS+=" WINDOWS=true WIN32=true"
- if [ "${WIN64}" -eq 1 ]; then
- MAKE_ARGS+=" WIN64=true"
- fi
- export EXE_WRAPPER="wine"
- fi
-
- # ---------------------------------------------------------------------------------------------------------------------
|