configure_build.sh 2.77 KB
Newer Older
1
# Find, load common utilities
Andrew Murray's avatar
Andrew Murray committed
2
# Defines IS_MACOS, fetch_unpack
3
4
5
MULTIBUILD_DIR=$(dirname "${BASH_SOURCE[0]}")
source $MULTIBUILD_DIR/common_utils.sh

6
7
8
9
10
11
# Only source configure_build once
if [ -n "$CONFIGURE_BUILD_SOURCED" ]; then
    return
fi
CONFIGURE_BUILD_SOURCED=1

12
BUILD_PREFIX="${BUILD_PREFIX:-/usr/local}"
mattip's avatar
mattip committed
13
MB_ML_VER=${MB_ML_VER:-1}
14

Andrew Murray's avatar
Andrew Murray committed
15
16
# IS_MACOS is defined in common_utils.sh
if [ -n "$IS_MACOS" ]; then
17
    # Default compilation flags for OSX
18
    source $MULTIBUILD_DIR/osx_utils.sh
19
    PLAT=${PLAT:-$(macpython_arch_for_version $MB_PYTHON_VERSION)}
20
    if [[ $PLAT == intel ]]; then
21
        ARCH_FLAGS=${ARCH_FLAGS:-"-arch i386 -arch x86_64"}
22
    elif [[ $PLAT == x86_64 ]]; then
23
        ARCH_FLAGS=${ARCH_FLAGS:-"-arch x86_64"}
Isuru Fernando's avatar
Isuru Fernando committed
24
25
26
27
    elif [[ $PLAT == arm64 ]]; then
        ARCH_FLAGS=${ARCH_FLAGS:-"-arch arm64"}
    elif [[ $PLAT == universal2 ]]; then
        # Do nothing as we are going with fusing wheels
Isuru Fernando's avatar
Isuru Fernando committed
28
        ARCH_FLAGS=${ARCH_FLAGS:-}
29
    else
Isuru Fernando's avatar
Isuru Fernando committed
30
        echo "Invalid platform = '$PLAT'. Supported values are 'intel', 'x86_64', 'arm64' or 'universal2'"
31
32
        exit 1
    fi
33
34
35
36
37
    # Only set CFLAGS, FFLAGS if they are not already defined.  Build functions
    # can override the arch flags by setting CFLAGS, FFLAGS
    export CFLAGS="${CFLAGS:-$ARCH_FLAGS}"
    export CXXFLAGS="${CXXFLAGS:-$ARCH_FLAGS}"
    export FFLAGS="${FFLAGS:-$ARCH_FLAGS}"
38
39
40

    # Disable homebrew auto-update
    export HOMEBREW_NO_AUTO_UPDATE=1
Uwe L. Korn's avatar
Uwe L. Korn committed
41
else
42
43
    # default compilation flags for linux
    PLAT="${PLAT:-x86_64}"
Uwe L. Korn's avatar
Uwe L. Korn committed
44
45
46
47
48
49
    # Strip all binaries after compilation.
    STRIP_FLAGS=${STRIP_FLAGS:-"-Wl,-strip-all"}

    export CFLAGS="${CFLAGS:-$STRIP_FLAGS}"
    export CXXFLAGS="${CXXFLAGS:-$STRIP_FLAGS}"
    export FFLAGS="${FFLAGS:-$STRIP_FLAGS}"
mattip's avatar
mattip committed
50
51
    if [[ $MB_ML_VER == "_2_24" ]]; then
        # This is the first opportunity to distinguish between manylinux's
52
        apt update
mattip's avatar
mattip committed
53
        if [ "${MB_PYTHON_VERSION:0:4}" == "pypy" ]; then
mattip's avatar
mattip committed
54
            # debian:9 based distro
mattip's avatar
mattip committed
55
56
            apt install -y wget
        fi
mattip's avatar
mattip committed
57
58
59
60
    elif [[ $MB_ML_VER == "1" ]]; then
        # Need libtool, and for pypy need wget
        # centos based distro
        yum install -y libtool wget
mattip's avatar
mattip committed
61
    elif [ "${MB_PYTHON_VERSION:0:4}" == "pypy" ]; then
mattip's avatar
mattip committed
62
        # centos based distro
mattip's avatar
mattip committed
63
64
        yum install -y wget
    fi
65
66
fi

67
68
69
70
71
72
73
74
75
76
export CPPFLAGS_BACKUP="$CPPFLAGS"
export LIBRARY_PATH_BACKUP="$LIBRARY_PATH"
export PKG_CONFIG_PATH_BACKUP="$PKG_CONFIG_PATH"

function update_env_for_build_prefix {
  # Promote BUILD_PREFIX on search path to any newly built libs
  export CPPFLAGS="-I$BUILD_PREFIX/include $CPPFLAGS_BACKUP"
  export LIBRARY_PATH="$BUILD_PREFIX/lib:$LIBRARY_PATH_BACKUP"
  export PKG_CONFIG_PATH="$BUILD_PREFIX/lib/pkgconfig/:$PKG_CONFIG_PATH_BACKUP"
  # Add binary path for configure utils etc
Isuru Fernando's avatar
Isuru Fernando committed
77
  export PATH="$BUILD_PREFIX/bin:$PATH"
78
79
80
}

update_env_for_build_prefix