summaryrefslogtreecommitdiff
path: root/os
diff options
context:
space:
mode:
authorbjarni <bjarni@openttd.org>2006-02-25 18:11:11 +0000
committerbjarni <bjarni@openttd.org>2006-02-25 18:11:11 +0000
commit4ff6b2a5148fce8f3abb110a4206b12825f243ef (patch)
treeeafdcc56afa5ecd2d9c1be6258e506b21d2c2840 /os
parent51ece8d99ae9745d652f60e91b1df920e375675a (diff)
downloadopenttd-4ff6b2a5148fce8f3abb110a4206b12825f243ef.tar.xz
(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
Diffstat (limited to 'os')
-rw-r--r--os/macosx/G5_detector.c29
-rw-r--r--os/macosx/Makefile.setup10
2 files changed, 39 insertions, 0 deletions
diff --git a/os/macosx/G5_detector.c b/os/macosx/G5_detector.c
new file mode 100644
index 000000000..a67cbb51f
--- /dev/null
+++ b/os/macosx/G5_detector.c
@@ -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");
+}
diff --git a/os/macosx/Makefile.setup b/os/macosx/Makefile.setup
index c2531815f..3e9e2cf27 100644
--- a/os/macosx/Makefile.setup
+++ b/os/macosx/Makefile.setup
@@ -16,6 +16,16 @@ $(warning Compiling a release build, that is not a universal 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)