Use std::string instead of PBD::sys::path in pbd/search_path.h, pbd/file_utils.h...
[ardour.git] / gtk2_ardour / ardour.sh.in
index c661467d014a7acafbb5acc5edee12e9e63858e3..45fdb6f55e2dcd1dec31a9d1074bc0e50a880fba 100644 (file)
@@ -1,18 +1,52 @@
 #!/bin/sh
 
-export GTK_PATH=%INSTALL_PREFIX%/%LIBDIR%/ardour2:$GTK_PATH
+#
+# This script runs an installed version of Ardour. It sets a few environment variables
+# and does a few checks before exec'ing the real executable.
+# 
 
-export LD_LIBRARY_PATH=%INSTALL_PREFIX%/%LIBDIR%/ardour2:$LD_LIBRARY_PATH 
-# DYLD_LIBRARY_PATH is for Darwin
-export DYLD_LIBRARY_PATH=$LD_LIBRARY_PATH
+export GTK_PATH=@SYSCONFDIR@/ardour3${GTK_PATH:+:$GTK_PATH}
+
+export LD_LIBRARY_PATH=@LIBDIR@/ardour3${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
+
+## Memlock check
 
 MLOCK_LIMIT=$(ulimit -l)
 if [ "$MLOCK_LIMIT" != "unlimited" ]; then
        echo "WARNING: Your system has a limit for maximum amount of locked memory!"
-        echo "This might cause Ardour to run out of memory before your system runs out of memory. You can view the memory limit with 'ulimit -l', and it is normally controlled by /etc/security/limits.conf"
+       echo "         This might cause Ardour to run out of memory before your system runs"
+       echo "         out of memory. You can view the memory limit with 'ulimit -l', and it"
+       echo "         is normally controlled by /etc/security/limits.conf"
+       echo ""
+
+fi
 
+## Glib atomic test
+
+GLIB=$(ldd @LIBDIR@/ardour3/ardour-@VERSION@ 2> /dev/null | grep glib-2.0 | sed 's/.*=> \([^ ]*\) .*/\1/')
+
+if [ "$GLIB" = "" ]; then
+       echo "WARNING: Could not check your glib-2.0 for mutex locking atomic operations."
+       echo ""
+elif [ $(nm -D --radix=dec --defined-only -S $GLIB | grep -w g_atomic_int_add | cut -d ' ' -f 2) -gt 32 ]; then
+       echo "WARNING: Your system contains a suspect libglib-2.0. Your version might be built"
+       echo "         to use mutex locking atomic operations. This is a fallback solution to"
+       echo "         a more robust hardware supported atomicity. It might cause reduced "
+       echo "         performance and/or deadlocks. Please contact your distribution support"
+       echo "         about this issue."
+       echo "         Unfortunately this check is not 100% accurate, so this might not be"
+       echo "         the case with your system."
+       echo ""
 fi
 
-exec %INSTALL_PREFIX%/%LIBDIR%/ardour2/ardour-%VERSION% $*
+#
+# Running Ardour requires these 3 variables to be set
+#
+
+export ARDOUR_DATA_PATH=@DATADIR@/ardour3
+export ARDOUR_CONFIG_PATH=@SYSCONFDIR@/ardour3
+export ARDOUR_DLL_PATH=@LIBDIR@/ardour3
+
+exec @LIBDIR@/ardour3/ardour-@VERSION@ "$@"