Changeset - r3084:a5e85a4a5104
[Not reviewed]
master
0 2 1
bjarni - 18 years ago 2006-02-25 18:11:11
bjarni@openttd.org
(svn r3673) -Codechange: [OSX] changed the makefile to autodetect if it compiles on G5 and then adds flags to optimise for G5
This will not interfere with crosscompiling or universal binaries
3 files changed with 42 insertions and 0 deletions:
0 comments (0 inline, 0 general)
Makefile
Show inline comments
 
@@ -345,6 +345,9 @@ endif
 
ifdef OSX
 
# these compilerflags makes the app run as fast as possible without making the app unstable. It works on G3 or newer
 
BASECFLAGS += -O3 -funroll-loops -fsched-interblock -falign-loops=16 -falign-jumps=16 -falign-functions=16 -falign-jumps-max-skip=15 -falign-loops-max-skip=15 -mdynamic-no-pic
 
ifdef IS_G5
 
BASECFLAGS += -mtune=970 -mcpu=970 -mpowerpc-gpopt
 
endif
 
else
 
ifdef MORPHOS
 
BASECFLAGS += -I/gg/os-include -O2 -noixemul -fstrict-aliasing -fexpensive-optimizations
os/macosx/G5_detector.c
Show inline comments
 
new file 100644
 
/* $Id:$ */
 

	
 
#include <mach/mach.h>
 
#include <mach/mach_host.h>
 
#include <mach/host_info.h>
 
#include <mach/machine.h>
 
#include <stdio.h>
 

	
 

	
 
#ifndef CPU_SUBTYPE_POWERPC_970
 
#define CPU_SUBTYPE_POWERPC_970 ((cpu_subtype_t) 100)
 
#endif
 

	
 
// this function is a lightly modified version of some code from Apple's developer homepage to detect G5 CPUs at runtime
 
main()
 
{
 
	host_basic_info_data_t hostInfo;
 
	mach_msg_type_number_t infoCount;
 
	boolean_t is_G5;
 

	
 
	infoCount = HOST_BASIC_INFO_COUNT;
 
	host_info(mach_host_self(), HOST_BASIC_INFO,
 
			  (host_info_t)&hostInfo, &infoCount);
 

	
 
	 is_G5 = ((hostInfo.cpu_type == CPU_TYPE_POWERPC) &&
 
			(hostInfo.cpu_subtype == CPU_SUBTYPE_POWERPC_970));
 
	 if (is_G5)
 
		 printf("1");
 
}
os/macosx/Makefile.setup
Show inline comments
 
@@ -16,6 +16,16 @@ ifndef FAT_BINARY
 
endif
 
endif
 

	
 
ifndef FAT_BINARY
 
ifndef JAGUAR
 
ifeq ($(shell uname), Darwin)
 
# it's a hardware mac, not crosscompiling
 
$(Q)$(CC_HOST) os/macosx/G5_detector.c -o os/macosx/G5_detector
 
IS_G5:=$(shell os/macosx/G5_detector)
 
endif
 
endif
 
endif
 

	
 
ifdef FAT_BINARY
 
ifndef STATIC
 
$(warning Compiling a universal binary, that is not static. Adding static flag)
0 comments (0 inline, 0 general)