Fixes compile with DP from master.
**There is no need to install Xonotic!** The zip file you downloaded from the homepage has everything. All binaries to run the game on Linux, Windows and macOS are inside of it. Just unzip the archive and run the appropriate executable for your OS.
-For example, on Windows or macOS you can start the game by double-clicking the Xonotic logo. On Linux you can run xonotic-linux-glx.sh or xonotic-linux-sdl.sh - whichever one works better on your hardware.
+For example, on Windows or macOS you can start the game by double-clicking the Xonotic logo. On Linux you can run xonotic-linux-sdl.sh.
## Is there a Debian package available?
If you want to investigate further:
-On Linux: In a xterm, cd into your Xonotic installation directory, start catchsegv ./xonotic-linux-686-sdl -condebug -developer > crash.txt 2>&1 and give the file crash.txt to the developers. Note that you can also use ./xonotic-linux-686-glx or if you have a 64bit system ./xonotic-linux-x86_64-sdl and ./xonotic-linux-x86_64-glx
+On Linux: In a xterm, cd into your Xonotic installation directory, start catchsegv ./xonotic-linux64-sdl -condebug -developer > crash.txt 2>&1 and give the file crash.txt to the developers. On a 32bit system you should instead use ./xonotic-linux32-sdl.
On Windows: Click Start->Run, and enter drwtsn32, click Ok in the next window, run Xonotic and wait for the crash. Then go to C:\Documents and Settings\All Users\Application Data\Microsoft\Dr Watson there should be a file called "drwtsn32.log", give that file along with the engine's build date to the developers. You'll see that date when you open the ingame console (How do I open the console?). Note that some folders of that path may be hidden or have a translated name if you're using a non-english windows.
## How can I place a shortcut to Xonotic on my Linux desktop?
-Use the script xonotic-linux-sdl.sh or xonotic-linux-glx.sh instead of the binaries. The scripts will use the correct working directory, choose the right version (32 or 64 bit) and also allow you to start a extra X server.
+Use the script xonotic-linux-sdl.sh instead of the binaries. The scripts will use the correct working directory, choose the right version (32 or 64 bit) and also allow you to start a extra X server.
## How do I open the console?
.PHONY: install-engine-git
install-engine-git: all-git
$(INSTALL) -d $(DESTDIR)$(LIBDIR)
- $(INSTALL) xonotic-linux-glx.sh $(DESTDIR)$(LIBDIR)/xonotic-linux-glx.sh
$(INSTALL) xonotic-linux-sdl.sh $(DESTDIR)$(LIBDIR)/xonotic-linux-sdl.sh
$(INSTALL) xonotic-linux-dedicated.sh $(DESTDIR)$(LIBDIR)/xonotic-linux-dedicated.sh
$(INSTALL) darkplaces/darkplaces-sdl $(DESTDIR)$(LIBDIR)/xonotic-$(ARCH)-sdl
- $(INSTALL) darkplaces/darkplaces-glx $(DESTDIR)$(LIBDIR)/xonotic-$(ARCH)-glx
$(INSTALL) darkplaces/darkplaces-dedicated $(DESTDIR)$(LIBDIR)/xonotic-$(ARCH)-dedicated
.PHONY: install-engine-zip-binary
install-engine-zip-binary: all-zip-binary
$(INSTALL) -d $(DESTDIR)$(LIBDIR)
- $(INSTALL) xonotic-linux-glx.sh $(DESTDIR)$(LIBDIR)/xonotic-linux-glx.sh
$(INSTALL) xonotic-linux-sdl.sh $(DESTDIR)$(LIBDIR)/xonotic-linux-sdl.sh
$(INSTALL) xonotic-linux-dedicated.sh $(DESTDIR)$(LIBDIR)/xonotic-linux-dedicated.sh
$(INSTALL) xonotic-$(ARCH)-sdl $(DESTDIR)$(LIBDIR)/xonotic-$(ARCH)-sdl
- $(INSTALL) xonotic-$(ARCH)-glx $(DESTDIR)$(LIBDIR)/xonotic-$(ARCH)-glx
$(INSTALL) xonotic-$(ARCH)-dedicated $(DESTDIR)$(LIBDIR)/xonotic-$(ARCH)-dedicated
.PHONY: install-engine-zip-source
install-engine-zip-source: all-zip-source
$(INSTALL) -d $(DESTDIR)$(LIBDIR)
- $(INSTALL) xonotic-linux-glx.sh $(DESTDIR)$(LIBDIR)/xonotic-linux-glx.sh
$(INSTALL) xonotic-linux-sdl.sh $(DESTDIR)$(LIBDIR)/xonotic-linux-sdl.sh
$(INSTALL) xonotic-linux-dedicated.sh $(DESTDIR)$(LIBDIR)/xonotic-linux-dedicated.sh
$(INSTALL) source/darkplaces/darkplaces-sdl $(DESTDIR)$(LIBDIR)/xonotic-$(ARCH)-sdl
- $(INSTALL) source/darkplaces/darkplaces-glx $(DESTDIR)$(LIBDIR)/xonotic-$(ARCH)-glx
$(INSTALL) source/darkplaces/darkplaces-dedicated $(DESTDIR)$(LIBDIR)/xonotic-$(ARCH)-dedicated
install-links:
$(INSTALL) -d $(BINDIR)
$(LN) -snf $(LIBDIR)/xonotic-linux-sdl.sh $(DESTDIR)$(BINDIR)/xonotic-sdl
- $(LN) -snf $(LIBDIR)/xonotic-linux-glx.sh $(DESTDIR)$(BINDIR)/xonotic-glx
$(LN) -snf $(LIBDIR)/xonotic-linux-dedicated.sh $(DESTDIR)$(BINDIR)/xonotic-dedicated
+++ /dev/null
-[Desktop Entry]
-Type=Application
-Version=1.0
-Name=Xonotic (GLX)
-Comment=a free open-source first person shooter
-Icon=xonotic
-Exec=xonotic-glx
-Terminal=false
-StartupNotify=false
-Categories=Game;
verbose date +%Y%m%d > Xonotic/stamp.txt
verbose date +%Y%m%d > Xonotic/pk3stamp.txt
fi
- release_git_extract_dir "." "Xonotic" Docs misc server xonotic-linux-glx.sh xonotic-linux-sdl.sh xonotic-linux-dedicated.sh Makefile misc/buildfiles key_0.d0pk COPYING GPL-2 GPL-3
+ release_git_extract_dir "." "Xonotic" Docs misc server xonotic-linux-sdl.sh xonotic-linux-dedicated.sh Makefile misc/buildfiles key_0.d0pk COPYING GPL-2 GPL-3
(
verbose cd Xonotic
verbose mkdir data gmqcc source source/darkplaces source/gmqcc source/d0_blind_id mapping
release_common
good=true
verbose "$SELF" release-getbinary Xonotic/xonotic-x86.exe || good=false
- verbose "$SELF" release-getbinary Xonotic/xonotic-x86-wgl.exe || good=false
verbose "$SELF" release-getbinary Xonotic/xonotic-x86-dedicated.exe || good=false
$good
;;
release_common
good=true
verbose "$SELF" release-getbinary Xonotic/xonotic.exe || good=false
- verbose "$SELF" release-getbinary Xonotic/xonotic-wgl.exe || good=false
verbose "$SELF" release-getbinary Xonotic/xonotic-dedicated.exe || good=false
$good
;;
release_common
good=true
verbose "$SELF" release-getbinary Xonotic/xonotic-linux64-sdl || good=false
- verbose "$SELF" release-getbinary Xonotic/xonotic-linux64-glx || good=false
verbose "$SELF" release-getbinary Xonotic/xonotic-linux64-dedicated || good=false
$good
;;
esac
done
+ TARGETS="sv-$debug sdl-$debug"
if [ x"`uname`" = x"Darwin" ]; then
- TARGETS="sv-$debug sdl-$debug"
export CC="$CC -fno-reorder-blocks"
- else
- TARGETS="sv-$debug cl-$debug sdl-$debug"
fi
if [ $# -gt 0 ] && [ x"$1" = x"" ]; then
sdl)
TARGETS="$TARGETS sdl-$debug"
;;
- glx|wgl)
- TARGETS="$TARGETS cl-$debug"
- ;;
dedicated)
TARGETS="$TARGETS sv-$debug"
;;
client=-$1
shift
;;
- sdl|glx)
+ sdl)
USE_RLWRAP=no
client=-$1
shift
;;
- wgl)
- USE_RLWRAP=no
- client=
- shift
- ;;
esac
if ! [ -x "darkplaces/darkplaces$client" ]; then
if [ -x "darkplaces/darkplaces$client.exe" ]; then
fi
;;
help)
- $ECHO " $SELF compile [-c] [-qc] [-r|-p] [-0] [sdl|glx|wgl|dedicated]"
+ $ECHO " $SELF compile [-c] [-qc] [-r|-p] [-0] [sdl|dedicated]"
$ECHO " $SELF update-maps"
- $ECHO " $SELF run [sdl|glx|wgl|dedicated] options..."
+ $ECHO " $SELF run [sdl|dedicated] options..."
$ECHO " $SELF compile-map mapname1 mapname2... (e.g. \"./all compile-map dance drain fuse\")"
handled=false
;;
# choose version and autocomplete cvars
# possible TODO: check for OS and adapt to it
_arguments \
- '1:Version:(sdl glx dedicated)' && ret=0
+ '1:Version:(sdl dedicated)' && ret=0
;;
compile)
_arguments \
- '1:Version:(sdl glx dedicated)' \
+ '1:Version:(sdl dedicated)' \
"-0[don't use precompiled d0_blind_id]" \
'-c[clean all before building]' \
'-qc[clean QuakeC binaries]' \
:bit64\r
if not "%XONOTIC_INCLUDE_32BIT%" == "" goto endbit\r
set excludes=%excludes% --exclude=/xonotic-x86.exe\r
- set excludes=%excludes% --exclude=/xonotic-x86-wgl.exe\r
set excludes=%excludes% --exclude=/xonotic-x86-dedicated.exe\r
set excludes=%excludes% --exclude=/gmqcc/gmqcc.exe\r
set excludes=%excludes% --exclude=/bin32\r
goto endbit\r
:bit32\r
set excludes=%excludes% --exclude=/xonotic.exe\r
- set excludes=%excludes% --exclude=/xonotic-wgl.exe\r
set excludes=%excludes% --exclude=/xonotic-dedicated.exe\r
set excludes=%excludes% --exclude=/gmqcc/gmqcc-x64.exe\r
set excludes=%excludes% --exclude=/bin64\r
:bit64\r
if not "%XONOTIC_INCLUDE_32BIT%" == "" goto endbit\r
set excludes=%excludes% --exclude=/xonotic-x86.exe\r
- set excludes=%excludes% --exclude=/xonotic-x86-wgl.exe\r
set excludes=%excludes% --exclude=/xonotic-x86-dedicated.exe\r
set excludes=%excludes% --exclude=/gmqcc/gmqcc.exe\r
set excludes=%excludes% --exclude=/bin32\r
goto endbit\r
:bit32\r
set excludes=%excludes% --exclude=/xonotic.exe\r
- set excludes=%excludes% --exclude=/xonotic-wgl.exe\r
set excludes=%excludes% --exclude=/xonotic-dedicated.exe\r
set excludes=%excludes% --exclude=/gmqcc/gmqcc-x64.exe\r
set excludes=%excludes% --exclude=/bin64\r
+++ /dev/null
-#!/bin/sh
-
-cd nexuiz
-../darkplaces/nexuiz-glx "$@"
message(STATUS "Downloading Darkplaces")
getbinary(Xonotic/xonotic-x86.exe)
- getbinary(Xonotic/xonotic-x86-wgl.exe)
getbinary(Xonotic/xonotic-x86-dedicated.exe)
getbinary(Xonotic/xonotic.exe)
- getbinary(Xonotic/xonotic-wgl.exe)
getbinary(Xonotic/xonotic-dedicated.exe)
getbinary(Xonotic/Xonotic.app/Contents/MacOS/xonotic-osx-sdl-bin) # +x
getbinary(Xonotic/xonotic-osx-dedicated) # +x
getbinary(Xonotic/xonotic-linux64-sdl) # +x
- getbinary(Xonotic/xonotic-linux64-glx) # +x
getbinary(Xonotic/xonotic-linux64-dedicated) # +x
endif ()
-xonotic-linux-glx.sh
\ No newline at end of file
+xonotic-linux-sdl.sh
\ No newline at end of file
+++ /dev/null
-#!/bin/sh
-
-path=`dirname "${0}"`
-link=`readlink -f "${0}"`
-
-[ -n "${link}" ] && path=`dirname "${link}"`
-cd "${path}"
-
-case "${0##*/}" in
- *dedicated*) mode="dedicated" ;;
- *sdl*) mode="sdl" ;;
- *) mode="glx" ;;
-esac
-
-case "$(uname -m)" in
- i?86) arch="linux32" ;; # Not supported anymore but you can build your own.
- *) arch="linux64" ;;
-esac
-
-xonotic="xonotic-${arch}-${mode}"
-
-set -- ./${xonotic} "${@}"
-
-xserver=
-xlayout=
-
-setdisplay()
-{
- VALUE=$1
- VALUE=${VALUE#\"}
- VALUE=${VALUE%\"}
- case "$VALUE" in
- :*)
- ;;
- *)
- VALUE=:$VALUE
- ;;
- esac
- VALUE="$VALUE/"
- xserver="${VALUE%%/*}"
- xserver=${xserver#:}
- xlayout=${VALUE#*/}
- xlayout=${xlayout%/}
-}
-
-# now how do we execute it?
-if [ -r ~/.xonotic/data/config.cfg ]; then
- while read -r CMD KEY VALUE; do
- case "$CMD:$KEY" in
- seta:vid_x11_display)
- setdisplay "$VALUE"
- ;;
- esac
- done < ~/.xonotic/data/config.cfg
-fi
-
-m=0
-for X in "$@"; do
- case "$m:$X" in
- 0:+vid_x11_display)
- m=1
- ;;
- 0:+vid_x11_display\ *)
- setdisplay "${X#+vid_x11_display }"
- ;;
- 1:*)
- setdisplay "$X"
- m=0
- ;;
- *)
- ;;
- esac
-done
-
-case "$xserver" in
- '')
- ;;
- *[!0-9]*)
- echo "Not using display ':$xserver': evil characters"
- ;;
- *)
- msg=
- lf='
-'
- prefix=
-
- # check for a listening X server on that socket
- if netstat -nl | grep -F " /tmp/.X11-unix/X$xserver" >/dev/null; then
- # X server already exists
- export DISPLAY=:$xserver
- prefix="DISPLAY=:$xserver "
- msg=$msg$lf"- Running Xonotic on already existing display :$xserver"
- else
- set -- startx "$@" -fullscreen -- ":$xserver"
- msg=$msg$lf"- Running Xonotic on a newly created X server :$xserver."
- case "$xlayout" in
- '')
- ;;
- *[!A-Za-z0-9]*)
- echo >&2 "Not using layout '$xlayout': evil characters"
- xlayout=
- ;;
- *)
- set -- "$@" -layout "$xlayout"
- msg=$msg$lf"- Using the ServerLayout section named $xlayout."
- ;;
- esac
- fi
-
- echo "X SERVER OVERRIDES IN EFFECT:$msg"
- echo
- echo "Resulting command line:"
- echo " $prefix$*"
- echo
- echo "To undo these overrides, edit ~/.xonotic/data/config.cfg and remove the line"
- echo "starting with 'seta vid_x11_display'."
- echo
- echo
- ;;
-esac
-
-# if pulseaudio
-if [ -z "$SDL_AUDIODRIVER" ]; then
- if ps -C pulseaudio >/dev/null; then
- if ldd /usr/lib/libSDL.so 2>/dev/null | grep pulse >/dev/null; then
- export SDL_AUDIODRIVER=pulse
- fi
- fi
-fi
-
-exec "$@"
+++ /dev/null
-xonotic-linux-glx.sh
\ No newline at end of file
--- /dev/null
+#!/bin/sh
+
+path=`dirname "${0}"`
+link=`readlink -f "${0}"`
+
+[ -n "${link}" ] && path=`dirname "${link}"`
+cd "${path}"
+
+case "${0##*/}" in
+ *dedicated*) mode="dedicated" ;;
+ *) mode="sdl" ;;
+esac
+
+case "$(uname -m)" in
+ i?86) arch="linux32" ;; # Not supported anymore but you can build your own.
+ *) arch="linux64" ;;
+esac
+
+xonotic="xonotic-${arch}-${mode}"
+
+set -- ./${xonotic} "${@}"
+
+xserver=
+xlayout=
+
+setdisplay()
+{
+ VALUE=$1
+ VALUE=${VALUE#\"}
+ VALUE=${VALUE%\"}
+ case "$VALUE" in
+ :*)
+ ;;
+ *)
+ VALUE=:$VALUE
+ ;;
+ esac
+ VALUE="$VALUE/"
+ xserver="${VALUE%%/*}"
+ xserver=${xserver#:}
+ xlayout=${VALUE#*/}
+ xlayout=${xlayout%/}
+}
+
+# now how do we execute it?
+if [ -r ~/.xonotic/data/config.cfg ]; then
+ while read -r CMD KEY VALUE; do
+ case "$CMD:$KEY" in
+ seta:vid_x11_display)
+ setdisplay "$VALUE"
+ ;;
+ esac
+ done < ~/.xonotic/data/config.cfg
+fi
+
+m=0
+for X in "$@"; do
+ case "$m:$X" in
+ 0:+vid_x11_display)
+ m=1
+ ;;
+ 0:+vid_x11_display\ *)
+ setdisplay "${X#+vid_x11_display }"
+ ;;
+ 1:*)
+ setdisplay "$X"
+ m=0
+ ;;
+ *)
+ ;;
+ esac
+done
+
+case "$xserver" in
+ '')
+ ;;
+ *[!0-9]*)
+ echo "Not using display ':$xserver': evil characters"
+ ;;
+ *)
+ msg=
+ lf='
+'
+ prefix=
+
+ # check for a listening X server on that socket
+ if netstat -nl | grep -F " /tmp/.X11-unix/X$xserver" >/dev/null; then
+ # X server already exists
+ export DISPLAY=:$xserver
+ prefix="DISPLAY=:$xserver "
+ msg=$msg$lf"- Running Xonotic on already existing display :$xserver"
+ else
+ set -- startx "$@" -fullscreen -- ":$xserver"
+ msg=$msg$lf"- Running Xonotic on a newly created X server :$xserver."
+ case "$xlayout" in
+ '')
+ ;;
+ *[!A-Za-z0-9]*)
+ echo >&2 "Not using layout '$xlayout': evil characters"
+ xlayout=
+ ;;
+ *)
+ set -- "$@" -layout "$xlayout"
+ msg=$msg$lf"- Using the ServerLayout section named $xlayout."
+ ;;
+ esac
+ fi
+
+ echo "X SERVER OVERRIDES IN EFFECT:$msg"
+ echo
+ echo "Resulting command line:"
+ echo " $prefix$*"
+ echo
+ echo "To undo these overrides, edit ~/.xonotic/data/config.cfg and remove the line"
+ echo "starting with 'seta vid_x11_display'."
+ echo
+ echo
+ ;;
+esac
+
+# if pulseaudio
+if [ -z "$SDL_AUDIODRIVER" ]; then
+ if ps -C pulseaudio >/dev/null; then
+ if ldd /usr/lib/libSDL.so 2>/dev/null | grep pulse >/dev/null; then
+ export SDL_AUDIODRIVER=pulse
+ fi
+ fi
+fi
+
+exec "$@"