1
2
3
4
5
6 import os, sys
7 import Configure, Options, Utils
8 import ccroot, ar
9 from Configure import conftest
28
31 v = conf.env
32
33
34
35 v['CC_SRC_F'] = ''
36 v['CC_TGT_F'] = '-c -o '
37 v['CPPPATH_ST'] = '-I%s'
38
39
40 if not v['LINK_CC']: v['LINK_CC'] = v['CC']
41 v['CCLNK_SRC_F'] = ''
42 v['CCLNK_TGT_F'] = '-o '
43
44 v['LIB_ST'] = '-l%s'
45 v['LIBPATH_ST'] = '-L%s'
46 v['STATICLIB_ST'] = '-l%s'
47 v['STATICLIBPATH_ST'] = '-L%s'
48 v['CCDEFINES_ST'] = '-D%s'
49
50 v['SHLIB_MARKER'] = '-Wl,-Bdynamic'
51 v['STATICLIB_MARKER'] = '-Wl,-Bstatic'
52
53
54 v['program_PATTERN'] = '%s'
55
56
57 v['shlib_CCFLAGS'] = ['-fPIC', '-DPIC']
58 v['shlib_LINKFLAGS'] = ['-shared']
59 v['shlib_PATTERN'] = 'lib%s.so'
60
61
62 v['staticlib_LINKFLAGS'] = ['-Wl,-Bstatic']
63 v['staticlib_PATTERN'] = 'lib%s.a'
64
65
66 v['MACBUNDLE_LINKFLAGS'] = ['-bundle', '-undefined dynamic_lookup']
67 v['MACBUNDLE_CCFLAGS'] = ['-fPIC']
68 v['MACBUNDLE_PATTERN'] = '%s.bundle'
69
72 v = conf.env
73 if sys.platform != 'win32': return
74 v['program_PATTERN'] = '%s.exe'
75
76 v['shlib_PATTERN'] = 'lib%s.dll'
77 v['shlib_CCFLAGS'] = []
78
79 v['staticlib_LINKFLAGS'] = []
80
83 v = conf.env
84 if sys.platform != 'cygwin': return
85 v['program_PATTERN'] = '%s.exe'
86
87 v['shlib_PATTERN'] = 'lib%s.dll'
88 v['shlib_CCFLAGS'] = []
89
90 v['staticlib_LINKFLAGS'] = []
91
94 v = conf.env
95 if sys.platform != 'darwin': return
96 v['shlib_CCFLAGS'] = ['-fPIC', '-compatibility_version 1', '-current_version 1']
97 v['shlib_LINKFLAGS'] = ['-dynamiclib']
98 v['shlib_PATTERN'] = 'lib%s.dylib'
99
100 v['staticlib_LINKFLAGS'] = []
101
102 v['SHLIB_MARKER'] = ''
103 v['STATICLIB_MARKER'] = ''
104
107 v = conf.env
108 if sys.platform != 'aix5': return
109 v['program_LINKFLAGS'] = ['-Wl,-brtl']
110
111 v['shlib_LINKFLAGS'] = ['-shared','-Wl,-brtl,-bexpfull']
112
113 v['SHLIB_MARKER'] = ''
114
117 v = conf.env
118
119 if conf.check_flags('-O2'):
120 v['CCFLAGS_OPTIMIZED'] = ['-O2']
121 v['CCFLAGS_RELEASE'] = ['-O2']
122 if conf.check_flags('-g -DDEBUG'):
123 v['CCFLAGS_DEBUG'] = ['-g', '-DDEBUG']
124 v['LINKFLAGS_DEBUG'] = ['-g']
125 if conf.check_flags('-g3 -O0 -DDEBUG'):
126 v['CCFLAGS_ULTRADEBUG'] = ['-g3', '-O0', '-DDEBUG']
127 v['LINKFLAGS_ULTRADEBUG'] = ['-g']
128 if conf.check_flags('-Wall'):
129 for x in 'OPTIMIZED RELEASE DEBUG ULTRADEBUG'.split(): v.append_unique('CCFLAGS_'+x, '-Wall')
130 try:
131 debug_level = Params.g_options.debug_level.upper()
132 except AttributeError:
133 debug_level = ccroot.DEBUG_LEVELS.CUSTOM
134 v.append_value('CCFLAGS', v['CCFLAGS_'+debug_level])
135 v.append_value('LINKFLAGS', v['LINKFLAGS_'+debug_level])
136
137
138 detect = '''
139 find_gcc
140 find_cpp
141 find_ar
142 gcc_common_flags
143 gcc_modifier_win32
144 gcc_modifier_cygwin
145 gcc_modifier_darwin
146 gcc_modifier_aix5
147 cc_load_tools
148 cc_add_flags
149 '''
150
151
152
153
154
155 """
156 If you want to remove the tests you do not want, use something like this:
157
158 conf.check_tool('gcc', funs='''
159 find_gcc
160 find_cpp
161 find_ar
162 gcc_common_flags
163 gcc_modifier_win32
164 gcc_modifier_cygwin
165 gcc_modifier_darwin
166 gcc_modifier_aix5
167 cc_add_flags
168 cc_load_tools
169 '''
170 )"""
171