SConstruct revision 09407ada940687ab3675641e3313f632a2c37be0
109407ada940687ab3675641e3313f632a2c37be0TDYa#from http://www.scons.org/wiki/SconstructMultiple 209407ada940687ab3675641e3313f632a2c37be0TDYa#usage: scons mode=debug 309407ada940687ab3675641e3313f632a2c37be0TDYa#get the mode flag from the command line 409407ada940687ab3675641e3313f632a2c37be0TDYa#default to 'release' if the user didn't specify 509407ada940687ab3675641e3313f632a2c37be0TDYamymode = ARGUMENTS.get('mode', 'release') #holds current mode 609407ada940687ab3675641e3313f632a2c37be0TDYa 709407ada940687ab3675641e3313f632a2c37be0TDYa#check if the user has been naughty: only 'debug' or 'release' allowed 809407ada940687ab3675641e3313f632a2c37be0TDYaif not (mymode in ['debug', 'release']): 909407ada940687ab3675641e3313f632a2c37be0TDYa print "Error: expected 'debug' or 'release', found: " + mymode 1009407ada940687ab3675641e3313f632a2c37be0TDYa Exit(1) 1109407ada940687ab3675641e3313f632a2c37be0TDYa 1209407ada940687ab3675641e3313f632a2c37be0TDYa#tell the user what we're doing 1309407ada940687ab3675641e3313f632a2c37be0TDYaprint '**** Compiling in ' + mymode + ' mode...' 1409407ada940687ab3675641e3313f632a2c37be0TDYa 1509407ada940687ab3675641e3313f632a2c37be0TDYaif mymode == 'debug': 1609407ada940687ab3675641e3313f632a2c37be0TDYa CFLAGS=['-Wall', '-Werror', '-g'] 1709407ada940687ab3675641e3313f632a2c37be0TDYa CXXFLAGS=['-Wall', '-Werror', '-g'] 1809407ada940687ab3675641e3313f632a2c37be0TDYaelse: #default mode(release) 1909407ada940687ab3675641e3313f632a2c37be0TDYa CFLAGS=['-Wall', '-Werror', '-O2'] 2009407ada940687ab3675641e3313f632a2c37be0TDYa CXXFLAGS=['-Wall', '-Werror', '-fno-exceptions', '-O2'] 2109407ada940687ab3675641e3313f632a2c37be0TDYa 2209407ada940687ab3675641e3313f632a2c37be0TDYaenv = Environment(CFLAGS=CFLAGS, 2309407ada940687ab3675641e3313f632a2c37be0TDYa CXXFLAGS=CXXFLAGS, 24b10ad5844867c7a33bb0d994e3ba55c17e41d18dLogan Chien CPPPATH=['utils']) 25b10ad5844867c7a33bb0d994e3ba55c17e41d18dLogan Chien 26b10ad5844867c7a33bb0d994e3ba55c17e41d18dLogan Chienenv.Program('elfreader', 27baebcafe717a35bc3c4f50f9f19a405112358e4aLogan Chien source=['elf_header.cpp', 286bf0cd2e41647f4e28d3e509984e55ede29d259dLogan Chien 'elf_object.cpp', 29b10ad5844867c7a33bb0d994e3ba55c17e41d18dLogan Chien 'main.cpp', 30b10ad5844867c7a33bb0d994e3ba55c17e41d18dLogan Chien 'utils/helper.cpp', 31b10ad5844867c7a33bb0d994e3ba55c17e41d18dLogan Chien 'utils/term.cpp']) 32