Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Use xbt_malloc that never return null.
[simgrid.git] / BuildSimGrid.sh
index 811199f..68432fa 100755 (executable)
@@ -1,11 +1,11 @@
 #!/usr/bin/env sh
 #
 # This little script rebuilds and runs the SimGrid archive in parallel, extracting a log
-# This is almost an internal script, but others may find this useful
+# This is almost a personal script, but others may find this useful
 #
-# Copyright (c) 2017-2019 The SimGrid Team. Licence: LGPL of WDFPL, as you want.
+# Copyright (c) 2017-2022 The SimGrid Team. Licence: LGPL of WDFPL, as you want.
 
-if [ ! -e Makefile ] ; then
+if [ ! -e Makefile ] && [ ! -e build.ninja ]; then
   if [ -e build/default/Makefile ] ; then
     cd build/default
   else
@@ -16,15 +16,23 @@ if [ ! -e Makefile ] ; then
 fi
 
 target=tests
+ncores=$(grep -c processor /proc/cpuinfo)
 
 install_path=$(sed -n 's/^CMAKE_INSTALL_PREFIX:PATH=//p' CMakeCache.txt)
-if [ -e ${install_path} -a -d ${install_path} -a -x ${install_path} -a -w ${install_path} ] ; then
+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}"
-  (nice make -j4 ${target} tests || make ${target} tests) && nice ctest -j4 --output-on-failure ; date
+  echo "Cores: ${ncores}"
+  (nice ${builder} -j${ncores} ${target} tests || make ${target} tests) && nice ctest -j${ncores} --output-on-failure ; date
 ) 2>&1 | tee BuildSimGrid.sh.log