Support for x64 build.
This commit is contained in:
parent
7a8c6a91f8
commit
bf9f765e03
51
build.sh
51
build.sh
@ -7,14 +7,26 @@
|
|||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
readonly MY_MARCH=i386
|
case "$(cc -dumpmachine)" in
|
||||||
readonly MY_MTUNE=intel
|
i686-*)
|
||||||
|
readonly MY_MARCH=i386
|
||||||
|
readonly MY_MTUNE=intel
|
||||||
|
;;
|
||||||
|
x86_64-*)
|
||||||
|
readonly MY_MARCH=x86-64
|
||||||
|
readonly MY_MTUNE=corei7
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unknown compiler detected!";
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
readonly BASE_DIR="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")"
|
readonly BASE_DIR="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")"
|
||||||
readonly LIBS_DIR="${BASE_DIR}/.libs"
|
readonly LIBS_DIR="${BASE_DIR}/.libs/${MY_MARCH}"
|
||||||
|
|
||||||
find "${BASE_DIR}" -maxdepth 1 -type d -name '*-src' -exec rm -rf "{}" \;
|
find "${BASE_DIR}" -maxdepth 1 -type d -name "*-${MY_MARCH}" -exec rm -rf "{}" \;
|
||||||
rm -rf "${LIBS_DIR}" && mkdir "${LIBS_DIR}" "${LIBS_DIR}/include" "${LIBS_DIR}/lib"
|
rm -rf "${LIBS_DIR}" && mkdir -p "${LIBS_DIR}/include" "${LIBS_DIR}/lib"
|
||||||
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
# Download
|
# Download
|
||||||
@ -36,7 +48,7 @@ wget -4 -P "${LIBS_DIR}" https://curl.se/docs/manpage.html
|
|||||||
# zlib
|
# zlib
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
printf "\n==================== zlib ====================\n\n"
|
printf "\n==================== zlib ====================\n\n"
|
||||||
readonly ZLIB_DIR="${BASE_DIR}/zlib-src"
|
readonly ZLIB_DIR="${BASE_DIR}/zlib-${MY_MARCH}"
|
||||||
pkg_zlib="$(find "${LIBS_DIR}" -maxdepth 1 -name 'zlib-*.tar.gz' | sort -rn | head -n1)"
|
pkg_zlib="$(find "${LIBS_DIR}" -maxdepth 1 -name 'zlib-*.tar.gz' | sort -rn | head -n1)"
|
||||||
rm -rf "${ZLIB_DIR}" && mkdir "${ZLIB_DIR}"
|
rm -rf "${ZLIB_DIR}" && mkdir "${ZLIB_DIR}"
|
||||||
tar -xvf "${pkg_zlib}" --strip-components=1 -C "${ZLIB_DIR}"
|
tar -xvf "${pkg_zlib}" --strip-components=1 -C "${ZLIB_DIR}"
|
||||||
@ -50,7 +62,7 @@ popd
|
|||||||
# Zstandard
|
# Zstandard
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
printf "\n==================== Zstandard ====================\n\n"
|
printf "\n==================== Zstandard ====================\n\n"
|
||||||
readonly ZSTD_DIR="${BASE_DIR}/zstd-src"
|
readonly ZSTD_DIR="${BASE_DIR}/zstd-${MY_MARCH}"
|
||||||
pkg_zstd="$(find "${LIBS_DIR}" -maxdepth 1 -name 'zstd-*.tar.gz' | sort -rn | head -n1)"
|
pkg_zstd="$(find "${LIBS_DIR}" -maxdepth 1 -name 'zstd-*.tar.gz' | sort -rn | head -n1)"
|
||||||
rm -rf "${ZSTD_DIR}" && mkdir "${ZSTD_DIR}"
|
rm -rf "${ZSTD_DIR}" && mkdir "${ZSTD_DIR}"
|
||||||
tar -xvf "${pkg_zstd}" --strip-components=1 -C "${ZSTD_DIR}"
|
tar -xvf "${pkg_zstd}" --strip-components=1 -C "${ZSTD_DIR}"
|
||||||
@ -64,7 +76,7 @@ popd
|
|||||||
# Brotli
|
# Brotli
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
printf "\n==================== Brotli ====================\n\n"
|
printf "\n==================== Brotli ====================\n\n"
|
||||||
readonly BROT_DIR="${BASE_DIR}/brotli-src"
|
readonly BROT_DIR="${BASE_DIR}/brotli-${MY_MARCH}"
|
||||||
pkg_brot="$(find "${LIBS_DIR}" -maxdepth 1 -name 'brotli-*.tar.gz' | sort -rn | head -n1)"
|
pkg_brot="$(find "${LIBS_DIR}" -maxdepth 1 -name 'brotli-*.tar.gz' | sort -rn | head -n1)"
|
||||||
rm -rf "${BROT_DIR}" && mkdir "${BROT_DIR}"
|
rm -rf "${BROT_DIR}" && mkdir "${BROT_DIR}"
|
||||||
tar -xvf "${pkg_brot}" --strip-components=1 -C "${BROT_DIR}"
|
tar -xvf "${pkg_brot}" --strip-components=1 -C "${BROT_DIR}"
|
||||||
@ -80,12 +92,13 @@ popd
|
|||||||
# OpenSSL
|
# OpenSSL
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
printf "\n==================== OpenSSL ====================\n\n"
|
printf "\n==================== OpenSSL ====================\n\n"
|
||||||
readonly OSSL_DIR="${BASE_DIR}/openssl-src"
|
readonly OSSL_DIR="${BASE_DIR}/openssl-${MY_MARCH}"
|
||||||
pkg_ossl="$(find "${LIBS_DIR}" -maxdepth 1 -name 'openssl-*.tar.gz' | sort -rn | head -n1)"
|
pkg_ossl="$(find "${LIBS_DIR}" -maxdepth 1 -name 'openssl-*.tar.gz' | sort -rn | head -n1)"
|
||||||
rm -rf "${OSSL_DIR}" && mkdir "${OSSL_DIR}"
|
rm -rf "${OSSL_DIR}" && mkdir "${OSSL_DIR}"
|
||||||
tar -xvf "${pkg_ossl}" --strip-components=1 -C "${OSSL_DIR}"
|
tar -xvf "${pkg_ossl}" --strip-components=1 -C "${OSSL_DIR}"
|
||||||
|
[[ "${MY_MARCH}" == "x86-64" ]] && readonly ossl_flag="no-sse2" || readonly ossl_flag="386"
|
||||||
pushd "${OSSL_DIR}"
|
pushd "${OSSL_DIR}"
|
||||||
./Configure no-hw no-shared no-engine no-capieng no-dso 386 zlib -static -march=${MY_MARCH} -mtune=${MY_MTUNE} -I"${LIBS_DIR}/include" -L"${LIBS_DIR}/lib" -latomic mingw
|
./Configure no-hw no-shared no-engine no-capieng no-dso ${ossl_flag} zlib -static -march=${MY_MARCH} -mtune=${MY_MTUNE} -I"${LIBS_DIR}/include" -L"${LIBS_DIR}/lib" -latomic mingw
|
||||||
make build_libs
|
make build_libs
|
||||||
mkdir -p "${LIBS_DIR}/include/crypto" "${LIBS_DIR}/include/openssl"
|
mkdir -p "${LIBS_DIR}/include/crypto" "${LIBS_DIR}/include/openssl"
|
||||||
cp -vf libcrypto.a libssl.a "${LIBS_DIR}/lib"
|
cp -vf libcrypto.a libssl.a "${LIBS_DIR}/lib"
|
||||||
@ -97,7 +110,7 @@ popd
|
|||||||
# libssh2
|
# libssh2
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
printf "\n==================== libssh2 ====================\n\n"
|
printf "\n==================== libssh2 ====================\n\n"
|
||||||
readonly SSH2_DIR="${BASE_DIR}/libssh2-src"
|
readonly SSH2_DIR="${BASE_DIR}/libssh2-${MY_MARCH}"
|
||||||
pkg_ssh2="$(find "${LIBS_DIR}" -maxdepth 1 -name 'libssh2-*.tar.gz' | sort -rn | head -n1)"
|
pkg_ssh2="$(find "${LIBS_DIR}" -maxdepth 1 -name 'libssh2-*.tar.gz' | sort -rn | head -n1)"
|
||||||
rm -rf "${SSH2_DIR}" && mkdir "${SSH2_DIR}"
|
rm -rf "${SSH2_DIR}" && mkdir "${SSH2_DIR}"
|
||||||
tar -xvf "${pkg_ssh2}" --strip-components=1 -C "${SSH2_DIR}"
|
tar -xvf "${pkg_ssh2}" --strip-components=1 -C "${SSH2_DIR}"
|
||||||
@ -112,7 +125,7 @@ popd
|
|||||||
# nghttp2
|
# nghttp2
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
printf "\n==================== nghttp2 ====================\n\n"
|
printf "\n==================== nghttp2 ====================\n\n"
|
||||||
readonly NGH2_DIR="${BASE_DIR}/nghttp2-src"
|
readonly NGH2_DIR="${BASE_DIR}/nghttp2-${MY_MARCH}"
|
||||||
pkg_ngh2="$(find "${LIBS_DIR}" -maxdepth 1 -name 'nghttp2-*.tar.gz' | sort -rn | head -n1)"
|
pkg_ngh2="$(find "${LIBS_DIR}" -maxdepth 1 -name 'nghttp2-*.tar.gz' | sort -rn | head -n1)"
|
||||||
rm -rf "${NGH2_DIR}" && mkdir "${NGH2_DIR}"
|
rm -rf "${NGH2_DIR}" && mkdir "${NGH2_DIR}"
|
||||||
tar -xvf "${pkg_ngh2}" --strip-components=1 -C "${NGH2_DIR}"
|
tar -xvf "${pkg_ngh2}" --strip-components=1 -C "${NGH2_DIR}"
|
||||||
@ -129,7 +142,7 @@ popd
|
|||||||
# libiconv
|
# libiconv
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
printf "\n==================== libiconv ====================\n\n"
|
printf "\n==================== libiconv ====================\n\n"
|
||||||
readonly ICNV_DIR="${BASE_DIR}/libiconv-src"
|
readonly ICNV_DIR="${BASE_DIR}/libiconv-${MY_MARCH}"
|
||||||
pkg_icnv="$(find "${LIBS_DIR}" -maxdepth 1 -name 'libiconv-*.tar.gz' | sort -rn | head -n1)"
|
pkg_icnv="$(find "${LIBS_DIR}" -maxdepth 1 -name 'libiconv-*.tar.gz' | sort -rn | head -n1)"
|
||||||
rm -rf "${ICNV_DIR}" && mkdir "${ICNV_DIR}"
|
rm -rf "${ICNV_DIR}" && mkdir "${ICNV_DIR}"
|
||||||
tar -xvf "${pkg_icnv}" --strip-components=1 -C "${ICNV_DIR}"
|
tar -xvf "${pkg_icnv}" --strip-components=1 -C "${ICNV_DIR}"
|
||||||
@ -144,7 +157,7 @@ popd
|
|||||||
# libidn2
|
# libidn2
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
printf "\n==================== libidn2 ====================\n\n"
|
printf "\n==================== libidn2 ====================\n\n"
|
||||||
readonly IDN2_DIR="${BASE_DIR}/libidn2-src"
|
readonly IDN2_DIR="${BASE_DIR}/libidn2-${MY_MARCH}"
|
||||||
pkg_idn2="$(find "${LIBS_DIR}" -maxdepth 1 -name 'libidn2-*.tar.gz' | sort -rn | head -n1)"
|
pkg_idn2="$(find "${LIBS_DIR}" -maxdepth 1 -name 'libidn2-*.tar.gz' | sort -rn | head -n1)"
|
||||||
rm -rf "${IDN2_DIR}" && mkdir "${IDN2_DIR}"
|
rm -rf "${IDN2_DIR}" && mkdir "${IDN2_DIR}"
|
||||||
tar -xvf "${pkg_idn2}" --strip-components=1 -C "${IDN2_DIR}"
|
tar -xvf "${pkg_idn2}" --strip-components=1 -C "${IDN2_DIR}"
|
||||||
@ -159,7 +172,7 @@ popd
|
|||||||
# libgsasl
|
# libgsasl
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
printf "\n==================== libgsasl ====================\n\n"
|
printf "\n==================== libgsasl ====================\n\n"
|
||||||
readonly SASL_DIR="${BASE_DIR}/libgsasl-src"
|
readonly SASL_DIR="${BASE_DIR}/libgsasl-${MY_MARCH}"
|
||||||
pkg_sasl="$(find "${LIBS_DIR}" -maxdepth 1 -name 'libgsasl-*.tar.gz' | sort -rn | head -n1)"
|
pkg_sasl="$(find "${LIBS_DIR}" -maxdepth 1 -name 'libgsasl-*.tar.gz' | sort -rn | head -n1)"
|
||||||
rm -rf "${SASL_DIR}" && mkdir "${SASL_DIR}"
|
rm -rf "${SASL_DIR}" && mkdir "${SASL_DIR}"
|
||||||
tar -xvf "${pkg_sasl}" --strip-components=1 -C "${SASL_DIR}"
|
tar -xvf "${pkg_sasl}" --strip-components=1 -C "${SASL_DIR}"
|
||||||
@ -175,7 +188,7 @@ popd
|
|||||||
# libwmain
|
# libwmain
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
printf "\n==================== libwmain ====================\n\n"
|
printf "\n==================== libwmain ====================\n\n"
|
||||||
readonly LWMN_DIR="${BASE_DIR}/libwmain-src"
|
readonly LWMN_DIR="${BASE_DIR}/libwmain-${MY_MARCH}"
|
||||||
pkg_lwmn="$(find "${BASE_DIR}/patch" -maxdepth 1 -name 'libwmain-*.tar.gz' | sort -rn | head -n1)"
|
pkg_lwmn="$(find "${BASE_DIR}/patch" -maxdepth 1 -name 'libwmain-*.tar.gz' | sort -rn | head -n1)"
|
||||||
rm -rf "${LWMN_DIR}" && mkdir "${LWMN_DIR}"
|
rm -rf "${LWMN_DIR}" && mkdir "${LWMN_DIR}"
|
||||||
tar -xvf "${pkg_lwmn}" --strip-components=1 -C "${LWMN_DIR}"
|
tar -xvf "${pkg_lwmn}" --strip-components=1 -C "${LWMN_DIR}"
|
||||||
@ -187,7 +200,7 @@ cp -v libwmain.a "${LIBS_DIR}/lib"
|
|||||||
# cURL
|
# cURL
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
printf "\n==================== cURL ====================\n\n"
|
printf "\n==================== cURL ====================\n\n"
|
||||||
readonly CURL_DIR="${BASE_DIR}/curl-src"
|
readonly CURL_DIR="${BASE_DIR}/curl-${MY_MARCH}"
|
||||||
pkg_curl="$(find "${LIBS_DIR}" -maxdepth 1 -name 'curl-*.tar.gz' | sort -rn | head -n1)"
|
pkg_curl="$(find "${LIBS_DIR}" -maxdepth 1 -name 'curl-*.tar.gz' | sort -rn | head -n1)"
|
||||||
rm -rf "${CURL_DIR}" && mkdir "${CURL_DIR}"
|
rm -rf "${CURL_DIR}" && mkdir "${CURL_DIR}"
|
||||||
tar -xvf ${pkg_curl} --strip-components=1 -C "${CURL_DIR}"
|
tar -xvf ${pkg_curl} --strip-components=1 -C "${CURL_DIR}"
|
||||||
@ -205,7 +218,7 @@ popd
|
|||||||
# Output
|
# Output
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
printf "\n==================== Output ====================\n\n"
|
printf "\n==================== Output ====================\n\n"
|
||||||
readonly OUT_DIR="${BASE_DIR}/.bin"
|
readonly OUT_DIR="${BASE_DIR}/.bin/${MY_MARCH}"
|
||||||
rm -rf "${OUT_DIR}" && mkdir "${OUT_DIR}"
|
rm -rf "${OUT_DIR}" && mkdir "${OUT_DIR}"
|
||||||
pushd "${OUT_DIR}"
|
pushd "${OUT_DIR}"
|
||||||
cp -vf "${CURL_DIR}/src/curl.exe" curl.exe
|
cp -vf "${CURL_DIR}/src/curl.exe" curl.exe
|
||||||
@ -241,7 +254,7 @@ unix2dos -n "${ZSTD_DIR}/README.md" legal/zstandard.README.md
|
|||||||
mkdir -p "${OUT_DIR}/patch"
|
mkdir -p "${OUT_DIR}/patch"
|
||||||
cp -vf "${BASE_DIR}/patch/"*.diff "${BASE_DIR}/patch/"*.tar.gz "${OUT_DIR}/patch"
|
cp -vf "${BASE_DIR}/patch/"*.diff "${BASE_DIR}/patch/"*.tar.gz "${OUT_DIR}/patch"
|
||||||
find "${OUT_DIR}" -type f -exec chmod 444 "{}" \;
|
find "${OUT_DIR}" -type f -exec chmod 444 "{}" \;
|
||||||
readonly zfile="${BASE_DIR}/curl-win32.$(date +"%Y-%m-%d").zip"
|
readonly zfile="${BASE_DIR}/curl-${MY_MARCH}.$(date +"%Y-%m-%d").zip"
|
||||||
rm -rf "${zfile}" && zip -v -r -9 "${zfile}" "."
|
rm -rf "${zfile}" && zip -v -r -9 "${zfile}" "."
|
||||||
chmod 444 "${zfile}"
|
chmod 444 "${zfile}"
|
||||||
popd
|
popd
|
||||||
|
Loading…
Reference in New Issue
Block a user