Try to fix up some linux / build script stuff.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5095 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
e5e7ba17da
commit
85da162f49
9 changed files with 235 additions and 110 deletions
|
@ -23,11 +23,11 @@ NACLSDKVERSION=pepper_49
|
||||||
|
|
||||||
#android defaults
|
#android defaults
|
||||||
ANDROIDROOT=$FTEROOT/android
|
ANDROIDROOT=$FTEROOT/android
|
||||||
ifneq ($(shell uname -o 2>&1 | grep Cygwin),)
|
if [ ! -z "$(uname -o 2>&1 | grep Cygwin)" ]; then
|
||||||
ANDROID_HOSTSYSTEM?=windows-x86_64
|
ANDROID_HOSTSYSTEM=windows-x86_64
|
||||||
else
|
else
|
||||||
ANDROID_HOSTSYSTEM?=linux-$(shell uname -m)
|
ANDROID_HOSTSYSTEM=linux-$(uname -m)
|
||||||
endif
|
fi
|
||||||
ANDROIDBUILDTOOLS=25.0.0
|
ANDROIDBUILDTOOLS=25.0.0
|
||||||
ANDROID_ZIPALIGN=$ANDROIDROOT/build-tools/$ANDROIDBUILDTOOLS/zipalign #relative to ndk tools
|
ANDROID_ZIPALIGN=$ANDROIDROOT/build-tools/$ANDROIDBUILDTOOLS/zipalign #relative to ndk tools
|
||||||
|
|
||||||
|
@ -233,7 +233,7 @@ debianpackages subversion make automake libtool p7zip-full zip || otherpackages
|
||||||
if [ "$BUILD_LINUXx86" == "y" ]; then
|
if [ "$BUILD_LINUXx86" == "y" ]; then
|
||||||
#for building linux targets
|
#for building linux targets
|
||||||
debianpackages gcc-multilib g++-multilib mesa-common-dev libasound2-dev libvorbis-dev || otherpackages gcc || exit
|
debianpackages gcc-multilib g++-multilib mesa-common-dev libasound2-dev libvorbis-dev || otherpackages gcc || exit
|
||||||
jessiepackages libgnutls28-dev || debianpackages libgnutls-dev || otherpackages gcc || exit
|
jessiepackages libgnutls28-dev || debianpackages libgnutls28-dev || otherpackages gcc || exit
|
||||||
if [[ "$PLUGINS_LINUXx86" =~ "avplug" ]]; then
|
if [[ "$PLUGINS_LINUXx86" =~ "avplug" ]]; then
|
||||||
debianpackages libswscale-dev libavcodec-dev || otherpackages || exit
|
debianpackages libswscale-dev libavcodec-dev || otherpackages || exit
|
||||||
fi
|
fi
|
||||||
|
@ -241,7 +241,7 @@ fi
|
||||||
if [ "$BUILD_LINUXx64" == "y" ]; then
|
if [ "$BUILD_LINUXx64" == "y" ]; then
|
||||||
#for building linux targets
|
#for building linux targets
|
||||||
debianpackages gcc-multilib g++-multilib mesa-common-dev libasound2-dev || otherpackages gcc || exit
|
debianpackages gcc-multilib g++-multilib mesa-common-dev libasound2-dev || otherpackages gcc || exit
|
||||||
jessiepackages libgnutls28-dev || debianpackages libgnutls-dev || otherpackages gcc || exit
|
jessiepackages libgnutls28-dev || debianpackages libgnutls28-dev || otherpackages gcc || exit
|
||||||
if [[ "$PLUGINS_LINUXx64" =~ "avplug" ]]; then
|
if [[ "$PLUGINS_LINUXx64" =~ "avplug" ]]; then
|
||||||
debianpackages libswscale-dev libavcodec-dev || otherpackages || exit
|
debianpackages libswscale-dev libavcodec-dev || otherpackages || exit
|
||||||
fi
|
fi
|
||||||
|
@ -249,12 +249,12 @@ fi
|
||||||
if [ "$BUILD_LINUXx32" == "y" ]; then
|
if [ "$BUILD_LINUXx32" == "y" ]; then
|
||||||
#for building linux targets
|
#for building linux targets
|
||||||
debianpackages gcc-multilib g++-multilib mesa-common-dev libasound2-dev || otherpackages gcc || exit
|
debianpackages gcc-multilib g++-multilib mesa-common-dev libasound2-dev || otherpackages gcc || exit
|
||||||
jessiepackages libgnutls28-dev || debianpackages libgnutls-dev || otherpackages gcc || exit
|
jessiepackages libgnutls28-dev || debianpackages libgnutls28-dev || otherpackages gcc || exit
|
||||||
fi
|
fi
|
||||||
if [ "$BUILD_LINUXarmhf" == "y" ]; then
|
if [ "$BUILD_LINUXarmhf" == "y" ]; then
|
||||||
#for building linux targets
|
#for building linux targets
|
||||||
debianpackages gcc-multilib-arm-linux-gnueabihf g++-multilib-arm-linux-gnueabihf mesa-common-dev libasound2-dev || otherpackages gcc || exit
|
debianpackages gcc-multilib-arm-linux-gnueabihf g++-multilib-arm-linux-gnueabihf mesa-common-dev libasound2-dev || otherpackages gcc || exit
|
||||||
jessiepackages libgnutls28-dev || debianpackages libgnutls-dev || otherpackages gcc || exit
|
jessiepackages libgnutls28-dev || debianpackages libgnutls28-dev || otherpackages gcc || exit
|
||||||
fi
|
fi
|
||||||
if [ "$BUILD_SDL" == "y" ]; then
|
if [ "$BUILD_SDL" == "y" ]; then
|
||||||
#for building SDL targets
|
#for building SDL targets
|
||||||
|
@ -368,7 +368,7 @@ if [ $UID -ne 0 ] && [ $REBUILD_TOOLCHAINS == "y" ]; then
|
||||||
echo "Making libraries (x86)..."
|
echo "Making libraries (x86)..."
|
||||||
make FTE_TARGET=linux32 makelibs CPUOPTIMISATIONS=-fno-finite-math-only 2>&1 >>/dev/null
|
make FTE_TARGET=linux32 makelibs CPUOPTIMISATIONS=-fno-finite-math-only 2>&1 >>/dev/null
|
||||||
fi
|
fi
|
||||||
if [ "$BUILD_LINUx64" == "y" ]; then
|
if [ "$BUILD_LINUXx64" == "y" ]; then
|
||||||
echo "Making libraries (linux x86_64)..."
|
echo "Making libraries (linux x86_64)..."
|
||||||
make FTE_TARGET=linux64 makelibs CPUOPTIMISATIONS=-fno-finite-math-only 2>&1 >>/dev/null
|
make FTE_TARGET=linux64 makelibs CPUOPTIMISATIONS=-fno-finite-math-only 2>&1 >>/dev/null
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -1218,6 +1218,12 @@ ifneq (,$(findstring linux,$(FTE_TARGET)))
|
||||||
SV_LDFLAGS=
|
SV_LDFLAGS=
|
||||||
SV_CFLAGS=$(SERVER_ONLY_CFLAGS) -DMULTITHREAD
|
SV_CFLAGS=$(SERVER_ONLY_CFLAGS) -DMULTITHREAD
|
||||||
|
|
||||||
|
CL_CFLAGS=$(SPEEXCFLAGS) -DMULTITHREAD -DDYNAMIC_SDL
|
||||||
|
|
||||||
|
#one of these two
|
||||||
|
IMAGELDFLAGS=-lpng -ljpeg
|
||||||
|
#CL_CFLAGS+= -DDYNAMIC_LIBPNG -DDYNAMIC_LIBJPEG
|
||||||
|
|
||||||
QCC_DIR=linqcc$(BITS)
|
QCC_DIR=linqcc$(BITS)
|
||||||
|
|
||||||
NPFTE_OBJS=httpclient.o image.o sys_linux_threads.o sys_npfte.o sys_axfte.o sys_plugfte.o
|
NPFTE_OBJS=httpclient.o image.o sys_linux_threads.o sys_npfte.o sys_axfte.o sys_plugfte.o
|
||||||
|
@ -1230,7 +1236,7 @@ ifneq (,$(findstring linux,$(FTE_TARGET)))
|
||||||
GL_EXE_NAME=../$(EXE_NAME)-gl$(BITS)
|
GL_EXE_NAME=../$(EXE_NAME)-gl$(BITS)
|
||||||
GLCL_EXE_NAME=../$(EXE_NAME)-glcl$(BITS)
|
GLCL_EXE_NAME=../$(EXE_NAME)-glcl$(BITS)
|
||||||
GL_LDFLAGS=$(GLLDFLAGS) $(XLDFLAGS) $(OGGVORBISLDFLAGS)
|
GL_LDFLAGS=$(GLLDFLAGS) $(XLDFLAGS) $(OGGVORBISLDFLAGS)
|
||||||
GL_CFLAGS=$(GLCFLAGS) -I/usr/X11R6/include $(SPEEXCFLAGS) -DMULTITHREAD -DDYNAMIC_LIBPNG -DDYNAMIC_LIBJPEG -DDYNAMIC_SDL
|
GL_CFLAGS=$(GLCFLAGS) -I/usr/X11R6/include $(CL_CFLAGS)
|
||||||
GLB_DIR=gl_linux$(BITS)
|
GLB_DIR=gl_linux$(BITS)
|
||||||
GLCL_DIR=glcl_linux$(BITS)
|
GLCL_DIR=glcl_linux$(BITS)
|
||||||
|
|
||||||
|
@ -1238,7 +1244,7 @@ ifneq (,$(findstring linux,$(FTE_TARGET)))
|
||||||
VK_EXE_NAME=../$(EXE_NAME)-vk$(BITS)
|
VK_EXE_NAME=../$(EXE_NAME)-vk$(BITS)
|
||||||
VKCL_EXE_NAME=../$(EXE_NAME)-vkcl$(BITS)
|
VKCL_EXE_NAME=../$(EXE_NAME)-vkcl$(BITS)
|
||||||
VK_LDFLAGS=$(GLLDFLAGS) $(XLDFLAGS) $(OGGVORBISLDFLAGS)
|
VK_LDFLAGS=$(GLLDFLAGS) $(XLDFLAGS) $(OGGVORBISLDFLAGS)
|
||||||
VK_CFLAGS=$(VKCFLAGS) -I/usr/X11R6/include $(SPEEXCFLAGS) -DMULTITHREAD -DDYNAMIC_LIBPNG -DDYNAMIC_LIBJPEG -DDYNAMIC_SDL
|
VK_CFLAGS=$(VKCFLAGS) -I/usr/X11R6/include $(CL_CFLAGS)
|
||||||
VKB_DIR=vk_linux$(BITS)
|
VKB_DIR=vk_linux$(BITS)
|
||||||
VKCL_DIR=vkcl_linux$(BITS)
|
VKCL_DIR=vkcl_linux$(BITS)
|
||||||
|
|
||||||
|
@ -1250,8 +1256,6 @@ ifneq (,$(findstring linux,$(FTE_TARGET)))
|
||||||
MB_DIR=m_linux$(BITS)
|
MB_DIR=m_linux$(BITS)
|
||||||
MCL_DIR=mcl_linux$(BITS)
|
MCL_DIR=mcl_linux$(BITS)
|
||||||
|
|
||||||
IMAGELDFLAGS=
|
|
||||||
|
|
||||||
ifeq (,$(findstring NO_ZLIB,$(CFLAGS)))
|
ifeq (,$(findstring NO_ZLIB,$(CFLAGS)))
|
||||||
SV_LDFLAGS+= -lz
|
SV_LDFLAGS+= -lz
|
||||||
GL_LDFLAGS+= -lz
|
GL_LDFLAGS+= -lz
|
||||||
|
@ -2001,29 +2005,40 @@ CONFIGARGS+= -host=$(ARCH) --enable-shared=no CC="$(CC)"
|
||||||
CONFIGARGS:= $(CONFIGARGS)
|
CONFIGARGS:= $(CONFIGARGS)
|
||||||
#--disable-silent-rules
|
#--disable-silent-rules
|
||||||
|
|
||||||
makelibs:
|
|
||||||
ifndef ARCH
|
libs-$(ARCH)/libjpeg.a:
|
||||||
$(MAKE) makelibs ARCH=$(shell $(CC) -dumpmachine)
|
|
||||||
else
|
|
||||||
mkdir -p libs-$(ARCH)
|
|
||||||
test -f jpegsrc.v$(JPEGVER).tar.gz || wget http://www.ijg.org/files/jpegsrc.v$(JPEGVER).tar.gz
|
test -f jpegsrc.v$(JPEGVER).tar.gz || wget http://www.ijg.org/files/jpegsrc.v$(JPEGVER).tar.gz
|
||||||
-test -f libs-$(ARCH)/libjpeg.a || (cd libs-$(ARCH) && tar -xvzf ../jpegsrc.v$(JPEGVER).tar.gz && cd jpeg-$(JPEGVER) && $(TOOLOVERRIDES) ./configure $(CONFIGARGS) && $(TOOLOVERRIDES) $(MAKE) && cp .libs/libjpeg.a ../ && $(TOOLOVERRIDES) $(AR) -s ../libjpeg.a && cp jconfig.h jerror.h jmorecfg.h jpeglib.h jversion.h ../ )
|
-test -f libs-$(ARCH)/libjpeg.a || (mkdir -p libs-$(ARCH) && cd libs-$(ARCH) && tar -xvzf ../jpegsrc.v$(JPEGVER).tar.gz && cd jpeg-$(JPEGVER) && $(TOOLOVERRIDES) ./configure $(CONFIGARGS) && $(TOOLOVERRIDES) $(MAKE) && cp .libs/libjpeg.a ../ && $(TOOLOVERRIDES) $(AR) -s ../libjpeg.a && cp jconfig.h jerror.h jmorecfg.h jpeglib.h jversion.h ../ )
|
||||||
|
|
||||||
|
libs-$(ARCH)/libz.a:
|
||||||
test -f zlib-$(ZLIBVER).tar.gz || wget http://zlib.net/zlib-$(ZLIBVER).tar.gz
|
test -f zlib-$(ZLIBVER).tar.gz || wget http://zlib.net/zlib-$(ZLIBVER).tar.gz
|
||||||
-test -f libs-$(ARCH)/libz.a || (cd libs-$(ARCH) && tar -xvzf ../zlib-$(ZLIBVER).tar.gz && cd zlib-$(ZLIBVER) && $(TOOLOVERRIDES) ./configure --static && $(TOOLOVERRIDES) $(MAKE) libz.a CC="$(CC) $(W32_CFLAGS) -fPIC" && cp libz.a ../ && $(TOOLOVERRIDES) $(AR) -s ../libz.a && cp zlib.h zconf.h zutil.h ../ )
|
-test -f libs-$(ARCH)/libz.a || (mkdir -p libs-$(ARCH) && cd libs-$(ARCH) && tar -xvzf ../zlib-$(ZLIBVER).tar.gz && cd zlib-$(ZLIBVER) && $(TOOLOVERRIDES) ./configure --static && $(TOOLOVERRIDES) $(MAKE) libz.a CC="$(CC) $(W32_CFLAGS) -fPIC" && cp libz.a ../ && $(TOOLOVERRIDES) $(AR) -s ../libz.a && cp zlib.h zconf.h zutil.h ../ )
|
||||||
|
|
||||||
|
libs-$(ARCH)/libpng.a: libs-$(ARCH)/libz.a
|
||||||
test -f libpng-$(PNGVER).tar.gz || wget http://prdownloads.sourceforge.net/libpng/libpng-$(PNGVER).tar.gz?download -O libpng-$(PNGVER).tar.gz
|
test -f libpng-$(PNGVER).tar.gz || wget http://prdownloads.sourceforge.net/libpng/libpng-$(PNGVER).tar.gz?download -O libpng-$(PNGVER).tar.gz
|
||||||
-test -f libs-$(ARCH)/libpng.a || (cd libs-$(ARCH) && tar -xvzf ../libpng-$(PNGVER).tar.gz && cd libpng-$(PNGVER) && $(TOOLOVERRIDES) ./configure CPPFLAGS=-I$(NATIVE_ABSBASE_DIR)/libs-$(ARCH)/ LDFLAGS=-L$(NATIVE_ABSBASE_DIR)/libs-$(ARCH)/ $(CONFIGARGS) --enable-static && $(TOOLOVERRIDES) $(MAKE) && cp .libs/libpng16.a ../libpng.a && cp png*.h ../ )
|
-test -f libs-$(ARCH)/libpng.a || (mkdir -p libs-$(ARCH) && cd libs-$(ARCH) && tar -xvzf ../libpng-$(PNGVER).tar.gz && cd libpng-$(PNGVER) && $(TOOLOVERRIDES) ./configure CPPFLAGS=-I$(NATIVE_ABSBASE_DIR)/libs-$(ARCH)/ LDFLAGS=-L$(NATIVE_ABSBASE_DIR)/libs-$(ARCH)/ $(CONFIGARGS) --enable-static && $(TOOLOVERRIDES) $(MAKE) && cp .libs/libpng16.a ../libpng.a && cp png*.h ../ )
|
||||||
|
|
||||||
|
libs-$(ARCH)/libogg.a:
|
||||||
test -f libogg-$(OGGVER).tar.gz || wget http://downloads.xiph.org/releases/ogg/libogg-$(OGGVER).tar.gz
|
test -f libogg-$(OGGVER).tar.gz || wget http://downloads.xiph.org/releases/ogg/libogg-$(OGGVER).tar.gz
|
||||||
-test -f libs-$(ARCH)/libogg.a || (cd libs-$(ARCH) && tar -xvzf ../libogg-$(OGGVER).tar.gz && cd libogg-$(OGGVER) && $(TOOLOVERRIDES) ./configure $(CONFIGARGS) && $(TOOLOVERRIDES) $(MAKE) && cp src/.libs/libogg.a ../ && $(TOOLOVERRIDES) $(AR) -s ../libogg.a)
|
-test -f libs-$(ARCH)/libogg.a || (mkdir -p libs-$(ARCH) && cd libs-$(ARCH) && tar -xvzf ../libogg-$(OGGVER).tar.gz && cd libogg-$(OGGVER) && $(TOOLOVERRIDES) ./configure $(CONFIGARGS) && $(TOOLOVERRIDES) $(MAKE) && cp src/.libs/libogg.a ../ && $(TOOLOVERRIDES) $(AR) -s ../libogg.a && mkdir ../ogg && cp include/ogg/*.h ../ogg)
|
||||||
|
|
||||||
|
libs-$(ARCH)/libvorbis.a:
|
||||||
test -f libvorbis-$(VORBISVER).tar.gz || wget http://downloads.xiph.org/releases/vorbis/libvorbis-$(VORBISVER).tar.gz
|
test -f libvorbis-$(VORBISVER).tar.gz || wget http://downloads.xiph.org/releases/vorbis/libvorbis-$(VORBISVER).tar.gz
|
||||||
-test -f libs-$(ARCH)/libvorbisfile.a || (cd libs-$(ARCH) && tar -xvzf ../libvorbis-$(VORBISVER).tar.gz && cd libvorbis-$(VORBISVER) && $(TOOLOVERRIDES) ./configure PKG_CONFIG= $(CONFIGARGS) --disable-oggtest --with-ogg-libraries=.. --with-ogg-includes=$(NATIVE_ABSBASE_DIR)/libs-$(ARCH)/libogg-$(OGGVER)/include && $(TOOLOVERRIDES) $(MAKE) && cp lib/.libs/libvorbis.a ../ && cp lib/.libs/libvorbisfile.a ../ )
|
-test -f libs-$(ARCH)/libvorbisfile.a || (mkdir -p libs-$(ARCH) && cd libs-$(ARCH) && tar -xvzf ../libvorbis-$(VORBISVER).tar.gz && cd libvorbis-$(VORBISVER) && $(TOOLOVERRIDES) ./configure PKG_CONFIG= $(CONFIGARGS) --disable-oggtest --with-ogg-libraries=.. --with-ogg-includes=$(NATIVE_ABSBASE_DIR)/libs-$(ARCH)/libogg-$(OGGVER)/include && $(TOOLOVERRIDES) $(MAKE) && cp lib/.libs/libvorbis.a ../ && cp lib/.libs/libvorbisfile.a ../ && mkdir ../vorbis && cp include/vorbis/*.h ../vorbis)
|
||||||
endif
|
|
||||||
|
|
||||||
httpserver:
|
makelibs: libs-$(ARCH)/libjpeg.a libs-$(ARCH)/libz.a libs-$(ARCH)/libpng.a libs-$(ARCH)/libogg.a libs-$(ARCH)/libvorbis.a
|
||||||
$(CC) -o release/httpserver http/httpserver.c http/iwebiface.c common/fs_stdio.c -Icommon -Iclient -Iqclib -Igl -Iserver -DWEBSVONLY -Dstricmp=strcasecmp -Dstrnicmp=strncasecmp
|
|
||||||
|
HTTP_OBJECTS=http/httpserver.c http/iwebiface.c common/fs_stdio.c
|
||||||
|
$(RELEASE_DIR)/httpserver$(BITS): $(HTTP_OBJECTS)
|
||||||
|
$(CC) -o $(RELEASE_DIR)/httpserver$(BITS) $(HTTP_OBJECTS) -Icommon -Iclient -Iqclib -Igl -Iserver -DWEBSVONLY -Dstricmp=strcasecmp -Dstrnicmp=strncasecmp -DNO_PNG
|
||||||
|
httpserver: $(RELEASE_DIR)/httpserver$(BITS)
|
||||||
|
|
||||||
|
IQM_OBJECTS=../iqm/iqm.cpp
|
||||||
|
$(RELEASE_DIR)/iqm$(BITS): $(IQM_OBJECTS)
|
||||||
|
$(CC) -o $(RELEASE_DIR)/iqm$(BITS) $(IQM_OBJECTS) -lstdc++ -lm
|
||||||
|
iqm: $(RELEASE_DIR)/iqm$(BITS)
|
||||||
|
|
||||||
|
utils: httpserver iqm
|
||||||
|
|
||||||
prefix ?= /usr/local
|
prefix ?= /usr/local
|
||||||
exec_prefix ?= $(prefix)
|
exec_prefix ?= $(prefix)
|
||||||
|
|
|
@ -1091,7 +1091,7 @@ static void PM_PreparePackageList(void)
|
||||||
{
|
{
|
||||||
pluginpromptshown = true;
|
pluginpromptshown = true;
|
||||||
#ifndef SERVERONLY
|
#ifndef SERVERONLY
|
||||||
M_Menu_Prompt(PM_PluginDetected, NULL, "Plugin(s) appears to have\nbeen installed externally.\nUse the updates menu\ntoenable them.", "View", NULL, "Disable");
|
M_Menu_Prompt(PM_PluginDetected, NULL, "Plugin(s) appears to have\nbeen installed externally.\nUse the updates menu\nto enable them.", "View", NULL, "Disable");
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -264,8 +264,132 @@ void Sys_Quit (void)
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void Sys_Register_File_Associations_f(void)
|
||||||
|
{
|
||||||
|
char xdgbase[MAX_OSPATH];
|
||||||
|
|
||||||
|
if (1)
|
||||||
|
{
|
||||||
|
const char *e = getenv("XDG_DATA_HOME");
|
||||||
|
if (e && *e)
|
||||||
|
Q_strncpyz(xdgbase, e, sizeof(xdgbase));
|
||||||
|
else
|
||||||
|
{
|
||||||
|
e = getenv("HOME");
|
||||||
|
if (e && *e)
|
||||||
|
Q_snprintfz(xdgbase, sizeof(xdgbase), "%s/.local/share", e);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Con_Printf("homedir not known\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
const char *e = getenv("XDG_DATA_DIRS");
|
||||||
|
while (e && *e == ':')
|
||||||
|
e++;
|
||||||
|
if (e && *e)
|
||||||
|
{
|
||||||
|
char *c;
|
||||||
|
Q_strncpyz(xdgbase, e, sizeof(xdgbase));
|
||||||
|
c = strchr(xdgbase, ':');
|
||||||
|
if (*c)
|
||||||
|
*c = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
Q_strncpyz(xdgbase, "/usr/local/share/", sizeof(xdgbase));
|
||||||
|
}
|
||||||
|
|
||||||
|
//we need to create some .desktop file first, so stuff knows how to start us up.
|
||||||
|
{
|
||||||
|
char *exe = realpath(host_parms.argv[0], NULL);
|
||||||
|
char *basedir = realpath(com_gamepath, NULL);
|
||||||
|
const char *desktopfile =
|
||||||
|
"[Desktop Entry]\n"
|
||||||
|
"Type=Application\n"
|
||||||
|
"Encoding=UTF-8\n"
|
||||||
|
"Name=FTE QuakeWorld\n" //FIXME: needs to come from the manifest
|
||||||
|
"Comment=Awesome First Person Shooter\n" //again should be a manicfest item
|
||||||
|
"Exec=\"%s\" %%u\n" //FIXME: FS_GetManifestArgs! etc!
|
||||||
|
"Path=%s\n"
|
||||||
|
"Icon=quake\n" //FIXME: fix me!
|
||||||
|
"Terminal=false\n"
|
||||||
|
"Categories=Game;\n"
|
||||||
|
"MimeType=application/x-quakeworlddemo;x-scheme-handler/qw;\n"
|
||||||
|
;
|
||||||
|
desktopfile = va(desktopfile,
|
||||||
|
exe, basedir);
|
||||||
|
free(exe);
|
||||||
|
free(basedir);
|
||||||
|
FS_WriteFile(va("%s/applications/fteqw.desktop", xdgbase), desktopfile, strlen(desktopfile), FS_SYSTEM);
|
||||||
|
}
|
||||||
|
|
||||||
|
//we need to set some default applications.
|
||||||
|
//write out a new file and rename the new over the top of the old
|
||||||
|
{
|
||||||
|
char *foundassoc = NULL;
|
||||||
|
vfsfile_t *out = FS_OpenVFS(va("%s/applications/.mimeapps.list.new", xdgbase), "wb", FS_SYSTEM);
|
||||||
|
if (out)
|
||||||
|
{
|
||||||
|
qofs_t insize;
|
||||||
|
char *in = FS_MallocFile(va("%s/applications/mimeapps.list", xdgbase), FS_SYSTEM, &insize);
|
||||||
|
if (in)
|
||||||
|
{
|
||||||
|
qboolean inadded = false;
|
||||||
|
char *l = in;
|
||||||
|
while(*l)
|
||||||
|
{
|
||||||
|
char *le;
|
||||||
|
while(*l == ' ' || *l == '\n')
|
||||||
|
l++;
|
||||||
|
le = strchr(l, '\n');
|
||||||
|
if (le)
|
||||||
|
le = le+1;
|
||||||
|
else
|
||||||
|
le = l + strlen(l);
|
||||||
|
if (!strncmp(l, "[Added Associations]", 20))
|
||||||
|
{
|
||||||
|
inadded = true;
|
||||||
|
if (!foundassoc)
|
||||||
|
foundassoc = le;
|
||||||
|
}
|
||||||
|
else if (!strncmp(l, "[", 1))
|
||||||
|
inadded = false;
|
||||||
|
else if (inadded && !strncmp(l, "x-scheme-handler/qw=", 20))
|
||||||
|
{
|
||||||
|
foundassoc = l;
|
||||||
|
insize -= strlen(le);
|
||||||
|
memmove(l, le, strlen(le)); //remove the line
|
||||||
|
}
|
||||||
|
l = le;
|
||||||
|
}
|
||||||
|
if (foundassoc)
|
||||||
|
{ //if we found it, or somewhere to insert it, then insert it.
|
||||||
|
VFS_WRITE(out, in, foundassoc-in);
|
||||||
|
VFS_PRINTF(out, "x-scheme-handler/qw=fteqw.desktop\n");
|
||||||
|
VFS_WRITE(out, foundassoc, insize - (foundassoc-in));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
VFS_WRITE(out, in, insize); //not found, just write everything as-is
|
||||||
|
Z_Free(in);
|
||||||
|
}
|
||||||
|
if (!foundassoc)
|
||||||
|
{ //if file not found, or no appropriate section, just concat it on the end.
|
||||||
|
VFS_PRINTF(out, "[Added Associations]\n");
|
||||||
|
VFS_PRINTF(out, "x-scheme-handler/qw=fteqw.desktop\n");
|
||||||
|
}
|
||||||
|
VFS_FLUSH(out);
|
||||||
|
VFS_CLOSE(out);
|
||||||
|
FS_Rename2(va("%s/applications/.mimeapps.list.new", xdgbase), va("%s/applications/mimeapps.list", xdgbase), FS_SYSTEM, FS_SYSTEM);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void Sys_Init(void)
|
void Sys_Init(void)
|
||||||
{
|
{
|
||||||
|
Cmd_AddCommandD("sys_register_file_associations", Sys_Register_File_Associations_f, "Register FTE as the default handler for various file+protocol types, using FreeDesktop standards.\n");
|
||||||
}
|
}
|
||||||
void Sys_Shutdown(void)
|
void Sys_Shutdown(void)
|
||||||
{
|
{
|
||||||
|
@ -336,56 +460,6 @@ qboolean Sys_Rename (char *oldfname, char *newfname)
|
||||||
return !rename(oldfname, newfname);
|
return !rename(oldfname, newfname);
|
||||||
}
|
}
|
||||||
|
|
||||||
int Sys_FileOpenRead (char *path, int *handle)
|
|
||||||
{
|
|
||||||
int h;
|
|
||||||
struct stat fileinfo;
|
|
||||||
|
|
||||||
h = open (path, O_RDONLY, 0666);
|
|
||||||
*handle = h;
|
|
||||||
if (h == -1)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
if (fstat (h,&fileinfo) == -1)
|
|
||||||
Sys_Error ("Error fstating %s", path);
|
|
||||||
|
|
||||||
return fileinfo.st_size;
|
|
||||||
}
|
|
||||||
|
|
||||||
int Sys_FileOpenWrite (char *path)
|
|
||||||
{
|
|
||||||
int handle;
|
|
||||||
|
|
||||||
umask (0);
|
|
||||||
|
|
||||||
handle = open(path,O_RDWR | O_CREAT | O_TRUNC, 0666);
|
|
||||||
|
|
||||||
if (handle == -1)
|
|
||||||
Sys_Error ("Error opening %s: %s", path,strerror(errno));
|
|
||||||
|
|
||||||
return handle;
|
|
||||||
}
|
|
||||||
|
|
||||||
int Sys_FileWrite (int handle, void *src, int count)
|
|
||||||
{
|
|
||||||
return write (handle, src, count);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Sys_FileClose (int handle)
|
|
||||||
{
|
|
||||||
close (handle);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Sys_FileSeek (int handle, int position)
|
|
||||||
{
|
|
||||||
lseek (handle, position, SEEK_SET);
|
|
||||||
}
|
|
||||||
|
|
||||||
int Sys_FileRead (int handle, void *dest, int count)
|
|
||||||
{
|
|
||||||
return read (handle, dest, count);
|
|
||||||
}
|
|
||||||
|
|
||||||
int Sys_DebugLog(char *file, char *fmt, ...)
|
int Sys_DebugLog(char *file, char *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list argptr;
|
va_list argptr;
|
||||||
|
@ -800,6 +874,7 @@ int main (int c, const char **v)
|
||||||
{
|
{
|
||||||
double time, oldtime, newtime;
|
double time, oldtime, newtime;
|
||||||
quakeparms_t parms;
|
quakeparms_t parms;
|
||||||
|
int i;
|
||||||
|
|
||||||
// char cwd[1024];
|
// char cwd[1024];
|
||||||
char bindir[1024];
|
char bindir[1024];
|
||||||
|
@ -815,6 +890,9 @@ int main (int c, const char **v)
|
||||||
|
|
||||||
parms.argc = c;
|
parms.argc = c;
|
||||||
parms.argv = v;
|
parms.argv = v;
|
||||||
|
#ifdef CONFIG_MANIFEST_TEXT
|
||||||
|
parms.manifest = CONFIG_MANIFEST_TEXT;
|
||||||
|
#endif
|
||||||
COM_InitArgv(parms.argc, parms.argv);
|
COM_InitArgv(parms.argc, parms.argv);
|
||||||
|
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
|
@ -831,7 +909,7 @@ int main (int c, const char **v)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
parms.basedir = basedir;
|
parms.basedir = realpath(".", NULL);
|
||||||
memset(bindir, 0, sizeof(bindir)); //readlink does NOT null terminate, apparently.
|
memset(bindir, 0, sizeof(bindir)); //readlink does NOT null terminate, apparently.
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
//attempt to figure out where the exe is located
|
//attempt to figure out where the exe is located
|
||||||
|
@ -876,6 +954,16 @@ int main (int c, const char **v)
|
||||||
|
|
||||||
Host_Init(&parms);
|
Host_Init(&parms);
|
||||||
|
|
||||||
|
for (i = 1; i < parms.argc; i++)
|
||||||
|
{
|
||||||
|
Con_Printf("Arg%i == %s\n", i, parms.argv[i]);
|
||||||
|
if (!parms.argv[i])
|
||||||
|
continue;
|
||||||
|
if (*parms.argv[i] == '+' || *parms.argv[i] == '-')
|
||||||
|
break;
|
||||||
|
Host_RunFile(parms.argv[i], strlen(parms.argv[i]), NULL);
|
||||||
|
}
|
||||||
|
|
||||||
oldtime = Sys_DoubleTime ();
|
oldtime = Sys_DoubleTime ();
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
|
|
|
@ -4796,12 +4796,20 @@ void COM_Version_f (void)
|
||||||
#ifndef AVAIL_PNGLIB
|
#ifndef AVAIL_PNGLIB
|
||||||
Con_Printf("libpng disabled\n");
|
Con_Printf("libpng disabled\n");
|
||||||
#else
|
#else
|
||||||
Con_Printf("libPNG %s -%s", PNG_LIBPNG_VER_STRING, PNG_HEADER_VERSION_STRING);
|
#ifdef DYNAMIC_LIBPNG
|
||||||
|
Con_Printf("libPNG(dynamic) %s -%s", PNG_LIBPNG_VER_STRING, PNG_HEADER_VERSION_STRING);
|
||||||
|
#else
|
||||||
|
Con_Printf("libPNG %s -%s", PNG_LIBPNG_VER_STRING, PNG_HEADER_VERSION_STRING);
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#ifndef AVAIL_JPEGLIB
|
#ifndef AVAIL_JPEGLIB
|
||||||
Con_Printf("libjpeg disabled\n");
|
Con_Printf("libjpeg disabled\n");
|
||||||
#else
|
#else
|
||||||
Con_Printf("libjpeg: %i (%d series)\n", JPEG_LIB_VERSION, ( JPEG_LIB_VERSION / 10 ) );
|
#ifdef DYNAMIC_LIBJPEG
|
||||||
|
Con_Printf("libjpeg(dynamic): %i (%d series)\n", JPEG_LIB_VERSION, ( JPEG_LIB_VERSION / 10 ) );
|
||||||
|
#else
|
||||||
|
Con_Printf("libjpeg: %i (%d series)\n", JPEG_LIB_VERSION, ( JPEG_LIB_VERSION / 10 ) );
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Con_Printf("VoiceChat:");
|
Con_Printf("VoiceChat:");
|
||||||
|
@ -4809,12 +4817,12 @@ void COM_Version_f (void)
|
||||||
Con_Printf(" disabled");
|
Con_Printf(" disabled");
|
||||||
#else
|
#else
|
||||||
#ifdef SPEEX_STATIC
|
#ifdef SPEEX_STATIC
|
||||||
Con_Printf(" speex(static)");
|
Con_Printf(" speex");
|
||||||
#else
|
#else
|
||||||
Con_Printf(" speex(dynamic)");
|
Con_Printf(" speex(dynamic)");
|
||||||
#endif
|
#endif
|
||||||
#ifdef OPUS_STATIC
|
#ifdef OPUS_STATIC
|
||||||
Con_Printf(" opus(static)");
|
Con_Printf(" opus");
|
||||||
#else
|
#else
|
||||||
Con_Printf(" opus(dynamic)");
|
Con_Printf(" opus(dynamic)");
|
||||||
#endif
|
#endif
|
||||||
|
@ -4823,9 +4831,9 @@ void COM_Version_f (void)
|
||||||
|
|
||||||
Con_Printf("Audio Decoders:");
|
Con_Printf("Audio Decoders:");
|
||||||
#ifndef AVAIL_OGGVORBIS
|
#ifndef AVAIL_OGGVORBIS
|
||||||
Con_Printf(" ^h(disabled: Ogg Vorbis)^7");
|
Con_DPrintf(" ^h(disabled: Ogg Vorbis)^7");
|
||||||
#elif defined(LIBVORBISFILE_STATIC)
|
#elif defined(LIBVORBISFILE_STATIC)
|
||||||
Con_Printf(" Ogg Vorbis(static)");
|
Con_Printf(" Ogg Vorbis");
|
||||||
#else
|
#else
|
||||||
Con_Printf(" Ogg Vorbis(dynamic)");
|
Con_Printf(" Ogg Vorbis(dynamic)");
|
||||||
#endif
|
#endif
|
||||||
|
@ -4840,12 +4848,12 @@ void COM_Version_f (void)
|
||||||
#ifdef USE_MYSQL
|
#ifdef USE_MYSQL
|
||||||
Con_Printf(" mySQL(dynamic)");
|
Con_Printf(" mySQL(dynamic)");
|
||||||
#else
|
#else
|
||||||
Con_Printf(" ^h(disabled: mySQL)^7");
|
Con_DPrintf(" ^h(disabled: mySQL)^7");
|
||||||
#endif
|
#endif
|
||||||
#ifdef USE_SQLITE
|
#ifdef USE_SQLITE
|
||||||
Con_Printf(" sqlite(dynamic)");
|
Con_Printf(" sqlite(dynamic)");
|
||||||
#else
|
#else
|
||||||
Con_Printf(" ^h(disabled: sqlite)^7");
|
Con_DPrintf(" ^h(disabled: sqlite)^7");
|
||||||
#endif
|
#endif
|
||||||
Con_Printf("\n");
|
Con_Printf("\n");
|
||||||
#endif
|
#endif
|
||||||
|
@ -4854,28 +4862,28 @@ void COM_Version_f (void)
|
||||||
#ifdef SUBSERVERS
|
#ifdef SUBSERVERS
|
||||||
Con_Printf(" mapcluster(enabled)");
|
Con_Printf(" mapcluster(enabled)");
|
||||||
#else
|
#else
|
||||||
Con_Printf(" ^h(disabled: mapcluster)^7");
|
Con_DPrintf(" ^h(disabled: mapcluster)^7");
|
||||||
#endif
|
#endif
|
||||||
#ifndef SERVERONLY
|
#ifndef SERVERONLY
|
||||||
#ifdef AVAIL_FREETYPE
|
#ifdef AVAIL_FREETYPE
|
||||||
Con_Printf(" freetype2");
|
Con_Printf(" freetype2");
|
||||||
#else
|
#else
|
||||||
Con_Printf(" ^h(disabled: freetype2)^7");
|
Con_DPrintf(" ^h(disabled: freetype2)^7");
|
||||||
#endif
|
#endif
|
||||||
#ifdef AVAIL_OPENAL
|
#ifdef AVAIL_OPENAL
|
||||||
Con_Printf(" openal");
|
Con_Printf(" openal");
|
||||||
#else
|
#else
|
||||||
Con_Printf(" ^h(disabled: openal)^7");
|
Con_DPrintf(" ^h(disabled: openal)^7");
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
Con_Printf("\n");
|
Con_Printf("\n");
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#ifndef AVAIL_DINPUT
|
#ifndef AVAIL_DINPUT
|
||||||
Con_Printf("DirectInput disabled\n");
|
Con_DPrintf("DirectInput disabled\n");
|
||||||
#endif
|
#endif
|
||||||
#ifndef AVAIL_DSOUND
|
#ifndef AVAIL_DSOUND
|
||||||
Con_Printf("DirectSound disabled\n");
|
Con_DPrintf("DirectSound disabled\n");
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -4889,7 +4897,7 @@ void COM_Version_f (void)
|
||||||
#elif defined(Q3BSPS)
|
#elif defined(Q3BSPS)
|
||||||
Con_Printf(" Quake3(bsp only)");
|
Con_Printf(" Quake3(bsp only)");
|
||||||
#else
|
#else
|
||||||
Con_Printf(" ^h(disabled: Quake3)^7");
|
Con_DPrintf(" ^h(disabled: Quake3)^7");
|
||||||
#endif
|
#endif
|
||||||
#if defined(Q2SERVER) && defined(Q2CLIENT)
|
#if defined(Q2SERVER) && defined(Q2CLIENT)
|
||||||
Con_Printf(" Quake2");
|
Con_Printf(" Quake2");
|
||||||
|
@ -4900,17 +4908,17 @@ void COM_Version_f (void)
|
||||||
#elif defined(Q2BSPS)
|
#elif defined(Q2BSPS)
|
||||||
Con_Printf(" Quake2(bsp only)");
|
Con_Printf(" Quake2(bsp only)");
|
||||||
#else
|
#else
|
||||||
Con_Printf(" ^h(disabled: Quake2)^7");
|
Con_DPrintf(" ^h(disabled: Quake2)^7");
|
||||||
#endif
|
#endif
|
||||||
#if defined(HEXEN2)
|
#if defined(HEXEN2)
|
||||||
Con_Printf(" Hexen2");
|
Con_Printf(" Hexen2");
|
||||||
#else
|
#else
|
||||||
Con_Printf(" ^h(disabled: Hexen2)^7");
|
Con_DPrintf(" ^h(disabled: Hexen2)^7");
|
||||||
#endif
|
#endif
|
||||||
#if defined(NQPROT)
|
#if defined(NQPROT)
|
||||||
Con_Printf(" NetQuake");
|
Con_Printf(" NetQuake");
|
||||||
#else
|
#else
|
||||||
Con_Printf(" ^h(disabled: NetQuake)");
|
Con_DPrintf(" ^h(disabled: NetQuake)");
|
||||||
#endif
|
#endif
|
||||||
#if defined(VM_Q1)
|
#if defined(VM_Q1)
|
||||||
Con_Printf(" ssq1qvm");
|
Con_Printf(" ssq1qvm");
|
||||||
|
|
|
@ -4036,6 +4036,15 @@ qboolean Sys_FindGameData(const char *poshname, const char *gamename, char *base
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
s = va("/usr/share/games/%s-demo/", gamename);
|
||||||
|
if (stat(s, &sb) == 0)
|
||||||
|
{
|
||||||
|
if (S_ISDIR(sb.st_mode))
|
||||||
|
{
|
||||||
|
Q_strncpyz(basepath, s, basepathlen);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -5185,7 +5194,13 @@ qboolean FS_ChangeGame(ftemanifest_t *man, qboolean allowreloadconfigs, qboolean
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!fixedbasedir && !com_installer)
|
if (!fixedbasedir && !com_installer)
|
||||||
Q_strncpyz (com_gamepath, newbasedir, sizeof(com_gamepath));
|
{
|
||||||
|
if (strcmp(com_gamepath, newbasedir))
|
||||||
|
{
|
||||||
|
PM_Shutdown();
|
||||||
|
Q_strncpyz (com_gamepath, newbasedir, sizeof(com_gamepath));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//make sure it has a trailing slash, or is empty. woo.
|
//make sure it has a trailing slash, or is empty. woo.
|
||||||
FS_CleanDir(com_gamepath, sizeof(com_gamepath));
|
FS_CleanDir(com_gamepath, sizeof(com_gamepath));
|
||||||
|
|
|
@ -135,11 +135,10 @@ static void (VARGS *qgnutls_transport_set_pull_function)(gnutls_session_t sessio
|
||||||
static void (VARGS *qgnutls_transport_set_errno)(gnutls_session_t session, int err);
|
static void (VARGS *qgnutls_transport_set_errno)(gnutls_session_t session, int err);
|
||||||
static int (VARGS *qgnutls_error_is_fatal)(int error);
|
static int (VARGS *qgnutls_error_is_fatal)(int error);
|
||||||
static int (VARGS *qgnutls_credentials_set)(gnutls_session_t, gnutls_credentials_type_t type, void* cred);
|
static int (VARGS *qgnutls_credentials_set)(gnutls_session_t, gnutls_credentials_type_t type, void* cred);
|
||||||
static int (VARGS *qgnutls_kx_set_priority)(gnutls_session_t session, const int*);
|
//static int (VARGS *qgnutls_kx_set_priority)(gnutls_session_t session, const int*);
|
||||||
static int (VARGS *qgnutls_init)(gnutls_session_t * session, gnutls_connection_end_t con_end);
|
static int (VARGS *qgnutls_init)(gnutls_session_t * session, gnutls_connection_end_t con_end);
|
||||||
static int (VARGS *qgnutls_set_default_priority)(gnutls_session_t session);
|
static int (VARGS *qgnutls_set_default_priority)(gnutls_session_t session);
|
||||||
static int (VARGS *qgnutls_certificate_allocate_credentials)(gnutls_certificate_credentials_t *sc);
|
static int (VARGS *qgnutls_certificate_allocate_credentials)(gnutls_certificate_credentials_t *sc);
|
||||||
static int (VARGS *qgnutls_certificate_type_set_priority)(gnutls_session_t session, const int*);
|
|
||||||
static int (VARGS *qgnutls_anon_allocate_client_credentials)(gnutls_anon_client_credentials_t *sc);
|
static int (VARGS *qgnutls_anon_allocate_client_credentials)(gnutls_anon_client_credentials_t *sc);
|
||||||
static int (VARGS *qgnutls_global_init)(void);
|
static int (VARGS *qgnutls_global_init)(void);
|
||||||
static ssize_t (VARGS *qgnutls_record_send)(gnutls_session_t session, const void *data, size_t sizeofdata);
|
static ssize_t (VARGS *qgnutls_record_send)(gnutls_session_t session, const void *data, size_t sizeofdata);
|
||||||
|
@ -197,9 +196,7 @@ static qboolean Init_GNUTLS(void)
|
||||||
GNUTLS_FUNC(gnutls_transport_set_pull_function) \
|
GNUTLS_FUNC(gnutls_transport_set_pull_function) \
|
||||||
GNUTLS_FUNC(gnutls_transport_set_errno) \
|
GNUTLS_FUNC(gnutls_transport_set_errno) \
|
||||||
GNUTLS_FUNC(gnutls_error_is_fatal) \
|
GNUTLS_FUNC(gnutls_error_is_fatal) \
|
||||||
GNUTLS_FUNC(gnutls_certificate_type_set_priority) \
|
|
||||||
GNUTLS_FUNC(gnutls_credentials_set) \
|
GNUTLS_FUNC(gnutls_credentials_set) \
|
||||||
GNUTLS_FUNC(gnutls_kx_set_priority) \
|
|
||||||
GNUTLS_FUNC(gnutls_init) \
|
GNUTLS_FUNC(gnutls_init) \
|
||||||
GNUTLS_FUNC(gnutls_set_default_priority) \
|
GNUTLS_FUNC(gnutls_set_default_priority) \
|
||||||
GNUTLS_FUNC(gnutls_certificate_allocate_credentials) \
|
GNUTLS_FUNC(gnutls_certificate_allocate_credentials) \
|
||||||
|
@ -232,9 +229,8 @@ static qboolean Init_GNUTLS(void)
|
||||||
{(void**)&qgnutls_transport_set_pull_function, "gnutls_transport_set_pull_function"},
|
{(void**)&qgnutls_transport_set_pull_function, "gnutls_transport_set_pull_function"},
|
||||||
{(void**)&qgnutls_transport_set_errno, "gnutls_transport_set_errno"},
|
{(void**)&qgnutls_transport_set_errno, "gnutls_transport_set_errno"},
|
||||||
{(void**)&qgnutls_error_is_fatal, "gnutls_error_is_fatal"},
|
{(void**)&qgnutls_error_is_fatal, "gnutls_error_is_fatal"},
|
||||||
{(void**)&qgnutls_certificate_type_set_priority, "gnutls_certificate_type_set_priority"},
|
|
||||||
{(void**)&qgnutls_credentials_set, "gnutls_credentials_set"},
|
{(void**)&qgnutls_credentials_set, "gnutls_credentials_set"},
|
||||||
{(void**)&qgnutls_kx_set_priority, "gnutls_kx_set_priority"},
|
// {(void**)&qgnutls_kx_set_priority, "gnutls_kx_set_priority"},
|
||||||
{(void**)&qgnutls_init, "gnutls_init"},
|
{(void**)&qgnutls_init, "gnutls_init"},
|
||||||
{(void**)&qgnutls_set_default_priority, "gnutls_set_default_priority"},
|
{(void**)&qgnutls_set_default_priority, "gnutls_set_default_priority"},
|
||||||
{(void**)&qgnutls_certificate_allocate_credentials, "gnutls_certificate_allocate_credentials"},
|
{(void**)&qgnutls_certificate_allocate_credentials, "gnutls_certificate_allocate_credentials"},
|
||||||
|
@ -396,7 +392,7 @@ static int QDECL SSL_CheckCert(gnutls_session_t session)
|
||||||
gnutls_datum_t out;
|
gnutls_datum_t out;
|
||||||
gnutls_certificate_type_t type;
|
gnutls_certificate_type_t type;
|
||||||
|
|
||||||
if (preverified && certstatus == (GNUTLS_CERT_INVALID|GNUTLS_CERT_SIGNER_NOT_FOUND))
|
if (preverified && (certstatus&~GNUTLS_CERT_EXPIRED) == (GNUTLS_CERT_INVALID|GNUTLS_CERT_SIGNER_NOT_FOUND))
|
||||||
return 0;
|
return 0;
|
||||||
if (certstatus == 0)
|
if (certstatus == 0)
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -699,7 +695,7 @@ vfsfile_t *FS_OpenSSL(const char *hostname, vfsfile_t *source, qboolean server,
|
||||||
qgnutls_set_default_priority (newf->session);
|
qgnutls_set_default_priority (newf->session);
|
||||||
if (anon)
|
if (anon)
|
||||||
{
|
{
|
||||||
qgnutls_kx_set_priority (newf->session, kx_prio);
|
//qgnutls_kx_set_priority (newf->session, kx_prio);
|
||||||
qgnutls_credentials_set (newf->session, GNUTLS_CRD_ANON, anoncred);
|
qgnutls_credentials_set (newf->session, GNUTLS_CRD_ANON, anoncred);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -707,7 +703,7 @@ vfsfile_t *FS_OpenSSL(const char *hostname, vfsfile_t *source, qboolean server,
|
||||||
//#if GNUTLS_VERSION_MAJOR >= 3
|
//#if GNUTLS_VERSION_MAJOR >= 3
|
||||||
//gnutls_priority_set_direct();
|
//gnutls_priority_set_direct();
|
||||||
//#else
|
//#else
|
||||||
qgnutls_certificate_type_set_priority (newf->session, cert_type_priority);
|
//qgnutls_certificate_type_set_priority (newf->session, cert_type_priority);
|
||||||
//#endif
|
//#endif
|
||||||
qgnutls_credentials_set (newf->session, GNUTLS_CRD_CERTIFICATE, xcred);
|
qgnutls_credentials_set (newf->session, GNUTLS_CRD_CERTIFICATE, xcred);
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@ struct edict_s;
|
||||||
#define NOENDIAN
|
#define NOENDIAN
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
pbool ED_ParseEpair (progfuncs_t *progfuncs, int qcptr, unsigned int fldofs, int fldtype, char *s);
|
pbool ED_ParseEpair (progfuncs_t *progfuncs, size_t qcptr, unsigned int fldofs, int fldtype, char *s);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
=================
|
=================
|
||||||
|
@ -1237,7 +1237,7 @@ pbool PDECL ED_ParseEval (pubprogfuncs_t *ppf, eval_t *eval, int type, const cha
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
pbool ED_ParseEpair (progfuncs_t *progfuncs, int qcptr, unsigned int fldofs, int fldtype, char *s)
|
pbool ED_ParseEpair (progfuncs_t *progfuncs, size_t qcptr, unsigned int fldofs, int fldtype, char *s)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
char string[128];
|
char string[128];
|
||||||
|
|
|
@ -17,3 +17,6 @@ iqm: $(IQM_OBJS)
|
||||||
$(CXX) $(CXXFLAGS) -o iqm $(IQM_OBJS)
|
$(CXX) $(CXXFLAGS) -o iqm $(IQM_OBJS)
|
||||||
upgrade: $(UPGRADE_OBJS)
|
upgrade: $(UPGRADE_OBJS)
|
||||||
$(CXX) $(CXXFLAGS) -o upgrade $(UPGRADE_OBJS)
|
$(CXX) $(CXXFLAGS) -o upgrade $(UPGRADE_OBJS)
|
||||||
|
|
||||||
|
%.o : %.cpp
|
||||||
|
$(CXX) -o $@ -c $<
|
||||||
|
|
Loading…
Reference in a new issue