From cf899af34a4cf01e7b014233e7cd63f1422c6cc9 Mon Sep 17 00:00:00 2001 From: Spoike Date: Sat, 19 May 2018 05:07:30 +0000 Subject: [PATCH] compile fixes for openbsd+freebsd git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5252 fc73d0e0-1445-4013-8a0c-d673dee63da5 --- engine/Makefile | 36 +++++++++++++++++++++++++----------- engine/client/image.c | 2 +- engine/client/quakedef.h | 10 +++++----- engine/client/snd_linux.c | 6 +++++- engine/vk/vkrenderer.h | 18 +++++++++++------- 5 files changed, 47 insertions(+), 25 deletions(-) diff --git a/engine/Makefile b/engine/Makefile index c5d2ed0eb..a7c17543d 100644 --- a/engine/Makefile +++ b/engine/Makefile @@ -394,23 +394,23 @@ ifeq ($(FTE_TARGET),) #user didn't specify prefered target FTE_TARGET=win32 endif ifeq ($(FTE_TARGET),) #still not set - - ifeq ($(shell uname),Linux) + UNAME_SYSTEM:=$(shell uname) + ifeq ($(UNAME_SYSTEM),Linux) FTE_TARGET=linux endif - ifeq ($(shell uname),Darwin) + ifeq ($(UNAME_SYSTEM),Darwin) FTE_TARGET=macosx endif - ifeq ($(shell uname),FreeBSD) + ifeq ($(UNAME_SYSTEM),FreeBSD) FTE_TARGET=bsd endif - ifeq ($(shell uname),NetBSD) + ifeq ($(UNAME_SYSTEM),NetBSD) FTE_TARGET=bsd endif - ifeq ($(shell uname),OpenBSD) + ifeq ($(UNAME_SYSTEM),OpenBSD) FTE_TARGET=bsd endif - ifeq ($(shell uname),MorphOS) + ifeq ($(UNAME_SYSTEM),MorphOS) FTE_TARGET=morphos endif #else I've no idea what it is you're running @@ -1247,9 +1247,10 @@ ifeq ($(FTE_TARGET),bsd) #mostly uses the linux stuff. #oss, X, etc. - SV_DIR=sv_linux - SV_LDFLAGS=-lz -ldl - SV_CFLAGS=$(SERVER_ONLY_CFLAGS) + SV_DIR=sv_bsd + SV_EXE_NAME=../$(EXE_NAME)-sv$(BITS) + SV_LDFLAGS= + SV_CFLAGS=$(SERVER_ONLY_CFLAGS) -DMULTITHREAD GLCL_OBJS=$(GL_OBJS) $(D3DGL_OBJS) $(GLQUAKE_OBJS) $(BOTLIB_OBJS) gl_vidlinuxglx.o snd_linux.o cd_null.o sys_linux.o sys_linux_threads.o GL_EXE_NAME=../$(EXE_NAME)-gl @@ -1263,12 +1264,25 @@ ifeq ($(FTE_TARGET),bsd) M_EXE_NAME=../$(EXE_NAME) MCL_EXE_NAME=../$(EXE_NAME)-cl M_LDFLAGS=$(GLLDFLAGS) $(XLDFLAGS) -lpthread - M_CFLAGS=$(VKCFLAGS) $(GLCFLAGS) -I/usr/X11R6/include + M_CFLAGS=$(VKCFLAGS) $(GLCFLAGS) -I/usr/X11R6/include -DMULTITHREAD MB_DIR=m_bsd MCL_DIR=mcl_bsd MINGL_EXE_NAME=../$(EXE_NAME)-mingl MINGL_DIR=mingl_bsd + + ifeq ($(shell uname -s),OpenBSD) + GL_LDFLAGS+= -lossaudio + VK_LDFLAGS+= -lossaudio + M_LDFLAGS+= -lossaudio + endif + + ifeq (,$(findstring NO_ZLIB,$(CFLAGS))) + SV_LDFLAGS+= -lz + GL_LDFLAGS+= -lz + VK_LDFLAGS+= -lz + M_LDFLAGS+= -lz + endif endif ifneq (,$(findstring linux,$(FTE_TARGET))) SV_DIR=sv_linux$(BITS) diff --git a/engine/client/image.c b/engine/client/image.c index e523b8002..91aefef92 100644 --- a/engine/client/image.c +++ b/engine/client/image.c @@ -826,7 +826,7 @@ qboolean LibPNG_Init(void) char *libnames[] = { #ifdef _WIN32 - va("libpng%i", PNG_LIBPNG_VER_DLLNUM); + va("libpng%i", PNG_LIBPNG_VER_DLLNUM) #else //linux... //lsb uses 'libpng12.so' specifically, so make sure that works. diff --git a/engine/client/quakedef.h b/engine/client/quakedef.h index e23d01b1c..f9f08e7fa 100644 --- a/engine/client/quakedef.h +++ b/engine/client/quakedef.h @@ -141,13 +141,13 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include #ifdef USE_MSVCRT_DEBUG -#define _CRTDBG_MAP_ALLOC -#include + #define _CRTDBG_MAP_ALLOC + #include #endif #if defined(_WIN32) || defined(__DJGPP__) -#include -#else -#include + #include +#elif !defined(alloca) //alloca.h isn't present on bsd (stdlib.h should define it to __builtin_alloca, and we can check for that here). + #include #endif #ifdef __cplusplus diff --git a/engine/client/snd_linux.c b/engine/client/snd_linux.c index dd6c7ae11..47c1b77af 100644 --- a/engine/client/snd_linux.c +++ b/engine/client/snd_linux.c @@ -6,7 +6,11 @@ #include #include #include -#include +#if defined(__OpenBSD__) + #include //OpenBSD emulates this, so its no longer sys/. +#else + #include +#endif #include #include "quakedef.h" diff --git a/engine/vk/vkrenderer.h b/engine/vk/vkrenderer.h index 2a45ea8e0..77adb7906 100644 --- a/engine/vk/vkrenderer.h +++ b/engine/vk/vkrenderer.h @@ -1,12 +1,10 @@ //#include "glquake.h" -#ifdef _WIN32 -#define WIN32_LEAN_AND_MEAN -#define VK_USE_PLATFORM_WIN32_KHR -#define VKInstWin32Funcs VKFunc(CreateWin32SurfaceKHR) -#endif - -#ifdef ANDROID +#if defined(_WIN32) + #define WIN32_LEAN_AND_MEAN + #define VK_USE_PLATFORM_WIN32_KHR + #define VKInstWin32Funcs VKFunc(CreateWin32SurfaceKHR) +#elif defined(ANDROID) #define VK_USE_PLATFORM_ANDROID_KHR #define VKInstXLibFuncs VKFunc(CreateAndroidSurfaceKHR) #elif defined(__linux__) @@ -18,6 +16,12 @@ #define VK_USE_PLATFORM_WAYLAND_KHR #define VKInstWaylandFuncs VKFunc(CreateWaylandSurfaceKHR) +#elif defined(__FreeBSD__) || defined(__OpenBSD__) + #define VK_USE_PLATFORM_XLIB_KHR + #define VKInstXLibFuncs VKFunc(CreateXlibSurfaceKHR) + + #define VK_USE_PLATFORM_XCB_KHR + #define VKInstXCBFuncs VKFunc(CreateXcbSurfaceKHR) #endif #define VK_NO_PROTOTYPES