Skip to content

Commit d5087c8

Browse files
Merge pull request #897 from ursg/library_build_script
Script to automaticall build libraries. Replaces build_libraries CI step
2 parents eacd354 + 66fc33d commit d5087c8

File tree

2 files changed

+69
-42
lines changed

2 files changed

+69
-42
lines changed

.github/workflows/github-ci.yml

Lines changed: 4 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -17,48 +17,10 @@ jobs:
1717
container: ursg/vlasiator_ci:20230220_1
1818

1919
steps:
20-
- name: Setup libraries dir
21-
run: |
22-
mkdir -p libraries/include
23-
mkdir -p libraries/lib
24-
mkdir library-build
25-
cd library-build
26-
- name: Build phiprof
27-
run: |
28-
git clone https://github.com/fmihpc/phiprof/
29-
cd phiprof/src
30-
make -j 4 CCC=mpic++
31-
cp ../include/* $GITHUB_WORKSPACE/libraries/include
32-
cp ../lib/* $GITHUB_WORKSPACE/libraries/lib
33-
cd ../..
34-
- name: Build VLSV
35-
run: |
36-
git clone https://github.com/fmihpc/vlsv.git
37-
cd vlsv
38-
make
39-
cp libvlsv.a $GITHUB_WORKSPACE/libraries/lib
40-
cp *.h $GITHUB_WORKSPACE/libraries/include
41-
cd ..
42-
- name: Build papi
43-
run: |
44-
git clone https://github.com/icl-utk-edu/papi
45-
cd papi/src
46-
./configure --prefix=$GITHUB_WORKSPACE/libraries && make -j 4 CC=gcc && make install
47-
cd ../..
48-
- name: Build jemalloc
49-
run: |
50-
wget https://github.com/jemalloc/jemalloc/releases/download/4.0.4/jemalloc-4.0.4.tar.bz2
51-
tar xf jemalloc-4.0.4.tar.bz2
52-
cd jemalloc-4.0.4
53-
./configure --prefix=$GITHUB_WORKSPACE/libraries --with-jemalloc-prefix=je_ && make -j 4 && make install
54-
cd ..
55-
- name: Build Zoltan
56-
run: |
57-
git clone https://github.com/sandialabs/Zoltan.git
58-
mkdir zoltan-build
59-
cd zoltan-build
60-
../Zoltan/configure --prefix=$GITHUB_WORKSPACE/libraries --enable-mpi --with-mpi-compilers --with-gnumake --with-id-type=ullong && make -j 4 && make install
61-
cd ..
20+
- name: Checkout source
21+
uses: actions/checkout@v3
22+
- name: Run library build script
23+
run: ./build_libraries.sh
6224
- name: Build libraries tar
6325
run: tar --zstd -cvf libraries.tar.zstd libraries/
6426
- name: Upload libraries as artifact

build_libraries.sh

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
#!/bin/bash
2+
3+
set -e # Abort on error
4+
5+
WORKSPACE=`pwd`
6+
7+
if [[ z$1 != "z" ]]; then
8+
PLATFORM=-$1
9+
else
10+
PLATFORM=""
11+
fi
12+
13+
# Clean up old library build dirs and libraries for this platform
14+
rm -rf library-build libraries${PLATFORM}
15+
16+
# Create new ones
17+
mkdir -p libraries${PLATFORM}/include
18+
mkdir -p libraries${PLATFORM}/lib
19+
mkdir library-build
20+
cd library-build
21+
22+
# Build phiprof
23+
git clone https://github.com/fmihpc/phiprof/
24+
cd phiprof/src
25+
make -j 4 CCC=mpic++
26+
cp ../include/* $WORKSPACE/libraries${PLATFORM}/include
27+
cp ../lib/* $WORKSPACE/libraries${PLATFORM}/lib
28+
cd ../..
29+
30+
# Build VLSV
31+
git clone https://github.com/fmihpc/vlsv.git
32+
cd vlsv
33+
make
34+
cp libvlsv.a $WORKSPACE/libraries${PLATFORM}/lib
35+
cp *.h $WORKSPACE/libraries${PLATFORM}/include
36+
cd ..
37+
38+
# Build papi
39+
if [[ $PLATFORM != "-arriesgado" ]]; then # This fails on RISCV
40+
git clone https://github.com/icl-utk-edu/papi
41+
cd papi/src
42+
./configure --prefix=$WORKSPACE/libraries${PLATFORM} && make -j 4 CC=gcc && make install
43+
cd ../..
44+
fi
45+
46+
# Build jemalloc
47+
wget https://github.com/jemalloc/jemalloc/releases/download/4.0.4/jemalloc-4.0.4.tar.bz2
48+
tar xjf jemalloc-4.0.4.tar.bz2
49+
cd jemalloc-4.0.4
50+
./configure --prefix=$WORKSPACE/libraries${PLATFORM} --with-jemalloc-prefix=je_ && make -j 4 && make install
51+
cd ..
52+
53+
# Build Zoltan
54+
git clone https://github.com/sandialabs/Zoltan.git
55+
mkdir zoltan-build
56+
cd zoltan-build
57+
if [[ $PLATFORM != "-arriesgado" ]]; then
58+
../Zoltan/configure --prefix=$WORKSPACE/libraries${PLATFORM} --enable-mpi --with-mpi-compilers --with-gnumake --with-id-type=ullong && make -j 4 && make install
59+
else
60+
../Zoltan/configure --prefix=$WORKSPACE/libraries${PLATFORM} --enable-mpi --with-mpi-compilers --with-gnumake --with-id-type=ullong --build=arm-linux-gnu && make -j 4 && make install
61+
cd ..
62+
fi
63+
64+
git clone https://gitlab.com/libeigen/eigen.git
65+
cp -ua eigen/Eigen $WORKSPACE/libraries${PLATFORM}/include

0 commit comments

Comments
 (0)