sourcepawn/compiler/AMBuilder
author Asher Baker <asherkin@limetech.org>
Sat Apr 14 01:12:24 2012 +0100 (2012-04-14)
changeset 3477 8762e8fcbc50
parent 3457 387b27fb575b
child 3630 b72450a8be42
permissions -rw-r--r--
Backed out changeset: 387b27fb575b (bug 5227)
dvander@2784
     1
# vim: set ts=2 sw=2 tw=99 noet ft=python: 
dvander@2784
     2
import os
dvander@2784
     3
dvander@2784
     4
compiler = SM.DefaultCompiler()
dvander@2784
     5
compiler['CINCLUDES'].append(os.path.join(AMBuild.sourceFolder, 'public'))
dvander@2784
     6
compiler['CINCLUDES'].append(os.path.join(AMBuild.sourceFolder, 'public', 'sourcepawn'))
dvander@2784
     7
compiler['CINCLUDES'].append(os.path.join(AMBuild.sourceFolder, 'sourcepawn', 'compiler'))
dvander@2784
     8
compiler['CINCLUDES'].append(os.path.join(AMBuild.outputFolder, 'includes'))
dvander@2784
     9
ds@3261
    10
if compiler.cc.name == 'gcc' or compiler.cc.name == 'clang':
dvander@2784
    11
	compiler['CFLAGS'].extend(['-Wno-parentheses', '-Wno-format'])
dvander@2983
    12
	if AMBuild.target['platform'] == 'linux':
dvander@2983
    13
		compiler['POSTLINKFLAGS'].extend(['-lgcc', '-lm'])
dvander@2784
    14
elif compiler.cc.name == 'msvc':
dvander@2784
    15
	compiler['POSTLINKFLAGS'].remove('/SUBSYSTEM:WINDOWS')
dvander@2784
    16
	compiler['POSTLINKFLAGS'].append('/SUBSYSTEM:CONSOLE')
dvander@2784
    17
dvander@2784
    18
if AMBuild.target['platform'] == 'linux':
skamonkey@3444
    19
	compiler['CDEFINES'].extend(['LINUX', 'HAVE_STDINT_H', 'AMX_ANSIONLY', 'ENABLE_BINRELOC', '_GNU_SOURCE'])
dvander@2983
    20
elif AMBuild.target['platform'] == 'darwin':
dvander@2983
    21
	compiler['CDEFINES'].extend(['DARWIN', 'HAVE_STDINT_H', 'AMX_ANSIONLY', 'ENABLE_BINRELOC'])
dvander@2784
    22
dvander@2784
    23
extension = AMBuild.AddJob('spcomp')
dvander@2784
    24
binary = Cpp.ExecutableBuilder('spcomp', AMBuild, extension, compiler)
dvander@2784
    25
files = [
dvander@2784
    26
	'libpawnc.c',
dvander@2784
    27
	'lstring.c',
dvander@2784
    28
	'memfile.c',
dvander@2784
    29
	'pawncc.c',
dvander@2784
    30
	'sc1.c',
dvander@2784
    31
	'sc2.c',
dvander@2784
    32
	'sc3.c',
dvander@2784
    33
	'sc4.c',
dvander@2784
    34
	'sc5.c',
dvander@2784
    35
	'sc6.c',
dvander@2784
    36
	'sc7.c',
dvander@2784
    37
	'scexpand.c',
dvander@2784
    38
	'sci18n.c',
dvander@2784
    39
	'sclist.c',
dvander@2784
    40
	'scmemfil.c',
dvander@2784
    41
	'scstate.c',
dvander@2784
    42
	'sctracker.c',
dvander@2784
    43
	'scvars.c',
dvander@2784
    44
	'sp_file.c',
dvander@2784
    45
	'zlib/adler32.c',
dvander@2784
    46
	'zlib/compress.c',
dvander@2784
    47
	'zlib/crc32.c',
dvander@2784
    48
	'zlib/deflate.c',
dvander@2784
    49
	'zlib/gzio.c',
dvander@2784
    50
	'zlib/infback.c',
dvander@2784
    51
	'zlib/inffast.c',
dvander@2784
    52
	'zlib/inflate.c',
dvander@2784
    53
	'zlib/inftrees.c',
dvander@2784
    54
	'zlib/trees.c',
dvander@2784
    55
	'zlib/uncompr.c',
dvander@3075
    56
	'zlib/zutil.c',
dvander@3075
    57
	'sp_symhash.c'
dvander@2784
    58
	]
dvander@2784
    59
if AMBuild.target['platform'] == 'linux':
dvander@2784
    60
	files.append('binreloc.c')
dvander@2784
    61
binary.AddSourceFiles('sourcepawn/compiler', files)
dvander@2784
    62
dvander@2784
    63
if AMBuild.target['platform'] == 'windows':
dvander@2784
    64
	env = {'RCDEFINES': ['BINARY_NAME="' + binary.binaryFile + '"']}
dvander@2784
    65
	binary.AddResourceFile('sourcepawn/compiler/libpawnc.rc', env)
dvander@2784
    66
dvander@2784
    67
binary.SendToJob()
asherkin@3477
    68