3 # harald at klimachs.de
6 NEC SX Compiler for SX vector systems
10 from waflib
import Utils
11 from waflib
.Tools
import ccroot
,ar
12 from waflib
.Configure
import conf
14 from waflib
.Tools
import xlc
# method xlc_common_flags
15 from waflib
.Tools
.compiler_c
import c_compiler
16 c_compiler
['linux'].append('c_nec')
20 cc
= conf
.find_program(['sxcc'], var
='CC')
21 conf
.get_sxc_version(cc
)
23 conf
.env
.CC_NAME
= 'sxcc'
26 def get_sxc_version(conf
, fc
):
27 version_re
= re
.compile(r
"C\+\+/SX\s*Version\s*(?P<major>\d*)\.(?P<minor>\d*)", re
.I
).search
29 p
= Utils
.subprocess
.Popen(cmd
, stdin
=False, stdout
=Utils
.subprocess
.PIPE
, stderr
=Utils
.subprocess
.PIPE
, env
=None)
30 out
, err
= p
.communicate()
33 match
= version_re(out
)
35 match
= version_re(err
)
37 conf
.fatal('Could not determine the NEC C compiler version.')
39 conf
.env
['C_VERSION'] = (k
['major'], k
['minor'])
42 def sxc_common_flags(conf
):
45 v
['CC_TGT_F']=['-c','-o']
49 v
['CCLNK_TGT_F']=['-o']
50 v
['CPPPATH_ST']='-I%s'
51 v
['DEFINES_ST']='-D%s'
53 v
['LIBPATH_ST']='-L%s'
55 v
['STLIBPATH_ST']='-L%s'
60 v
['LINKFLAGS_cprogram']=['']
61 v
['cprogram_PATTERN']='%s'
62 v
['CFLAGS_cshlib']=['-fPIC']
63 v
['LINKFLAGS_cshlib']=['']
64 v
['cshlib_PATTERN']='lib%s.so'
65 v
['LINKFLAGS_cstlib']=[]
66 v
['cstlib_PATTERN']='lib%s.a'
70 conf
.find_program('sxar',VAR
='AR')
71 conf
.sxc_common_flags()