modify spec. for SECURED=1
[platform/upstream/iotivity.git] / build_common / SConscript
index 39991e2..b6309ca 100644 (file)
@@ -70,7 +70,7 @@ else:
 ######################################################################
 # Common build options (release, target os, target arch)
 ######################################################################
-targets_disallow_multitransport = ['arduino', 'android']
+targets_disallow_multitransport = ['arduino']
 
 help_vars = Variables()
 help_vars.Add(BoolVariable('VERBOSE', 'Show compilation', False))
@@ -80,13 +80,18 @@ 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')))
+help_vars.Add(BoolVariable('WITH_CLOUD', 'Build including Cloud client sample', False))
+
+help_vars.Add(BoolVariable('SIMULATOR', 'Build with simulator module', False))
+
+help_vars.Add(BoolVariable('WITH_RA_IBB', 'Build with Remote Access module(workssys)', False))
+
 
 if target_os in targets_disallow_multitransport:
-       help_vars.Add(ListVariable('TARGET_TRANSPORT', 'Target transport', 'IP', ['BT', 'BLE', 'IP']))
+       help_vars.Add(ListVariable('TARGET_TRANSPORT', 'Target transport', 'IP', ['BT', 'BLE', 'IP', 'NFC']))
 else:
-       help_vars.Add(ListVariable('TARGET_TRANSPORT', 'Target transport', 'ALL', ['ALL', 'BT', 'BLE', 'IP']))
+       help_vars.Add(ListVariable('TARGET_TRANSPORT', 'Target transport', 'ALL', ['ALL', 'BT', 'BLE', 'IP', 'NFC']))
 
 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')))
@@ -100,6 +105,12 @@ help_vars.AddVariables(('DEVICE_NAME', 'Network display name for device (For Ard
 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))
+#ES_TARGET_ENROLLEE is for specifying what is our target enrollee (Arduino or rest of platforms which support Multicast)
+help_vars.Add(EnumVariable('ES_TARGET_ENROLLEE', 'Target Enrollee', 'arduino', allowed_values=('arduino', 'tizen', 'linux')))
+#ES_ROLE is for specifying the role (Enrollee or Mediator) for which scons is being executed
+help_vars.Add(EnumVariable('ES_ROLE', 'Target build mode', 'mediator', allowed_values=('mediator', 'enrollee')))
+#ES_SOFT_MODE is for specifying MODE (Mode 1 : Enrollee with  Soft AP or Mode 2  : Mediator with Soft AP)
+help_vars.Add(EnumVariable('ES_SOFTAP_MODE', 'Target build mode', 'ENROLLEE_SOFTAP', allowed_values=('ENROLLEE_SOFTAP', 'MEDIATOR_SOFTAP')))
 
 AddOption('--prefix',
                   dest='prefix',
@@ -126,7 +137,11 @@ if target_os in ['android', 'arduino']: # Android/Arduino always uses GNU compil
                        tools = ['gnulink', 'gcc', 'g++', 'ar', 'as', 'textfile']
                        )
 else:
-       env = Environment(variables = help_vars, tools = ['default', 'textfile'], TARGET_ARCH = target_arch, TARGET_OS = target_os, PREFIX = GetOption('prefix'), INSTALL_ROOT = ARGUMENTS.get('INSTALL_ROOT', dir))
+       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') #for 64bit build
+                       )
 Help(help_vars.GenerateHelpText(env))
 
 tc_set_msg = '''
@@ -209,34 +224,34 @@ def __install(ienv, targets, name):
 def __installlib(ienv, targets, name):
        user_prefix = env.get('PREFIX')
        if user_prefix:
-               i_n = ienv.Install(env.get('INSTALL_ROOT') + user_prefix + '/lib', targets)
-       else:
-               i_n = ienv.Install(env.get('BUILD_DIR'), targets)
-       ienv.Alias("install", i_n)
+               user_lib = env.get('LIB_INSTALL_DIR')
+               if user_lib:
+                       i_n = ienv.Install(user_lib, targets)
+               else:
+                       i_n = ienv.Install(user_prefix + '/lib', targets)
+               ienv.Alias("install", i_n)
 
 def __installbin(ienv, targets, name):
        user_prefix = env.get('PREFIX')
        if user_prefix:
-               i_n = ienv.Install(env.get('INSTALL_ROOT') + user_prefix + '/bin', targets)
-       else:
-               i_n = ienv.Install(env.get('BUILD_DIR'), targets)
-       ienv.Alias("install", i_n)
+               i_n = ienv.Install(user_prefix + '/bin', targets)
+               ienv.Alias("install", i_n)
 
 def __installheader(ienv, targets, dir, name):
        user_prefix = env.get('PREFIX')
        if user_prefix:
-               i_n = ienv.Install(env.get('INSTALL_ROOT') + user_prefix + '/include/' + dir ,targets)
-       else:
-               i_n = ienv.Install(env.get('BUILD_DIR'), targets)
-       ienv.Alias("install", i_n)
+               i_n = ienv.Install(user_prefix + '/include/' + 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('INSTALL_ROOT') + user_prefix + '/lib/pkgconfig', targets)
-       else:
-               i_n = ienv.Install(env.get('BUILD_DIR'), targets)
-       ienv.Alias("install", i_n)
+               user_lib = env.get('LIB_INSTALL_DIR')
+               if user_lib:
+                       i_n = ienv.Install(user_lib + '/pkgconfig', targets)
+               else:
+                       i_n = ienv.Install(user_prefix + '/lib/pkgconfig', targets)
+               ienv.Alias("install", i_n)
 
 def __append_target(ienv, name, targets = None):
        if targets:
@@ -280,12 +295,32 @@ if env.get('ROUTING') == 'GW':
 elif env.get('ROUTING') == 'EP':
        routing_define = 'ROUTING_EP'
 
+if env.get('SECURED') == '1':
+       ocpmapi_lib = '-locpmapi'
+elif env.get('SECURED') == '0':
+       ocpmapi_lib = ''
+
 user_prefix = env.get('PREFIX')
+user_lib = env.get('LIB_INSTALL_DIR')
+if not user_lib:
+       user_lib = '$${prefix}/lib'
 
 if user_prefix:
-       pc_vars = {'\@PREFIX\@': user_prefix, '\@EXEC_PREFIX\@':user_prefix, '\@VERSION\@':'1.0.0', '\@ROUTING_DEFINE\@': routing_define}
+       pc_vars = {'\@PREFIX\@': user_prefix,
+                               '\@EXEC_PREFIX\@':user_prefix,
+                               '\@VERSION\@': '1.0.1',
+                               '\@LIB_INSTALL_DIR\@': user_lib,
+                               '\@ROUTING_DEFINE\@': routing_define,
+                               '\@OCPMAPI_LIB\@': ocpmapi_lib
+                               }
 else:
-       pc_vars = {'\@PREFIX\@': env.get('BUILD_DIR'), '\@EXEC_PREFIX\@': env.get('BUILD_DIR'), '\@VERSION\@':'1.0.0', '\@ROUTING_DEFINE\@': routing_define}
+       pc_vars = {'\@PREFIX\@': env.get('BUILD_DIR'),
+                               '\@EXEC_PREFIX\@': env.get('BUILD_DIR'),
+                               '\@VERSION\@': '1.0.1',
+                               '\@LIB_INSTALL_DIR\@': user_lib,
+                               '\@ROUTING_DEFINE\@': routing_define,
+                               '\@OCPMAPI_LIB\@': ocpmapi_lib
+                               }
 
 env.Substfile(pc_file, SUBST_DICT = pc_vars)