1#! /usr/bin/env python
2import os
3
4CFLAGS = []
5ARCH = []
6
7def dude_we_think_so_different():
8	try: return 'Darwin' == os.popen ('uname -s').read().strip()
9	except: return 0
10OSX = dude_we_think_so_different()
11if OSX:
12	OSX_LDFLAGS = "-bundle -undefined suppress -flat_namespace"
13	ARCH += ("-arch","i386","-arch","x86_64")
14	import ctypes as C
15	libc = C.CDLL("libc.dylib")
16	def osx_query(k):
17		size = C.c_uint(0)
18		libc.sysctlbyname(k,None,C.byref(size),None,0)
19		buf = C.create_string_buffer(size.value)
20		libc.sysctlbyname(k,buf,C.byref(size),None,0)
21		return buf.value
22
23def we_have_sse():
24	if OSX: return osx_query("hw.optional.sse2")
25	try: return 'sse' in open ('/proc/cpuinfo').read().split()
26	except: return 0
27def we_have_ssse3():
28	if OSX: return osx_query("hw.optional.sse3")
29	try: return 'ssse3' in open ('/proc/cpuinfo').read().split()
30	except: return 0
31
32def store():
33	f = open ('defines.make', 'w')
34	f.write ("_CFLAGS=" + ' '.join (CFLAGS) + "\n")
35	f.write ("ARCH=" + ' '.join (ARCH) + "\n")
36	if OSX:
37		f.write ("_LDFLAGS=" + OSX_LDFLAGS + "\n")
38		f.write ("STRIP = echo\n")
39	os.system ("make clean")
40
41if __name__ == '__main__':
42	if we_have_sse(): CFLAGS += ('-msse', '-mfpmath=sse')
43	if we_have_ssse3(): CFLAGS += ('-msse3',)
44	store()
45