#!/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