File: BuildSimGrid.sh

package info (click to toggle)
simgrid 4.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 39,192 kB
  • sloc: cpp: 124,913; ansic: 66,744; python: 8,560; java: 6,773; fortran: 6,079; f90: 5,123; xml: 4,587; sh: 2,194; perl: 1,436; makefile: 111; lisp: 49; javascript: 7; sed: 6
file content (40 lines) | stat: -rwxr-xr-x 1,167 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/usr/bin/env sh
#
# This little script rebuilds and runs the SimGrid archive in parallel, extracting a log
# This is almost a personal script, but others may find this useful
#
# Copyright (c) 2017-2025 The SimGrid Team. Licence: LGPL of WDFPL, as you want.

if [ ! -e Makefile ] && [ ! -e build.ninja ]; then
  if [ -e build/default/Makefile ] ; then
    cd build/default
  else
    echo "Please configure SimGrid before building it:"
    echo "   ccmake ."
    exit 1
  fi
fi

target=examples
ncores=$(grep -c processor /proc/cpuinfo)
halfcores=$(expr $ncores / 2 + 1)

install_path=$(sed -n 's/^CMAKE_INSTALL_PREFIX:PATH=//p' CMakeCache.txt)
if [ -e ${install_path} ] && [ -d ${install_path} ] && [ -x ${install_path} ] && [ -w ${install_path} ] ; then
  target=install
fi

if [ -e build.ninja ] ; then
  builder="ninja"
else
  builder="make"
fi

(
  echo "install_path: ${install_path}"
  echo "Target: ${target}"
  echo "Cores to build: ${ncores}"
  echo "Cores to test: ${halfcores}"
  (nice ${builder} -j${halfcores} ${target} tests || ${builder} -j1 ${target} tests) && nice ctest -j${halfcores} --output-on-failure ; date
) 2>&1 | tee BuildSimGrid.sh.log