mirror of https://github.com/OpenTTD/OpenTTD
(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 binariesrelease/0.5
parent
51ece8d99a
commit
4ff6b2a514
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
|
||||||
|
|
|
@ -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