* 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 # ioq3 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
# #
# GNU Make required # GNU Make required
# #
@ -144,8 +137,8 @@ SDLHDIR=$(MOUNT_DIR)/SDL12
LIBSDIR=$(MOUNT_DIR)/libs LIBSDIR=$(MOUNT_DIR)/libs
# extract version info # extract version info
VERSION=$(shell grep "\#define Q3_VERSION" $(CMDIR)/q_shared.h | \ VERSION=$(shell grep "\#define *PRODUCT_VERSION" $(CMDIR)/q_shared.h | \
sed -e 's/.*".* \([^ ]*\)"/\1/') sed -e 's/[^"]*"\(.*\)"/\1/')
USE_SVN= USE_SVN=
ifeq ($(wildcard .svn),.svn) ifeq ($(wildcard .svn),.svn)
@ -738,7 +731,7 @@ echo_cmd=@echo
Q=@ Q=@
endif endif
define DO_CC define DO_CC
$(echo_cmd) "CC $<" $(echo_cmd) "CC $<"
$(Q)$(CC) $(NOTSHLIBCFLAGS) $(CFLAGS) -o $@ -c $< $(Q)$(CC) $(NOTSHLIBCFLAGS) $(CFLAGS) -o $@ -c $<
endef endef
@ -800,7 +793,7 @@ release:
# Create the build directories and tools, print out # Create the build directories and tools, print out
# an informational message, then start building # an informational message, then start building
targets: makedirs tools targets: makedirs tools libversioncheck
@echo "" @echo ""
@echo "Building ioquake3 in $(B):" @echo "Building ioquake3 in $(B):"
@echo " PLATFORM: $(PLATFORM)" @echo " PLATFORM: $(PLATFORM)"
@ -869,6 +862,28 @@ $(Q)$(Q3LCC) -DMISSIONPACK -o $@ $<
endef 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 # 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. // q_shared.h -- included first by ALL program modules.
// A user mod should never modify this file // 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 #ifdef SVN_VERSION
# define Q3_VERSION Q3_VERSION_BASE "_SVN" SVN_VERSION # define Q3_VERSION PRODUCT_NAME " " SVN_VERSION
#else #else
# define Q3_VERSION Q3_VERSION_BASE # define Q3_VERSION PRODUCT_NAME " " PRODUCT_VERSION
#endif #endif
#define CLIENT_WINDOW_TITLE "ioquake3" #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" #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 #ifdef SMP
#include "SDL_thread.h" #include "SDL_thread.h"
#endif #endif

View file

@ -35,6 +35,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#ifndef DEDICATED #ifndef DEDICATED
#include "SDL.h" #include "SDL.h"
#include "SDL_cpuinfo.h"
#endif #endif
#include "sys_local.h" #include "sys_local.h"
@ -604,6 +605,24 @@ int main( int argc, char **argv )
int i; int i;
char commandLine[ MAX_STRING_CHARS ] = { 0 }; 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_ParseArgs( argc, argv );
Sys_SetBinaryPath( Sys_Dirname( argv[ 0 ] ) ); Sys_SetBinaryPath( Sys_Dirname( argv[ 0 ] ) );
Sys_SetDefaultInstallPath( DEFAULT_BASEDIR ); Sys_SetDefaultInstallPath( DEFAULT_BASEDIR );