* Compile time and runtime checks for SDL >= 1.2.7

* Modified versioning to play nice with the reverted Makefile change
This commit is contained in:
Tim Angus 2007-09-06 18:21:10 +00:00
parent d5e9f1216e
commit e56a151a97
4 changed files with 58 additions and 15 deletions

View File

@ -1,12 +1,5 @@
#
# Quake3 Unix Makefile
#
# Nov '98 by Zoid <zoid@idsoftware.com>
#
# Loki Hacking by Bernd Kreimeier
# and a little more by Ryan C. Gordon.
# and a little more by Rafael Barrero
# and a little more by the ioq3 cr3w
# ioq3 Makefile
#
# GNU Make required
#
@ -144,8 +137,8 @@ SDLHDIR=$(MOUNT_DIR)/SDL12
LIBSDIR=$(MOUNT_DIR)/libs
# extract version info
VERSION=$(shell grep "\#define Q3_VERSION" $(CMDIR)/q_shared.h | \
sed -e 's/.*".* \([^ ]*\)"/\1/')
VERSION=$(shell grep "\#define *PRODUCT_VERSION" $(CMDIR)/q_shared.h | \
sed -e 's/[^"]*"\(.*\)"/\1/')
USE_SVN=
ifeq ($(wildcard .svn),.svn)
@ -738,7 +731,7 @@ echo_cmd=@echo
Q=@
endif
define DO_CC
define DO_CC
$(echo_cmd) "CC $<"
$(Q)$(CC) $(NOTSHLIBCFLAGS) $(CFLAGS) -o $@ -c $<
endef
@ -800,7 +793,7 @@ release:
# Create the build directories and tools, print out
# an informational message, then start building
targets: makedirs tools
targets: makedirs tools libversioncheck
@echo ""
@echo "Building ioquake3 in $(B):"
@echo " PLATFORM: $(PLATFORM)"
@ -869,6 +862,28 @@ $(Q)$(Q3LCC) -DMISSIONPACK -o $@ $<
endef
#############################################################################
# LIBRARY VERSION CHECKS
#############################################################################
MINSDL_MAJOR = 1
MINSDL_MINOR = 2
MINSDL_PATCH = 7
BASE_CFLAGS += -DMINSDL_MAJOR=$(MINSDL_MAJOR) \
-DMINSDL_MINOR=$(MINSDL_MINOR) \
-DMINSDL_PATCH=$(MINSDL_PATCH)
libversioncheck:
@echo "#include \"SDL_version.h\"\n" \
"#if SDL_VERSION_ATLEAST(" \
"$(MINSDL_MAJOR),$(MINSDL_MINOR),$(MINSDL_PATCH)" \
")\nMINSDL_PASSED\n#endif" | \
$(CC) $(BASE_CFLAGS) -E - | grep -q MINSDL_PASSED || \
( echo "SDL version $(MINSDL_MAJOR).$(MINSDL_MINOR).$(MINSDL_PATCH)" \
"or greater required" && exit 1 )
#############################################################################
# CLIENT/SERVER
#############################################################################

View File

@ -26,11 +26,13 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
// q_shared.h -- included first by ALL program modules.
// A user mod should never modify this file
#define Q3_VERSION_BASE "ioq3 1.35"
#define PRODUCT_NAME "ioq3"
#define PRODUCT_VERSION "1.35"
#ifdef SVN_VERSION
# define Q3_VERSION Q3_VERSION_BASE "_SVN" SVN_VERSION
# define Q3_VERSION PRODUCT_NAME " " SVN_VERSION
#else
# define Q3_VERSION Q3_VERSION_BASE
# define Q3_VERSION PRODUCT_NAME " " PRODUCT_VERSION
#endif
#define CLIENT_WINDOW_TITLE "ioquake3"

View File

@ -22,6 +22,13 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#include "SDL.h"
#if !SDL_VERSION_ATLEAST(1, 2, 10)
#define SDL_GL_ACCELERATED_VISUAL 15
#define SDL_GL_SWAP_CONTROL 16
#elif MINSDL_PATCH >= 10
#error Code block no longer necessary, please remove
#endif
#ifdef SMP
#include "SDL_thread.h"
#endif

View File

@ -35,6 +35,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#ifndef DEDICATED
#include "SDL.h"
#include "SDL_cpuinfo.h"
#endif
#include "sys_local.h"
@ -604,6 +605,24 @@ int main( int argc, char **argv )
int i;
char commandLine[ MAX_STRING_CHARS ] = { 0 };
#ifndef DEDICATED
const SDL_version *ver = SDL_Linked_Version( );
#define STRING(s) #s
#define XSTRING(s) STRING(s)
#define MINSDL_VERSION \
XSTRING(MINSDL_MAJOR) "." \
XSTRING(MINSDL_MINOR) "." \
XSTRING(MINSDL_PATCH)
if( SDL_VERSIONNUM( ver->major, ver->minor, ver->patch ) <
SDL_VERSIONNUM( MINSDL_MAJOR, MINSDL_MINOR, MINSDL_PATCH ) )
{
Sys_Print( "SDL version " MINSDL_VERSION " or greater required\n" );
Sys_Exit( 1 );
}
#endif
Sys_ParseArgs( argc, argv );
Sys_SetBinaryPath( Sys_Dirname( argv[ 0 ] ) );
Sys_SetDefaultInstallPath( DEFAULT_BASEDIR );