X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=build_common%2FSConscript;h=3a3ac443ede6696e259c4fa1ab57b374701d9dbd;hb=refs%2Ftags%2Faccepted%2Ftizen%2Fwearable%2F20151113.061010;hp=575288c3b187196f822996a9e43f20e0efbc37c6;hpb=8c01dff2c5bc5496f7dc1632c498943ec6ecb015;p=platform%2Fupstream%2Fiotivity.git diff --git a/build_common/SConscript b/build_common/SConscript index 575288c..3a3ac44 100644 --- a/build_common/SConscript +++ b/build_common/SConscript @@ -79,6 +79,9 @@ help_vars.Add(EnumVariable('TARGET_OS', 'Target platform', host, host_target_map help_vars.Add(BoolVariable('WITH_RA', 'Build with Remote Access module', False)) +help_vars.Add(BoolVariable('WITH_TCP', 'Build with TCP adapter', False)) +help_vars.Add(BoolVariable('SIMULATOR', 'Build with simulator module', False)) +help_vars.Add(EnumVariable('WITH_RD', 'Build including Resource Directory', '0', allowed_values=('0', '1'))) if target_os in targets_disallow_multitransport: help_vars.Add(ListVariable('TARGET_TRANSPORT', 'Target transport', 'IP', ['BT', 'BLE', 'IP'])) @@ -87,11 +90,16 @@ else: help_vars.Add(EnumVariable('TARGET_ARCH', 'Target architecture', default_arch, os_arch_map[target_os])) help_vars.Add(EnumVariable('SECURED', 'Build with DTLS', '0', allowed_values=('0', '1'))) +help_vars.Add(EnumVariable('DTLS_WITH_X509', 'DTLS with X.509 support', '0', allowed_values=('0', '1'))) help_vars.Add(EnumVariable('TEST', 'Run unit tests', '0', allowed_values=('0', '1'))) help_vars.Add(BoolVariable('LOGGING', 'Enable stack logging', logging_default)) help_vars.Add(BoolVariable('UPLOAD', 'Upload binary ? (For Arduino)', require_upload)) +help_vars.Add(EnumVariable('ROUTING', 'Enable routing', 'EP', allowed_values=('GW', 'EP'))) help_vars.Add(EnumVariable('BUILD_SAMPLE', 'Build with sample', 'ON', allowed_values=('ON', 'OFF'))) help_vars.AddVariables(('DEVICE_NAME', 'Network display name for device (For Arduino)', device_name, None, None),) +help_vars.Add(PathVariable('ANDROID_NDK', 'Android NDK path', None, PathVariable.PathAccept)) +help_vars.Add(PathVariable('ANDROID_HOME', 'Android SDK path', None, PathVariable.PathAccept)) +help_vars.Add(PathVariable('ANDROID_GRADLE', 'Gradle binary file', None, PathVariable.PathIsFile)) AddOption('--prefix', dest='prefix', @@ -115,11 +123,14 @@ if target_os in targets_support_cc: if target_os in ['android', 'arduino']: # Android/Arduino always uses GNU compiler regardless of the host env = Environment(variables = help_vars, - tools = ['gnulink', 'gcc', 'g++', 'ar', 'as'] + tools = ['gnulink', 'gcc', 'g++', 'ar', 'as', 'textfile'] ) else: - env = Environment(variables = help_vars, TARGET_ARCH = target_arch, TARGET_OS = target_os, PREFIX = GetOption('prefix')) - + env = Environment(variables = help_vars, tools = ['default', 'textfile'], + TARGET_ARCH = target_arch, TARGET_OS = target_os, + PREFIX = GetOption('prefix'), + LIB_INSTALL_DIR = ARGUMENTS.get('LIB_INSTALL_DIR', '/usr/lib') + ) Help(help_vars.GenerateHelpText(env)) tc_set_msg = ''' @@ -202,7 +213,7 @@ def __install(ienv, targets, name): def __installlib(ienv, targets, name): user_prefix = env.get('PREFIX') if user_prefix: - i_n = ienv.Install(user_prefix + '/lib', targets) + i_n = ienv.Install(env.get('LIB_INSTALL_DIR'), targets) else: i_n = ienv.Install(env.get('BUILD_DIR'), targets) ienv.Alias("install", i_n) @@ -215,6 +226,22 @@ def __installbin(ienv, targets, name): i_n = ienv.Install(env.get('BUILD_DIR'), targets) ienv.Alias("install", i_n) +def __installheader(ienv, targets, dir, name): + user_prefix = env.get('PREFIX') + if user_prefix: + i_n = ienv.Install(user_prefix + '/include/' + dir, targets) + else: + i_n = ienv.Install(env.get('BUILD_DIR'), targets) + ienv.Alias("install", i_n) + +def __installpcfile(ienv, targets, name): + user_prefix = env.get('PREFIX') + if user_prefix: + i_n = ienv.Install(env.get('LIB_INSTALL_DIR') + '/pkgconfig', targets) + else: + i_n = ienv.Install(env.get('BUILD_DIR'), targets) + ienv.Alias("install", i_n) + def __append_target(ienv, name, targets = None): if targets: env.Alias(name, targets) @@ -240,12 +267,38 @@ env.AddMethod(__append_target, 'AppendTarget') env.AddMethod(__install, 'InstallTarget') env.AddMethod(__installlib, 'UserInstallTargetLib') env.AddMethod(__installbin, 'UserInstallTargetBin') +env.AddMethod(__installheader, 'UserInstallTargetHeader') +env.AddMethod(__installpcfile, 'UserInstallTargetPCFile') env.SetDir(env.GetLaunchDir()) env['ROOT_DIR']=env.GetLaunchDir()+'/..' Export('env') ###################################################################### +# Scons to generate the iotivity.pc file from iotivity.pc.in file +###################################################################### +pc_file = env.get('SRC_DIR') + '/iotivity.pc.in' + +if env.get('ROUTING') == 'GW': + routing_define = 'ROUTING_GATEWAY' +elif env.get('ROUTING') == 'EP': + routing_define = 'ROUTING_EP' + +user_prefix = env.get('PREFIX') + +if user_prefix: + pc_vars = {'\@PREFIX\@': user_prefix, + '\@LIB_INSTALL_DIR\@': env.get('LIB_INSTALL_DIR'), + '\@VERSION\@': '1.0.0', '\@ROUTING_DEFINE\@': routing_define + } +else: + pc_vars = {'\@PREFIX\@': env.get('BUILD_DIR'), '\@VERSION\@': '1.0.0', + '\@ROUTING_DEFINE\@': routing_define + } + +env.Substfile(pc_file, SUBST_DICT = pc_vars) + +###################################################################### # Link scons to Yocto cross-toolchain ONLY when target_os is yocto ###################################################################### if target_os == "yocto": @@ -302,7 +355,7 @@ if target_os == "yocto": env.AppendUnique(CPPDEFINES = ['TB_LOG']) env.AppendUnique(CPPDEFINES = ['WITH_POSIX', '__linux__', '_GNU_SOURCE']) env.AppendUnique(CFLAGS = ['-std=gnu99']) - env.AppendUnique(CCFLAGS = ['-Wall', '-fPIC']) + env.AppendUnique(CCFLAGS = ['-Wall', '-Wextra', '-fPIC']) env.AppendUnique(LINKFLAGS = ['-ldl', '-lpthread']) env.AppendUnique(LIBS = ['uuid']) Export('env')