#!/bin/bash # --------------------------------------------------------------------------------------------------------------------- # OS setup if [ "${MACOS}" -eq 1 ]; then CMAKE_SYSTEM_NAME="Darwin" if [ "${MACOS_OLD}" -eq 1 ]; then PAWPAW_TARGET="macos-old" 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 elif [ "${LINUX}" -eq 1 ]; then CMAKE_SYSTEM_NAME="Linux" PAWPAW_TARGET="linux" 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="${BUILD_FLAGS} -mtune=generic -msse -msse2 -mfpmath=sse -ffast-math" BUILD_FLAGS="${BUILD_FLAGS} -fPIC -DPIC -DNDEBUG" BUILD_FLAGS="${BUILD_FLAGS} -fdata-sections -ffunction-sections -fno-common -fvisibility=hidden" if [ "${MACOS}" -eq 1 ]; then if [ "${MACOS_OLD}" -eq 1 ]; then BUILD_FLAGS="${BUILD_FLAGS} -mmacosx-version-min=10.5" # BUILD_FLAGS="${BUILD_FLAGS} -I/usr/lib/apple/SDKs/MacOSX10.5.sdk/usr/include" else BUILD_FLAGS="${BUILD_FLAGS} -mmacosx-version-min=10.8 -stdlib=libc++ -Wno-deprecated-declarations" fi elif [ "${WIN32}" -eq 1 ]; then BUILD_FLAGS="${BUILD_FLAGS} -DPTW32_STATIC_LIB -mstackrealign" # -DWIN32_LEAN_AND_MEAN fi # -DFLUIDSYNTH_NOT_A_DLL TARGET_CFLAGS="${BUILD_FLAGS}" TARGET_CXXFLAGS="${BUILD_FLAGS} -fvisibility-inlines-hidden" ## link flags LINK_FLAGS="-L${PAWPAW_PREFIX}/lib" LINK_FLAGS="${LINK_FLAGS} -fdata-sections -ffunction-sections" if [ "${MACOS}" -eq 1 ]; then LINK_FLAGS="${LINK_FLAGS} -Wl,-dead_strip -Wl,-dead_strip_dylibs" if [ "${MACOS_OLD}" -eq 1 ]; then LINK_FLAGS="${LINK_FLAGS} -mmacosx-version-min=10.5" # LINK_FLAGS="${LINK_FLAGS} -L/usr/lib/apple/SDKs/MacOSX10.5.sdk/usr/lib" else LINK_FLAGS="${LINK_FLAGS} -mmacosx-version-min=10.8 -stdlib=libc++" fi else LINK_FLAGS="${LINK_FLAGS} -Wl,-O1 -Wl,--as-needed -Wl,--gc-sections -Wl,--no-undefined -Wl,--strip-all" if [ "${WIN32}" -eq 1 ]; then LINK_FLAGS="${LINK_FLAGS} -static" 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 # "-j 2" MAKE_ARGS="" if [ "${CROSS_COMPILING}" -eq 1 ]; then MAKE_ARGS="${MAKE_ARGS} CROSS_COMPILING=true" fi if [ "${MACOS}" -eq 1 ]; then MAKE_ARGS="${MAKE_ARGS} MACOS=true" if [ "${MACOS_OLD}" -eq 1 ]; then MAKE_ARGS="${MAKE_ARGS} MACOS_OLD=true" fi elif [ "${WIN32}" -eq 1 ]; then MAKE_ARGS="${MAKE_ARGS} WIN32=true WINDOWS=true" fi # ---------------------------------------------------------------------------------------------------------------------