|
|
@@ -1,138 +0,0 @@ |
|
|
|
#!/usr/bin/env python |
|
|
|
import os |
|
|
|
import subprocess |
|
|
|
import waflib.Logs as Logs, waflib.Options as Options |
|
|
|
import string |
|
|
|
|
|
|
|
VERSION = 'xxx' |
|
|
|
APPNAME = 'non-things' |
|
|
|
|
|
|
|
top = '.' |
|
|
|
out = 'build' |
|
|
|
|
|
|
|
common = [ 'nonlib'] |
|
|
|
projects = [ 'session-manager' ] |
|
|
|
|
|
|
|
def options(opt): |
|
|
|
# opt.add_option('--use-system-ntk', action='store_true', default=False, |
|
|
|
# dest='use_system_ntk', |
|
|
|
# help="Link to system-installed shared NTK instead of bundled version") |
|
|
|
opt.add_option('--enable-debug', action='store_true', default=False, dest='debug', |
|
|
|
help='Build for debugging') |
|
|
|
opt.add_option('--disable-sse', action='store_false', default=True, dest='sse', |
|
|
|
help='Disable SSE optimization') |
|
|
|
opt.add_option('--project', action='store', default=False, dest='project', |
|
|
|
help='Limit build to a single project (' + ', '.join( projects ) + ')') |
|
|
|
|
|
|
|
for i in projects: |
|
|
|
opt.recurse(i) |
|
|
|
|
|
|
|
def configure(conf): |
|
|
|
conf.load('compiler_c') |
|
|
|
conf.load('compiler_cxx') |
|
|
|
conf.load('gnu_dirs') |
|
|
|
conf.load('gccdeps') |
|
|
|
conf.line_just = 52 |
|
|
|
|
|
|
|
conf.env['LIB_PTHREAD'] = ['pthread'] |
|
|
|
conf.env['LIB_DL'] = ['dl'] |
|
|
|
conf.env['LIB_M'] = ['m'] |
|
|
|
|
|
|
|
if Options.options.sse: |
|
|
|
if os.system("grep -q '^flags.*\<sse2\>' /proc/cpuinfo"): |
|
|
|
Options.options.sse = 0 |
|
|
|
print( "Processor lacks sse, disabling..." ) |
|
|
|
|
|
|
|
conf.check_cfg(package='jack', uselib_store='JACK', args="--cflags --libs", |
|
|
|
atleast_version='0.103.0', mandatory=True) |
|
|
|
|
|
|
|
conf.check_cfg(package='liblo', uselib_store='LIBLO',args="--cflags --libs", |
|
|
|
atleast_version='0.26', mandatory=True) |
|
|
|
|
|
|
|
conf.check_cc(msg='Checking for compiler pointer alignment hints', |
|
|
|
uselib_store='HAS_BUILTIN_ASSUME_ALIGNED', |
|
|
|
fragment='int main ( char**argv, int argc ) { const char *s = (const char*)__builtin_assume_aligned( 0, 16 ); return 0; }', |
|
|
|
execute=False, mandatory=False) |
|
|
|
### |
|
|
|
|
|
|
|
for i in common: |
|
|
|
conf.recurse(i) |
|
|
|
|
|
|
|
optimization_flags = [ |
|
|
|
"-O3", |
|
|
|
"-fomit-frame-pointer", |
|
|
|
"-ffast-math", |
|
|
|
"-pipe" |
|
|
|
] |
|
|
|
|
|
|
|
if Options.options.sse: |
|
|
|
print('Using SSE optimization') |
|
|
|
optimization_flags.extend( [ |
|
|
|
"-msse2", |
|
|
|
"-mfpmath=sse" ] ); |
|
|
|
|
|
|
|
conf.define( 'USE_SSE', 1 ) |
|
|
|
|
|
|
|
debug_flags = [ '-O0', '-g3' ] |
|
|
|
|
|
|
|
if Options.options.debug: |
|
|
|
print('Building for debugging') |
|
|
|
conf.env.append_value('CFLAGS', debug_flags ) |
|
|
|
conf.env.append_value('CXXFLAGS', debug_flags ) |
|
|
|
|
|
|
|
else: |
|
|
|
print('Building for performance') |
|
|
|
conf.env.append_value('CFLAGS', optimization_flags ) |
|
|
|
conf.env.append_value('CXXFLAGS', optimization_flags ) |
|
|
|
#conf.define( 'NDEBUG', 1 ) |
|
|
|
|
|
|
|
conf.define( "_GNU_SOURCE", 1) |
|
|
|
|
|
|
|
conf.env.append_value('CFLAGS',['-Wall']) |
|
|
|
# conf.env.append_value('CXXFLAGS',['-Wall','-fno-exceptions', '-fno-rtti']) |
|
|
|
conf.env.append_value('CXXFLAGS',['-Wall','-fno-rtti']) |
|
|
|
|
|
|
|
global_flags = [ '-pthread', |
|
|
|
'-D_LARGEFILE64_SOURCE', |
|
|
|
'-D_FILE_OFFSET_BITS=64', |
|
|
|
'-D_GNU_SOURCE' ] |
|
|
|
|
|
|
|
|
|
|
|
conf.env.append_value('CFLAGS', global_flags ) |
|
|
|
conf.env.append_value('CXXFLAGS', global_flags ) |
|
|
|
|
|
|
|
|
|
|
|
conf.env.PROJECT = conf.options.project |
|
|
|
|
|
|
|
if conf.env.PROJECT: |
|
|
|
pl = [ conf.env.PROJECT ] |
|
|
|
else: |
|
|
|
pl = projects; |
|
|
|
|
|
|
|
for i in pl: |
|
|
|
Logs.pprint('YELLOW', 'Configuring %s' % i) |
|
|
|
conf.recurse(i); |
|
|
|
|
|
|
|
def run(ctx): |
|
|
|
if not Options.options.cmd: |
|
|
|
Logs.error("missing --cmd option for run command") |
|
|
|
return |
|
|
|
|
|
|
|
cmd = Options.options.cmd |
|
|
|
Logs.pprint('GREEN', 'Running %s' % cmd) |
|
|
|
|
|
|
|
subprocess.call(cmd, shell=True, env=source_tree_env()) |
|
|
|
|
|
|
|
def build(bld): |
|
|
|
|
|
|
|
for i in common: |
|
|
|
bld.recurse(i) |
|
|
|
|
|
|
|
if bld.env.PROJECT: |
|
|
|
pl = [ bld.env.PROJECT ] |
|
|
|
else: |
|
|
|
pl = projects; |
|
|
|
|
|
|
|
for i in pl: |
|
|
|
bld.recurse(i); |
|
|
|
|