xref: /aosp_15_r20/external/pytorch/.ci/docker/manywheel/build_scripts/build_utils.sh (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
1#!/bin/bash
2# Helper utilities for build
3# Script used only in CD pipeline
4
5OPENSSL_DOWNLOAD_URL=https://www.openssl.org/source/old/1.1.1/
6CURL_DOWNLOAD_URL=https://curl.askapache.com/download
7
8AUTOCONF_DOWNLOAD_URL=https://ftp.gnu.org/gnu/autoconf
9
10
11function check_var {
12    if [ -z "$1" ]; then
13        echo "required variable not defined"
14        exit 1
15    fi
16}
17
18
19function do_openssl_build {
20    ./config no-ssl2 no-shared -fPIC --prefix=/usr/local/ssl > /dev/null
21    make > /dev/null
22    make install > /dev/null
23}
24
25
26function check_sha256sum {
27    local fname=$1
28    check_var ${fname}
29    local sha256=$2
30    check_var ${sha256}
31
32    echo "${sha256}  ${fname}" > ${fname}.sha256
33    sha256sum -c ${fname}.sha256
34    rm -f ${fname}.sha256
35}
36
37
38function build_openssl {
39    local openssl_fname=$1
40    check_var ${openssl_fname}
41    local openssl_sha256=$2
42    check_var ${openssl_sha256}
43    check_var ${OPENSSL_DOWNLOAD_URL}
44    curl -sLO ${OPENSSL_DOWNLOAD_URL}/${openssl_fname}.tar.gz
45    check_sha256sum ${openssl_fname}.tar.gz ${openssl_sha256}
46    tar -xzf ${openssl_fname}.tar.gz
47    (cd ${openssl_fname} && do_openssl_build)
48    rm -rf ${openssl_fname} ${openssl_fname}.tar.gz
49}
50
51
52function do_curl_build {
53    LIBS=-ldl ./configure --with-ssl --disable-shared > /dev/null
54    make > /dev/null
55    make install > /dev/null
56}
57
58
59function build_curl {
60    local curl_fname=$1
61    check_var ${curl_fname}
62    local curl_sha256=$2
63    check_var ${curl_sha256}
64    check_var ${CURL_DOWNLOAD_URL}
65    curl -sLO ${CURL_DOWNLOAD_URL}/${curl_fname}.tar.bz2
66    check_sha256sum ${curl_fname}.tar.bz2 ${curl_sha256}
67    tar -jxf ${curl_fname}.tar.bz2
68    (cd ${curl_fname} && do_curl_build)
69    rm -rf ${curl_fname} ${curl_fname}.tar.bz2
70}
71
72
73function do_standard_install {
74    ./configure > /dev/null
75    make > /dev/null
76    make install > /dev/null
77}
78
79
80function build_autoconf {
81    local autoconf_fname=$1
82    check_var ${autoconf_fname}
83    local autoconf_sha256=$2
84    check_var ${autoconf_sha256}
85    check_var ${AUTOCONF_DOWNLOAD_URL}
86    curl -sLO ${AUTOCONF_DOWNLOAD_URL}/${autoconf_fname}.tar.gz
87    check_sha256sum ${autoconf_fname}.tar.gz ${autoconf_sha256}
88    tar -zxf ${autoconf_fname}.tar.gz
89    (cd ${autoconf_fname} && do_standard_install)
90    rm -rf ${autoconf_fname} ${autoconf_fname}.tar.gz
91}
92