diff --git a/ShellB3/shallbethree.sh b/ShellB3/shallbethree.sh
index f1032a6837ca01a8370808b4eed87ed342dea499..f9048bb9343dde30c2c0fefc4d2264ac5ea64b0a 100755
--- a/ShellB3/shallbethree.sh
+++ b/ShellB3/shallbethree.sh
@@ -6387,7 +6387,15 @@ mk_pyside2() {
     fi    
   fi
 
-  _find_cots LLVM_BASE sysbin/llvm-config $BASE || oops 'pyside2 (Qt5) needs LLVM'
+  if _find_cots LLVM_BASE sysbin/llvm-config $BASE ; then
+    echo -n
+  else
+    if isTrue BUILD_LLVM_FOR_PYSIDE ; then
+      ( mk_full_llvm && _find_cots LLVM_BASE sysbin/llvm-config $BASE ) || oops "pyside2 (Qt5) couldn't build LLVM"
+    else
+      oops 'pyside2 (Qt5) needs LLVM'
+    fi
+  fi
   _find_cots_lib CLANGLIB libclang $BASE || oops "pyside2 (Qt5) needs libclang"
   _find_cots QT5DIR bin/qmake $BASE $QT5DIR || \
       oops "This requires QT5 development tools. Set QT5DIR to location of QT5 such that \$QT5DIR/bin/qmake exists."
@@ -12078,6 +12086,7 @@ list_envs(){
   fi
   echo "PYTHON_VERSION  - override the python version to build. default is determined by the trim. should be 36, 37, 38, or 39. '3' is interpreted as the safest option for the platform" 1>&2
   echo "MAKE_STACKLESS  - default is to use normal C Python, but setting this to YES will build a stackless version" 1>&2
+  echo "BUILD_LLVM_FOR_PYSIDE - set to yes to try to build llvm for pyside if it isn't already"
   echo "PORTABLESHELLB3 - default YES will build most its own libraries. if set NO will link to any acceptable system libraries." 1>&2
   echo "MAKEFLAGS       - can be set to parallel building by setting to '-j8' or the like" 1>&2
 }