[commit] r2140 - use padsp iff oss built; communicate with VM via env vars

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[commit] r2140 - use padsp iff oss built; communicate with VM via env vars

commits-3
 
Author: piumarta
Date: 2009-09-17 10:10:27 -0700 (Thu, 17 Sep 2009)
New Revision: 2140

Modified:
   trunk/platforms/unix/ChangeLog
   trunk/platforms/unix/cmake/Plugins.cmake
   trunk/platforms/unix/cmake/config.in
   trunk/platforms/unix/cmake/squeak.in
   trunk/platforms/unix/vm/build.cmake
Log:
use padsp iff oss built; communicate with VM via env vars

Modified: trunk/platforms/unix/ChangeLog
===================================================================
--- trunk/platforms/unix/ChangeLog 2009-09-17 15:56:33 UTC (rev 2139)
+++ trunk/platforms/unix/ChangeLog 2009-09-17 17:10:27 UTC (rev 2140)
@@ -1,5 +1,15 @@
 2009-09-17    <[hidden email]>
 
+ * cmake/Plugins.cmake: Set ${plugin}_disabled for each plugin,
+ recording whether the plugin is to be built.
+
+ * vm/build.cmake: Set useoss according to vm-sound-OSS_disabled.
+
+ * cmake/config.in: Substitute [useoss] when configuring.
+
+ * cmake/squeak.in: Communicate with the VM via environment.  Don't
+ attempt to user padsp wrapper unless vm-sound-OSS was built.
+
  * vm/config.cmake: Configure interp as "gnu-interp" if compiler is
  GCC, otherwise "interp".
 

Modified: trunk/platforms/unix/cmake/Plugins.cmake
===================================================================
--- trunk/platforms/unix/cmake/Plugins.cmake 2009-09-17 15:56:33 UTC (rev 2139)
+++ trunk/platforms/unix/cmake/Plugins.cmake 2009-09-17 17:10:27 UTC (rev 2140)
@@ -1,6 +1,6 @@
 # Figure out which plugins to build and create a configuration for each.
 #
-# Last edited: 2009-08-26 21:00:32 by piumarta on emilia-2.local
+# Last edited: 2009-09-17 09:34:24 by piumarta on ubuntu.piumarta.com
 
 FILE (STRINGS ${src}/plugins.int plugins_int)
 STRING (REGEX REPLACE ".*= (.*)" "\\1" plugins_int ${plugins_int})
@@ -107,10 +107,12 @@
         LIST (APPEND plugins_dis ${plugin})
       ENDIF (${plugins_list} STREQUAL "plugins_int")
       MESSAGE ("!! ${plugin} disabled")
+      SET (${plugin}_disabled 1)
     ELSE (DEFINED plugin_disabled)
       IF (${plugins_list} STREQUAL "plugins_int")
         USE_LIBRARY (${plugin})
       ENDIF (${plugins_list} STREQUAL "plugins_int")
+      SET (${plugin}_disabled)
     ENDIF (DEFINED plugin_disabled)
   ENDFOREACH (plugin)
 ENDMACRO (CONFIGURE_PLUGIN_LIST)

Modified: trunk/platforms/unix/cmake/config.in
===================================================================
--- trunk/platforms/unix/cmake/config.in 2009-09-17 15:56:33 UTC (rev 2139)
+++ trunk/platforms/unix/cmake/config.in 2009-09-17 17:10:27 UTC (rev 2140)
@@ -12,4 +12,5 @@
 s%\[plgdir\]%@prefix@/@plgdir@%g
 s%\[mandir\]%@prefix@/@mandir@%g
 s%\[docdir\]%@prefix@/@docdir@%g
+s%\[useoss\]%@useoss@%g
 " < $1 > $2

Modified: trunk/platforms/unix/cmake/squeak.in
===================================================================
--- trunk/platforms/unix/cmake/squeak.in 2009-09-17 15:56:33 UTC (rev 2139)
+++ trunk/platforms/unix/cmake/squeak.in 2009-09-17 17:10:27 UTC (rev 2140)
@@ -3,23 +3,27 @@
 # Launch squeakvm from the command line or a menu script, with a good
 # plugin path, text encodings and pulseaudio kludge
 #
-# Last edited: 2009-08-27 22:25:34 by piumarta on emilia-2.local
+# Last edited: 2009-09-17 10:05:45 by piumarta on ubuntu.piumarta.com
 
 PATH=/usr/bin:/bin
 
-me=`basename $0`
 bindir=`dirname $0`
 bindir=`cd ${bindir}; pwd`
 prefix=`dirname ${bindir}`
 libdir="${prefix}/lib/squeak"
 plgdir="${libdir}/[version]"
-wrapper=""
+useoss="[useoss]"
 vm="squeakvm"
 plugins=""
-sound=""
-pathenc="-pathenc UTF-8"
-encoding="-encoding UTF-8"
+wrapper=""
 
+for opt in $*; do
+    case ${opt} in
+ -vm-sound*)     useoss="false";;
+ -vm)            case "$2" in sound*) useoss="false"; esac;;
+    esac
+done
+
 # find the vm and set the plugin path
 
 if test -x "${plgdir}/${vm}"; then # bin/squeak -> lib/squeak/x.y-z/squeakvm
@@ -36,45 +40,34 @@
     exit 1
 fi
 
-# deal with pulseaudio if it is running
+# command-line overrides environment, so communicate anything we decide here via the environment
 
-if pulseaudio --check 2>/dev/null; then
-    sound="-vm-sound-oss"
-    if padsp true 2>/dev/null; then
-        wrapper=padsp
+if test -z "${SQUEAK_PATHENC}";  then SQUEAK_PATHENC="UTF-8";  export SQUEAK_PATHENC;  fi
+if test -z "${SQUEAK_ENCODING}"; then SQUEAK_ENCODING="UTF-8"; export SQUEAK_ENCODING; fi
+
+if test -z "${SQUEAK_PLUGINS}"; then
+    if test -n "${plugins}"; then
+ SQUEAK_PLUGINS="${plugins}"
+ export SQUEAK_PLUGINS
     fi
 fi
 
-# we should not interfere with the user's command-line options
+# deal with pulseaudio if it is running
 
-for opt in $*; do
-    case ${opt} in
- -plugins) plugins="";;
- -pathenc) pathenc="";;
- -encoding) encoding="";;
- -vm-sound*) sound=""; wrapper="";;
- -vm) case "$2" in sound*) sound=""; wrapper=""; esac;;
-    esac
-done
-
-# we should not interfere with the user's environment variables
-
-if test -n "${SQUEAK_PLUGINS}"; then
-    plugins=""
+if test -z "${SQUEAK_VM}"; then
+    if ${useoss}; then
+ if pulseaudio --check 2>/dev/null; then
+    if padsp true 2>/dev/null; then
+ wrapper="padsp"
+ SQUEAK_VM="sound-OSS"
+ export SQUEAK_VM
+    fi
+ fi
+    fi
 fi
 
-if test -n "${SQUEAK_PATHENC}"; then
-    pathenc=""
-fi
+# run the vm
 
-if test -n "${SQUEAK_ENCODING}"; then
-    encoding=""
-fi
-
-if test -z "${plugins}"; then
-    set -x
-    exec ${wrapper} "${vm}" ${pathenc} ${encoding} ${sound} "$@"
-else
-    set -x
-    exec ${wrapper} "${vm}" ${pathenc} ${encoding} -plugins "${plugins}" ${sound} "$@"
-fi
+set | fgrep SQUEAK_
+set -x
+exec ${wrapper} "${vm}" "$@"

Modified: trunk/platforms/unix/vm/build.cmake
===================================================================
--- trunk/platforms/unix/vm/build.cmake 2009-09-17 15:56:33 UTC (rev 2139)
+++ trunk/platforms/unix/vm/build.cmake 2009-09-17 17:10:27 UTC (rev 2140)
@@ -47,6 +47,12 @@
 
 INSTALL (PROGRAMS ${bld}/squeakvm DESTINATION ${plgdir})
 
+IF (vm-sound-OSS_disabled)
+  SET (useoss "false")
+ELSE ()
+  SET (useoss "true")
+ENDIF ()
+
 CONFIGURE_FILE (${config}/config.in ${bld}/config @ONLY)
 
 # launcher scripts