-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathSConstruct
More file actions
122 lines (87 loc) · 3.61 KB
/
Copy pathSConstruct
File metadata and controls
122 lines (87 loc) · 3.61 KB
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#Build script of virtualmips.
#Scons is really an excellent tool to build software!
import os,platform,SCons,glob,re,sys
#########################
# Global Environment #
#########################
baseEnv=Environment()
if ARGUMENTS.get('debug',0):
baseEnv.Append(CCFLAGS = "-g")
helpString = """
Usage:
scons [target] [compile options]
Targets:
pavo: Build VirtualMIPS for pavo emulation
mknandflash: Build mknandflash tool
Compile Options:
jit: Set to 0 to compile VirtualMIPS *without* JIT support(pavo only). Default 1.
lcd: Set to 0 to compile VirtualMIPS *without* LCD support(pavo only). Default 1.
mhz: Set to 1 to test emulator's speed. Default 0.
debug: Set to 1 to compile with -g. Default 0.
o: Set optimization level.Default 3.
cc: Set compiler.Default "gcc". You can set cc=gcc-3.4 to use gcc 3.4.
"""
#########################
# Project Environment #
#########################
baseEnv.Append(INCDIR = [os.path.join(os.path.abspath('.'),'../emulator')])
baseEnv.Append(INCDIR = [os.path.join(os.path.abspath('.'),'../emulator','device')])
baseEnv.Append(INCDIR = [os.path.join(os.path.abspath('.'),'../emulator','system')])
baseEnv.Append(INCDIR = [os.path.join(os.path.abspath('.'),'../emulator','mips')])
baseEnv.Append(INCDIR = [os.path.join(os.path.abspath('.'),'../emulator','utils')])
baseEnv.Append(INCDIR = [os.path.join(os.path.abspath('.'),'../emulator','utils','net')])
baseEnv.Append(INCDIR = [os.path.join(os.path.abspath('.'),'../emulator','memory')])
baseEnv.Append(INCDIR = [os.path.join(os.path.abspath('.'),'../emulator','gdb')])
baseEnv.Append(CPPPATH = baseEnv['INCDIR'])
baseEnv.Append(LIBS = ['confuse','pthread','rt','elf'] )
baseEnv.Append(LIBPATH = ['/usr/lib', '/usr/local/lib'] )
baseEnv.Append(CCFLAGS= "-Wall -fomit-frame-pointer" )
mhz = ARGUMENTS.get('mhz', 0)
if int(mhz):
#test emulator's MHZ
baseEnv.Append(CCFLAGS = "-DDEBUG_MHZ")
o = ARGUMENTS.get('o', 3)
if int(o)==3:
baseEnv.Append(CCFLAGS= "-O3" )
baseEnv.Append(LINKFLAGS = "-O3" )
elif int(o)==2:
baseEnv.Append(CCFLAGS= "-O2" )
baseEnv.Append(LINKFLAGS = "-O2" )
elif int(o)==1:
baseEnv.Append(CCFLAGS= "-O1" )
baseEnv.Append(LINKFLAGS = "-O1" )
cc1 = ARGUMENTS.get('cc', "gcc")
if (cc1):
baseEnv.Replace(CC = cc1)
Help(helpString)
def listFiles(dirs,srcexts):
allFiles = []
for dir in (dirs):
path= os.path.join(os.path.abspath(dir),srcexts)
newFiles = glob.glob(path)
for newFile in newFiles:
allFiles.append(newFile)
return allFiles
if 'pavo' in COMMAND_LINE_TARGETS:
pavo = baseEnv.Clone()
pavo.Append(CPPPATH = [os.path.join(os.path.abspath('.'),'../emulator','system','jz','soc')])
pavo.Append(CPPPATH = [os.path.join(os.path.abspath('.'),'../emulator','system','jz','pavo')])
pavo.Append(CPPPATH = [os.path.join(os.path.abspath('.'),'../emulator','utils','sdl')])
pavo.Append(CCFLAGS = "-DSIM_PAVO")
lcd = ARGUMENTS.get('lcd', 1)
if int(lcd):
#check libsdl
conf = Configure(pavo)
if not conf.CheckLib('SDL'):
print 'Did not find libSDL, exiting!'
Exit(1)
if not conf.CheckCHeader('SDL/SDL.h'):
print 'SDL/SDL.h must be installed!'
Exit(1)
pavo = conf.Finish()
pavo.Append(CCFLAGS = "-DSIM_LCD")
pavo.Append(LINKFLAGS = "-lSDL")
pavo.Program('pavo',listFiles(pavo['CPPPATH'],'*.c'))
if 'mknandflash' in COMMAND_LINE_TARGETS:
mknandflash=Environment()
mknandflash.Program('mknandflash','../tool/mknandflash.c',LIBS = ['confuse'] )