diff --git a/download_and_compile.sh b/download_and_compile.sh index d18edd0..890957f 100755 --- a/download_and_compile.sh +++ b/download_and_compile.sh @@ -63,7 +63,7 @@ _elementIn(){ # From function _joinBy(){ local d="$1"; shift - echo -n "$1"; shift + printf "%s" "$1"; shift printf "%s" "${@/#/$d}" } @@ -1511,28 +1511,29 @@ if _elementIn "FGFS" "${WHATTOBUILD[@]}" || \ fi cd "$CBD" - paths="../../$SIMGEAR_INSTALL_DIR/lib:../../$OSG_INSTALL_DIR/lib:../../$OPENRTI_INSTALL_DIR/lib:../../$PLIB_INSTALL_DIR/lib" - gdb="gdb" - - common="" - common="${common}#!/bin/sh\n" - common="${common}cd \"\$(dirname \"\$0\")\"\n" - common="${common}cd '$SUB_INSTALL_DIR/$FGFS_INSTALL_DIR/bin'\n" + paths="\$d/$SIMGEAR_INSTALL_DIR/lib:\$d/$OSG_INSTALL_DIR/lib:\$d/$OPENRTI_INSTALL_DIR/lib:\$d/$PLIB_INSTALL_DIR/lib" + common="#! /bin/sh"$'\n\n' if [[ "$(uname)" == 'OpenBSD' ]]; then # Force use of our zlib. - paths="$paths:../../$ZLIB_INSTALL_DIR/lib" + paths="$paths:\$d/$ZLIB_INSTALL_DIR/lib" # OpenBSD's base gdb is too old; `pkg_add egdb` gives one that we can use. gdb="egdb" - common="${common}ulimit -d 4194304\n" + common="${common}ulimit -d 4194304"$'\n' fi - set_ld_library_path="export LD_LIBRARY_PATH='$paths'\"\${LD_LIBRARY_PATH:+:}\${LD_LIBRARY_PATH}\"" - common="${common}${set_ld_library_path}\n" + set_ld_library_path="\ +d=\$(realpath \"\$(dirname \"\$0\")/$SUB_INSTALL_DIR\") +export LD_LIBRARY_PATH=$paths\${LD_LIBRARY_PATH:+:}\${LD_LIBRARY_PATH}" + common="\ +${common}${set_ld_library_path} +cd \"\$d/$FGFS_INSTALL_DIR/bin\""$'\n' SCRIPT=run_fgfs.sh - echo -en "$common" > $SCRIPT - echo "exec ./fgfs --fg-root=\"\$PWD/../fgdata\" \"\$@\"" >> $SCRIPT + cat >"$SCRIPT" <&2 @@ -1580,16 +1581,16 @@ while true; do esac done -cd "\$(dirname "\$0")/$SUB_INSTALL_DIR/$FGFS_INSTALL_DIR/bin" ${set_ld_library_path} +cd "\$d/$FGFS_INSTALL_DIR/bin" if [ -z "\$CORE_FILE" ]; then - gdb --directory="$INSTALL_DIR_SIMGEAR" \\ - --directory="$INSTALL_DIR_FGFS" \\ - --args ./fgfs --fg-root="$INSTALL_DIR_FGFS/fgdata" "\$@" + gdb --directory="$CBD/simgear" \\ + --directory="$CBD/flightgear" \\ + --args ./fgfs --fg-root="\$d/$FGFS_INSTALL_DIR/fgdata" "\$@" else - gdb --directory="$INSTALL_DIR_SIMGEAR" \\ - --directory="$INSTALL_DIR_FGFS" \\ + gdb --directory="$CBD/simgear" \\ + --directory="$CBD/flightgear" \\ --core="\$CORE_FILE" ./fgfs fi EndOfScriptText @@ -1598,8 +1599,7 @@ EndOfScriptText # Useful for debugging library problems. SCRIPT=run_ldd.sh cat >"$SCRIPT" <"$SCRIPT" < $SCRIPT - echo "cd \"\$(dirname \"\$0\")\"" >> $SCRIPT - echo "cd '$SUB_INSTALL_DIR/$FGFS_INSTALL_DIR/bin'" >> $SCRIPT - echo "exec ./fgcom \"\$@\"" >> $SCRIPT - chmod 755 $SCRIPT + cat >"$SCRIPT" < $SCRIPT - echo "cd \"\$(dirname \"\$0\")\"" >> $SCRIPT - echo "cd '$SUB_INSTALL_DIR/$FGRUN_INSTALL_DIR/bin'" >> $SCRIPT - echo "export LD_LIBRARY_PATH='../../$SIMGEAR_INSTALL_DIR/lib:../../$OSG_INSTALL_DIR/lib:../../$OPENRTI_INSTALL_DIR/lib:../../$PLIB_INSTALL_DIR/lib'\"\${LD_LIBRARY_PATH:+:}\${LD_LIBRARY_PATH}\"" \ - >> $SCRIPT - echo "./fgrun --fg-exe=\"\$PWD\"/../../'$FGFS_INSTALL_DIR/bin/fgfs' --fg-root=\"\$PWD\"/../../'$FGFS_INSTALL_DIR/fgdata' \"\$@\"" >> $SCRIPT + cat >"$SCRIPT" < $SCRIPT - echo "cd \"\$(dirname \"\$0\")\"" >> $SCRIPT - echo "cd '$SUB_INSTALL_DIR'" >> $SCRIPT - echo "cd '$FGO_INSTALL_DIR'" >> $SCRIPT - echo "python ./fgo" >> $SCRIPT + cat >"$SCRIPT" < $SCRIPT - echo "cd \"\$(dirname \"\$0\")\"" >> $SCRIPT - echo "cd '$FGX_INSTALL_DIR'" >> $SCRIPT - echo "./fgx \"\$@\"" >> $SCRIPT + cat >"$SCRIPT" < $SCRIPT - echo "cd \"\$(dirname \"\$0\")\"" >> $SCRIPT - echo "cd '$SUB_INSTALL_DIR/$ATCPIE_INSTALL_DIR'" >> $SCRIPT - echo "./ATC-pie.py \"\$@\"" >> $SCRIPT + cat >"$SCRIPT" < $SCRIPT - echo "cd \"\$(dirname \"\$0\")\"" >> $SCRIPT - echo "cd install/OpenRadar" >> $SCRIPT - echo "java -jar OpenRadar.jar" >> $SCRIPT + cat >"$SCRIPT" < run_tg-construct.sh - echo "cd \"\$(dirname \"\$0\")\"" >> run_tg-construct.sh - echo "cd install/terragear/bin" >> run_tg-construct.sh - echo "export LD_LIBRARY_PATH='$INSTALL_DIR_SIMGEAR/lib'\"\${LD_LIBRARY_PATH:+:}\${LD_LIBRARY_PATH}\"" \ - >> run_tg-construct.sh - echo "./tg-construct \"\$@\"" >> run_tg-construct.sh + SCRIPT=run_tg-construct.sh + cat >"$SCRIPT" < run_ogr-decode.sh - echo "cd \"\$(dirname \"\$0\")\"" >> run_ogr-decode.sh - echo "cd install/terragear/bin" >> run_ogr-decode.sh - echo "export LD_LIBRARY_PATH='$INSTALL_DIR_SIMGEAR/lib'\"\${LD_LIBRARY_PATH:+:}\${LD_LIBRARY_PATH}\"" \ - >> run_ogr-decode.sh - echo "./ogr-decode \"\$@\"" >> run_ogr-decode.sh + SCRIPT=run_ogr-decode.sh + cat >"$SCRIPT" < run_genapts850.sh - echo "cd \"\$(dirname \"\$0\")\"" >> run_genapts850.sh - echo "cd install/terragear/bin" >> run_genapts850.sh - echo "export LD_LIBRARY_PATH='$INSTALL_DIR_SIMGEAR/lib'\"\${LD_LIBRARY_PATH:+:}\${LD_LIBRARY_PATH}\"" \ - >> run_genapts850.sh - echo "./genapts850 \"\$@\"" >> run_genapts850.sh + SCRIPT=run_genapts850.sh + cat >"$SCRIPT" <"$SCRIPT" <