mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-17 21:25:40 +00:00
(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
This commit is contained in:
parent
fb301cced7
commit
8e7c2555fe
3
Makefile
3
Makefile
@ -345,6 +345,9 @@ endif
|
|||||||
ifdef OSX
|
ifdef OSX
|
||||||
# these compilerflags makes the app run as fast as possible without making the app unstable. It works on G3 or newer
|
# 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
|
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
|
else
|
||||||
ifdef MORPHOS
|
ifdef MORPHOS
|
||||||
BASECFLAGS += -I/gg/os-include -O2 -noixemul -fstrict-aliasing -fexpensive-optimizations
|
BASECFLAGS += -I/gg/os-include -O2 -noixemul -fstrict-aliasing -fexpensive-optimizations
|
||||||
|
29
os/macosx/G5_detector.c
Normal file
29
os/macosx/G5_detector.c
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
/* $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");
|
||||||
|
}
|
@ -16,6 +16,16 @@ $(warning Compiling a release build, that is not a universal binary)
|
|||||||
endif
|
endif
|
||||||
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
|
ifdef FAT_BINARY
|
||||||
ifndef STATIC
|
ifndef STATIC
|
||||||
$(warning Compiling a universal binary, that is not static. Adding static flag)
|
$(warning Compiling a universal binary, that is not static. Adding static flag)
|
||||||
|
Loading…
Reference in New Issue
Block a user