89 lines
2.9 KiB
Bash
89 lines
2.9 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
# Determina la directory common indipendentemente dalla directory corrente.
|
|
MARTE_COMMON_DIR="$(
|
|
cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 &&
|
|
pwd
|
|
)"
|
|
|
|
# Carica i percorsi canonici della benchmark suite.
|
|
source "$MARTE_COMMON_DIR/paths.sh"
|
|
|
|
# Directory contenenti le librerie richieste dagli scenari S00, S01 e S02.
|
|
MARTE2_CORE_LIB_DIR="$MARTE2_ROOT/Build/$MARTE_TARGET/Core"
|
|
LINUX_TIMER_LIB_DIR="$MARTE2_COMPONENTS_ROOT/Build/$MARTE_TARGET/Components/DataSources/LinuxTimer"
|
|
LOGGER_DATA_SOURCE_LIB_DIR="$MARTE2_COMPONENTS_ROOT/Build/$MARTE_TARGET/Components/DataSources/LoggerDataSource"
|
|
FILE_DATA_SOURCE_LIB_DIR="$MARTE2_COMPONENTS_ROOT/Build/$MARTE_TARGET/Components/DataSources/FileDataSource"
|
|
IOGAM_LIB_DIR="$MARTE2_COMPONENTS_ROOT/Build/$MARTE_TARGET/Components/GAMs/IOGAM"
|
|
|
|
# Librerie che devono essere presenti.
|
|
MARTE2_CORE_LIB="$MARTE2_CORE_LIB_DIR/MARTe2.so"
|
|
LINUX_TIMER_LIB="$LINUX_TIMER_LIB_DIR/LinuxTimer.so"
|
|
LOGGER_DATA_SOURCE_LIB="$LOGGER_DATA_SOURCE_LIB_DIR/LoggerDataSource.so"
|
|
FILE_DATA_SOURCE_LIB="$FILE_DATA_SOURCE_LIB_DIR/FileDataSource.so"
|
|
IOGAM_LIB="$IOGAM_LIB_DIR/IOGAM.so"
|
|
|
|
# Verifica delle directory runtime.
|
|
for marte_runtime_dir in \
|
|
"$MARTE2_CORE_LIB_DIR" \
|
|
"$LINUX_TIMER_LIB_DIR" \
|
|
"$LOGGER_DATA_SOURCE_LIB_DIR" \
|
|
"$FILE_DATA_SOURCE_LIB_DIR" \
|
|
"$IOGAM_LIB_DIR"
|
|
do
|
|
if [ ! -d "$marte_runtime_dir" ]; then
|
|
printf "DIRECTORY RUNTIME ASSENTE: %s\n" "$marte_runtime_dir" >&2
|
|
return 2 2>/dev/null || exit 2
|
|
fi
|
|
done
|
|
|
|
# Verifica delle librerie runtime.
|
|
for marte_runtime_lib in \
|
|
"$MARTE2_CORE_LIB" \
|
|
"$LINUX_TIMER_LIB" \
|
|
"$LOGGER_DATA_SOURCE_LIB" \
|
|
"$FILE_DATA_SOURCE_LIB" \
|
|
"$IOGAM_LIB"
|
|
do
|
|
if [ ! -f "$marte_runtime_lib" ]; then
|
|
printf "LIBRERIA RUNTIME ASSENTE: %s\n" "$marte_runtime_lib" >&2
|
|
return 3 2>/dev/null || exit 3
|
|
fi
|
|
done
|
|
|
|
# Inserisce una directory allinizio di LD_LIBRARY_PATH solo se non è già presente.
|
|
marte_prepend_library_path() {
|
|
marte_directory="$1"
|
|
|
|
case ":${LD_LIBRARY_PATH-}:" in
|
|
*":${marte_directory}:"*)
|
|
;;
|
|
*)
|
|
if [ -n "${LD_LIBRARY_PATH-}" ]; then
|
|
LD_LIBRARY_PATH="${marte_directory}:${LD_LIBRARY_PATH}"
|
|
else
|
|
LD_LIBRARY_PATH="${marte_directory}"
|
|
fi
|
|
;;
|
|
esac
|
|
}
|
|
|
|
# Ordine inverso perché ogni voce viene inserita in testa.
|
|
marte_prepend_library_path "$FILE_DATA_SOURCE_LIB_DIR"
|
|
marte_prepend_library_path "$IOGAM_LIB_DIR"
|
|
marte_prepend_library_path "$LOGGER_DATA_SOURCE_LIB_DIR"
|
|
marte_prepend_library_path "$LINUX_TIMER_LIB_DIR"
|
|
marte_prepend_library_path "$MARTE2_CORE_LIB_DIR"
|
|
|
|
export MARTE2_CORE_LIB_DIR
|
|
export LINUX_TIMER_LIB_DIR
|
|
export LOGGER_DATA_SOURCE_LIB_DIR
|
|
export FILE_DATA_SOURCE_LIB_DIR
|
|
export IOGAM_LIB_DIR
|
|
export LD_LIBRARY_PATH
|
|
|
|
unset marte_runtime_dir
|
|
unset marte_runtime_lib
|
|
unset marte_directory
|
|
unset -f marte_prepend_library_path
|