Skip to content

Commit 92ef99f

Browse files
authored
Add GPI-2 library for the development of scalable, parallel applications (#4916)
* Add build script for the GPI-2 library * Add comment on necessity of `FileProduct`s
1 parent ee65155 commit 92ef99f

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

G/GPI2/build_tarballs.jl

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Note that this script can accept some limited command-line arguments, run
2+
# `julia build_tarballs.jl --help` to see a usage message.
3+
using BinaryBuilder, Pkg
4+
5+
name = "GPI2"
6+
version = v"1.5.1"
7+
8+
# Collection of sources required to complete build
9+
sources = [
10+
ArchiveSource("https://github.com/cc-hpc-itwm/GPI-2/archive/refs/tags/v$(version).tar.gz", "4dac7e9152694d2ec4aefd982a52ecc064a8cb8f2c9eab0425428127c3719e2e")
11+
]
12+
13+
# Bash recipe for building across all platforms
14+
script = raw"""
15+
cd $WORKSPACE/srcdir
16+
cd GPI-2-*
17+
./autogen.sh
18+
./configure --prefix=$prefix --build=${MACHTYPE} --host=${target} --without-fortran --with-ethernet
19+
make -j${nproc}
20+
make install
21+
"""
22+
23+
# These are the platforms we will build for by default, unless further
24+
# platforms are passed in on the command line
25+
platforms = [
26+
Platform("x86_64", "linux"; libc = "glibc"),
27+
Platform("aarch64", "linux"; libc = "glibc"),
28+
Platform("powerpc64le", "linux"; libc = "glibc")
29+
]
30+
31+
32+
# The products that we will ensure are always built
33+
products = [
34+
LibraryProduct("libGPI2-stats", :libGPI2_stats),
35+
LibraryProduct("libGPI2-dbg", :libGPI2_dbg),
36+
LibraryProduct("libGPI2", :libGPI2),
37+
ExecutableProduct("gaspi_logger", :gaspi_logger),
38+
# The following are shell scripts that are required for GPI-2 to work,
39+
# thus they are added as `FileProduct`s
40+
FileProduct("bin/gaspi_run", :gaspi_run),
41+
FileProduct("bin/gaspi_cleanup", :gaspi_cleanup),
42+
FileProduct("bin/ssh.spawner", :ssh_spawner),
43+
]
44+
45+
# Dependencies that must be installed before this package can be built
46+
dependencies = Dependency[
47+
]
48+
49+
# Build the tarballs, and possibly a `build.jl` as well.
50+
build_tarballs(ARGS, name, version, sources, script, platforms, products, dependencies; julia_compat="1.6")

0 commit comments

Comments
 (0)