Skip to content

Instantly share code, notes, and snippets.

@dpo
Created January 7, 2019 21:55
Show Gist options
  • Save dpo/37e3d94e4e772da97dc2bb9b7aeb3435 to your computer and use it in GitHub Desktop.
Save dpo/37e3d94e4e772da97dc2bb9b7aeb3435 to your computer and use it in GitHub Desktop.
using BinaryProvider # requires BinaryProvider 0.3.0 or later
# Parse some basic command-line arguments
const verbose = "--verbose" in ARGS
const prefix = Prefix(get([a for a in ARGS if a != "--verbose"], 1, joinpath(@__DIR__, "usr")))
products = [
LibraryProduct(prefix, ["libopenblas", "libopenblas64_"], :libopenblas),
]
# Download binaries from hosted location
bin_prefix = "https://github.com/JuliaLinearAlgebra/OpenBLASBuilder/releases/download/v0.3.0-3"
# Listing of files generated by BinaryBuilder:
download_info = Dict(
Linux(:aarch64, libc=:glibc, compiler_abi=CompilerABI(:gcc4)) => ("$bin_prefix/OpenBLAS.v0.3.0.aarch64-linux-gnu-gcc4.tar.gz", "901a95fda10165814821dd74bb7db83564ea8ab7c17bb56fba1ec98c689a5199"),
Linux(:aarch64, libc=:glibc, compiler_abi=CompilerABI(:gcc7)) => ("$bin_prefix/OpenBLAS.v0.3.0.aarch64-linux-gnu-gcc7.tar.gz", "cac22d5c7c38ed2e91de6628fb512f83a9c33ac909cf0446c886190f886275e4"),
Linux(:aarch64, libc=:glibc, compiler_abi=CompilerABI(:gcc8)) => ("$bin_prefix/OpenBLAS.v0.3.0.aarch64-linux-gnu-gcc8.tar.gz", "0bfb9d1dad5b9553021b0e6dd2f515bf8903c9ea6dd8de14e19b85b7197b2490"),
Linux(:aarch64, libc=:musl, compiler_abi=CompilerABI(:gcc4)) => ("$bin_prefix/OpenBLAS.v0.3.0.aarch64-linux-musl-gcc4.tar.gz", "370fe1bc0be1f7f93bd32db132ce6e8a1d3dd5a7ea1d06f1c420c337feb41ebd"),
Linux(:aarch64, libc=:musl, compiler_abi=CompilerABI(:gcc7)) => ("$bin_prefix/OpenBLAS.v0.3.0.aarch64-linux-musl-gcc7.tar.gz", "e42e11fe813a886819f163084825663bae0f0db497cc30f3d1a8e80c0a69d1fd"),
Linux(:aarch64, libc=:musl, compiler_abi=CompilerABI(:gcc8)) => ("$bin_prefix/OpenBLAS.v0.3.0.aarch64-linux-musl-gcc8.tar.gz", "649084de8aaa197cc2870282056f96cbc47c5fef4445bd8f699f66d6751e4be0"),
Linux(:armv7l, libc=:glibc, call_abi=:eabihf, compiler_abi=CompilerABI(:gcc4)) => ("$bin_prefix/OpenBLAS.v0.3.0.arm-linux-gnueabihf-gcc4.tar.gz", "1ca1a422ba6e743f4b8637bff8f0a3a69055bb480fb24e5d7a9241fae7acfc88"),
Linux(:armv7l, libc=:glibc, call_abi=:eabihf, compiler_abi=CompilerABI(:gcc7)) => ("$bin_prefix/OpenBLAS.v0.3.0.arm-linux-gnueabihf-gcc7.tar.gz", "65c32a31fed49e69e220b643c3563104d28f4c2b2090b203e1136a9d482002fa"),
Linux(:armv7l, libc=:glibc, call_abi=:eabihf, compiler_abi=CompilerABI(:gcc8)) => ("$bin_prefix/OpenBLAS.v0.3.0.arm-linux-gnueabihf-gcc8.tar.gz", "4c7dd49d85ad4ffc894fa1f3d80ee67e8d529a0dd9bfbbef6393bafb577bc37b"),
Linux(:armv7l, libc=:musl, call_abi=:eabihf, compiler_abi=CompilerABI(:gcc4)) => ("$bin_prefix/OpenBLAS.v0.3.0.arm-linux-musleabihf-gcc4.tar.gz", "2ea6e0fdecce81c198f96620b11181c3835073d3739d38f16c3f13ae78c2e21d"),
Linux(:armv7l, libc=:musl, call_abi=:eabihf, compiler_abi=CompilerABI(:gcc7)) => ("$bin_prefix/OpenBLAS.v0.3.0.arm-linux-musleabihf-gcc7.tar.gz", "c6b331dbfb0e79a7c8636dabb77177b7f5380c8fe75ef2b86f004910dd1e88f7"),
Linux(:armv7l, libc=:musl, call_abi=:eabihf, compiler_abi=CompilerABI(:gcc8)) => ("$bin_prefix/OpenBLAS.v0.3.0.arm-linux-musleabihf-gcc8.tar.gz", "b7f0844f735c532b1f2ceb056a82a91b2726a1b0b4cbb80c721c4fd5955e9a09"),
Linux(:i686, libc=:glibc, compiler_abi=CompilerABI(:gcc4)) => ("$bin_prefix/OpenBLAS.v0.3.0.i686-linux-gnu-gcc4.tar.gz", "3c5ee3cf3f374c70cecfdb649146c96f3725a681d67ff243bf9261a2a7eadb63"),
Linux(:i686, libc=:glibc, compiler_abi=CompilerABI(:gcc7)) => ("$bin_prefix/OpenBLAS.v0.3.0.i686-linux-gnu-gcc7.tar.gz", "176fba543b28e4077f003e365b9b16bc98f54c41185df3a4de6cd786380571f7"),
Linux(:i686, libc=:glibc, compiler_abi=CompilerABI(:gcc8)) => ("$bin_prefix/OpenBLAS.v0.3.0.i686-linux-gnu-gcc8.tar.gz", "59028d3010fb63dd55b06eeb771ecb966a8a88d1b7ecc6be45206ecf7b40c387"),
Linux(:i686, libc=:musl, compiler_abi=CompilerABI(:gcc4)) => ("$bin_prefix/OpenBLAS.v0.3.0.i686-linux-musl-gcc4.tar.gz", "5cc89e90e4b04ffa38235e9d978c782c4a0af83e42130cd0e3a9314c8bea6a66"),
Linux(:i686, libc=:musl, compiler_abi=CompilerABI(:gcc7)) => ("$bin_prefix/OpenBLAS.v0.3.0.i686-linux-musl-gcc7.tar.gz", "59b36e31e471c505c73ed7244f0c1871fc604339f38f850774977d61b8014d35"),
Linux(:i686, libc=:musl, compiler_abi=CompilerABI(:gcc8)) => ("$bin_prefix/OpenBLAS.v0.3.0.i686-linux-musl-gcc8.tar.gz", "195bbf159c84357c194d06730abbe996eb8f4099a59e6d3bf9a6e692e48e5659"),
Windows(:i686, compiler_abi=CompilerABI(:gcc4)) => ("$bin_prefix/OpenBLAS.v0.3.0.i686-w64-mingw32-gcc4.tar.gz", "7dfc6842877f1ae4cda671d51ca622a37ce91d3bd69464b6d6e56806194ebb32"),
Windows(:i686, compiler_abi=CompilerABI(:gcc7)) => ("$bin_prefix/OpenBLAS.v0.3.0.i686-w64-mingw32-gcc7.tar.gz", "14131fda3724de70c9428572e119694df571c857a67cc16628d0f4741c509b58"),
Windows(:i686, compiler_abi=CompilerABI(:gcc8)) => ("$bin_prefix/OpenBLAS.v0.3.0.i686-w64-mingw32-gcc8.tar.gz", "8a11b80e2f5e38f84b716415c59331f737b888301960bbb0b619a36d52dff854"),
Linux(:powerpc64le, libc=:glibc, compiler_abi=CompilerABI(:gcc4)) => ("$bin_prefix/OpenBLAS.v0.3.0.powerpc64le-linux-gnu-gcc4.tar.gz", "da2757b180d4ea22e26deebc7e9bb803d87bbf6db2b111169a15f29b64f0b5a6"),
Linux(:powerpc64le, libc=:glibc, compiler_abi=CompilerABI(:gcc7)) => ("$bin_prefix/OpenBLAS.v0.3.0.powerpc64le-linux-gnu-gcc7.tar.gz", "7dcccba1ab2295482ecae517bcb799f8f1e65f30a9193742d7dad6363a34b303"),
Linux(:powerpc64le, libc=:glibc, compiler_abi=CompilerABI(:gcc8)) => ("$bin_prefix/OpenBLAS.v0.3.0.powerpc64le-linux-gnu-gcc8.tar.gz", "003c264f73147e318aa0d7b3000f0d4ff6127127d0f36a9cc4713af7301367b3"),
MacOS(:x86_64, compiler_abi=CompilerABI(:gcc4)) => ("$bin_prefix/OpenBLAS.v0.3.0.x86_64-apple-darwin14-gcc4.tar.gz", "fec0736b5762466ce049742d0821d0a687a88d387fe3c179d5b161c35bcab32f"),
MacOS(:x86_64, compiler_abi=CompilerABI(:gcc7)) => ("$bin_prefix/OpenBLAS.v0.3.0.x86_64-apple-darwin14-gcc7.tar.gz", "c74b622baeab174a846a66b6d4acd96ec9aa5f83036fc70b61491e0398555eff"),
MacOS(:x86_64, compiler_abi=CompilerABI(:gcc8)) => ("$bin_prefix/OpenBLAS.v0.3.0.x86_64-apple-darwin14-gcc8.tar.gz", "97829c6d2bcc6f708e002013e15f00018d7f91557e979990f6edeab7edd2ea92"),
Linux(:x86_64, libc=:glibc, compiler_abi=CompilerABI(:gcc4)) => ("$bin_prefix/OpenBLAS.v0.3.0.x86_64-linux-gnu-gcc4.tar.gz", "1a52318242fe4873456fb49bfe966943038811642ca538a720bdf90c16e6af15"),
Linux(:x86_64, libc=:glibc, compiler_abi=CompilerABI(:gcc7)) => ("$bin_prefix/OpenBLAS.v0.3.0.x86_64-linux-gnu-gcc7.tar.gz", "6d3e6a6a8abd73312ff492c1f2d6f59ae98949548840ae3d0cb30c03915ecd10"),
Linux(:x86_64, libc=:glibc, compiler_abi=CompilerABI(:gcc8)) => ("$bin_prefix/OpenBLAS.v0.3.0.x86_64-linux-gnu-gcc8.tar.gz", "a78289726ac3bd9f9158ffd99c40e4ae08a2e526cf65949ed1dbcd7e4c2414ac"),
Linux(:x86_64, libc=:musl, compiler_abi=CompilerABI(:gcc4)) => ("$bin_prefix/OpenBLAS.v0.3.0.x86_64-linux-musl-gcc4.tar.gz", "6220be2ba5a3c0ab6040cb45454bb97dbf5b72ef3cab8af9450406c418a53eee"),
Linux(:x86_64, libc=:musl, compiler_abi=CompilerABI(:gcc7)) => ("$bin_prefix/OpenBLAS.v0.3.0.x86_64-linux-musl-gcc7.tar.gz", "2faa9964c9a301110850d4ccf173b520c7edc9f510a8a0531379798f52ae4cf7"),
Linux(:x86_64, libc=:musl, compiler_abi=CompilerABI(:gcc8)) => ("$bin_prefix/OpenBLAS.v0.3.0.x86_64-linux-musl-gcc8.tar.gz", "a28788495aa8f9719030152e81cac44d1f2865e3caf296c63e7cdd0d2e10b8a5"),
FreeBSD(:x86_64, compiler_abi=CompilerABI(:gcc4)) => ("$bin_prefix/OpenBLAS.v0.3.0.x86_64-unknown-freebsd11.1-gcc4.tar.gz", "c14e7381330ff768bbe499de87eb7f99be1497f6482d985515c0559d9bf18711"),
FreeBSD(:x86_64, compiler_abi=CompilerABI(:gcc7)) => ("$bin_prefix/OpenBLAS.v0.3.0.x86_64-unknown-freebsd11.1-gcc7.tar.gz", "869444c857088de98392438945b9fc466abcec65dd820af995d8e12b37cfc64a"),
FreeBSD(:x86_64, compiler_abi=CompilerABI(:gcc8)) => ("$bin_prefix/OpenBLAS.v0.3.0.x86_64-unknown-freebsd11.1-gcc8.tar.gz", "7615819525f1061c64b0c00f75632144311b6b185c01abb57ec50c7a234ddded"),
Windows(:x86_64, compiler_abi=CompilerABI(:gcc4)) => ("$bin_prefix/OpenBLAS.v0.3.0.x86_64-w64-mingw32-gcc4.tar.gz", "fce586b6777c4a8c6e30c79c80b3d680caa46c55d51736bebaf8f7a02c5c0dfb"),
Windows(:x86_64, compiler_abi=CompilerABI(:gcc7)) => ("$bin_prefix/OpenBLAS.v0.3.0.x86_64-w64-mingw32-gcc7.tar.gz", "20b0ad8be5254295827a3037e55ecd71092a4aab8ee42aabdfbe846b68e09f8d"),
Windows(:x86_64, compiler_abi=CompilerABI(:gcc8)) => ("$bin_prefix/OpenBLAS.v0.3.0.x86_64-w64-mingw32-gcc8.tar.gz", "a6111d5a4bdb7e4d6f4020ae90c52ab9ad560c034f0ade80d72f225d2457d43c"),
)
# Install unsatisfied or updated dependencies:
unsatisfied = any(!satisfied(p; verbose=verbose) for p in products)
dl_info = choose_download(download_info, platform_key_abi())
if dl_info === nothing && unsatisfied
# If we don't have a compatible .tar.gz to download, complain.
# Alternatively, you could attempt to install from a separate provider,
# build from source or something even more ambitious here.
error("Your platform (\"$(Sys.MACHINE)\", parsed as \"$(triplet(platform_key_abi()))\") is not supported by this package!")
end
# If we have a download, and we are unsatisfied (or the version we're
# trying to install is not itself installed) then load it up!
if unsatisfied || !isinstalled(dl_info...; prefix=prefix)
# Download and install binaries
@info "downloading OpenBLAS" dl_info
install(dl_info...; prefix=prefix, force=true, verbose=verbose)
end
# Write out a deps.jl file that will contain mappings for our products
# write_deps_file(joinpath(@__DIR__, "deps.jl"), products, verbose=verbose)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment