-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathbuild.scons
70 lines (50 loc) · 2.51 KB
/
build.scons
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#! -*- python -*-
#
# Copyright (c) 2011 Yoshiki Ohshima. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#Change this flag to compile the VM with embedded image file. To make Etoys.c, use mkimage utility.
embedded_image_file = False
import make_nacl_env
import os
nacl_env = make_nacl_env.NaClEnvironment(
nacl_platform=os.getenv('NACL_TARGET_PLATFORM'),
install_subdir='naclsqueak', lib_prefix='..')
nacl_env.Append(CPPPATH=['nacl/vm', 'Cross/vm', 'nacl/src/vm', '.']+(map(str, Glob('Cross/plugins/*'))))
nacl_env.Append(CPPPATH=['nacl/plugins/PepperPlugin'])
nacl_env.Append(CFLAGS=['-DSQUEAK_BUILTIN_PLUGIN'])
sources = ['naclsqueak.c', './nacl/vm/sqNaClWindow.c',
'./nacl/vm/sqUnixMain.c', './nacl/vm/sqNaClSound.c',
'./nacl/vm/sqNaClFile.c', './nacl/vm/sqUnixMemory.c',
'./nacl/vm/sqUnixExternalPrims.c', './nacl/vm/osExports.c',
'./nacl/vm/ringBufferMessaging.c',
'./Cross/vm/sqVirtualMachine.c', './Cross/vm/sqNamedPrims.c',
'gnu-interp.c']
if (embedded_image_file):
nacl_env.Append(CFLAGS=['-DEMBEDDED_IMAGE_FILE'])
sources += ['Etoys.c']
for dir in Glob('nacl/plugins/*'):
sources += map(str, Glob(str(dir)+'/*.c'))
for dir in Glob('nacl/src/vm/intplugins/*'):
sources += map(str, Glob(str(dir)+'/*.c'))
for dir in ['Cross/plugins/JPEGReadWriter2Plugin', 'Cross/plugins/SecurityPlugin', 'Cross/plugins/SoundCodecPrims', 'Cross/plugins/SoundPlugin']:
sources += map(str, Glob(str(dir)+'/*.c'))
nacl_env.AllNaClModules(sources, 'naclsqueak')
gnuify = Builder(action = 'awk -f gnuify < $SOURCE > $TARGET')
nacl_env.Append(BUILDERS = {'Gnuify' : gnuify})
nacl_env.Gnuify('gnu-interp.c', 'nacl/src/vm/interp.c')
opt_nexes, dbg_nexes = nacl_env.AllNaClModules(sources, 'naclsqueak')
app_files = [
'naclsqueak_c.html',
'naclsqueak.nmf',
]
install_nexes = nacl_env.NaClStrippedInstall(dir=nacl_env['NACL_INSTALL_ROOT'],
source=opt_nexes)
install_app = nacl_env.Install(dir=nacl_env['NACL_INSTALL_ROOT'],
source=app_files)
nacl_env.Alias('install', source=install_app + install_nexes)
#def plugin(file):
# sp = file.split('/')
# return '/'.join(sp + [sp[-1]])
#nacl_env.Append(LIBS=map((lambda x: Library(plugin(str(x)), Glob(str(x) + '/*'))), Glob('vm/plugins/*')))
#nacl_env.Append(LIBS=map((lambda x: Library(plugin(str(x)), Glob(str(x) + '/*'))), Glob('src/vm/intplugins/*')))