WAF: enable -rpath by default only on linux2, with configure options to override this default choice
## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
import os
import sys
import Params
all_modules = [
'core',
'common',
'simulator',
'node',
'internet-node',
'devices/p2p',
'applications',
]
def set_options(opt):
opt.sub_options('simulator')
opt.add_option('--enable-rpath',
help=("Link programs with rpath"),
action="store_true", dest='enable_rpath',
default=(sys.platform != 'linux2'))
opt.add_option('--disable-rpath',
help=("Don't link programs with rpath"),
action="store_false", dest='enable_rpath',
default=(sys.platform != 'linux2'))
def configure(conf):
conf.sub_config('core')
conf.sub_config('simulator')
conf.env['ENABLE_RPATH'] = Params.g_options.enable_rpath
def build(bld):
## Add a global RPATH pointing to each module, so that programs can find the libs
## Note: this is slightly evil; we get away because our programs
## and libs are not supposed to be installed system wide.
env = bld.env_of_name('default')
if not env['ENABLE_RPATH']:
for module in all_modules:
node = bld.m_curdirnode.find_dir(module)
if sys.platform == 'win32':
os.environ["PATH"] = ';'.join([os.environ["PATH"], node.abspath(env)])
else:
env.append_value('RPATH', '-Wl,-rpath=%s' % (node.abspath(env),))
bld.add_subdirs(all_modules)