# -*- mode: python; python-indent-offset: 4; indent-tabs-mode: nil -*- # //****************************************************************** # // # // Copyright 2015 Samsung Electronics All Rights Reserved. # // # //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # // # // Licensed under the Apache License, Version 2.0 (the "License"); # // you may not use this file except in compliance with the License. # // You may obtain a copy of the License at # // # // http://www.apache.org/licenses/LICENSE-2.0 # // # // Unless required by applicable law or agreed to in writing, software # // distributed under the License is distributed on an "AS IS" BASIS, # // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # // See the License for the specific language governing permissions and # // limitations under the License. # // # //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # Import('libocsrm_env') provisioning_env = libocsrm_env.Clone() SConscript('#build_common/thread.scons', exports = {'thread_env' : provisioning_env}) target_os = provisioning_env.get('TARGET_OS') ###################################################################### # Build flags ###################################################################### provisioning_env.AppendUnique(CPPPATH = [ '#/resource/csdk/include', '#/resource/c_common/oic_malloc/include', '#/resource/csdk/security/provisioning/include/internal', '#/resource/csdk/security/provisioning/include/cloud', '#/resource/csdk/security/provisioning/include/oxm', '#/resource/csdk/connectivity/inc/pkix', '#/extlibs/asn1cert', '#/extlibs/mbedtls/mbedtls/include' ]) provisioning_env.AppendUnique(CPPDEFINES= ['__WITH_DTLS__']) if 'g++' in provisioning_env.get('CXX'): provisioning_env.AppendUnique(CXXFLAGS = ['-std=c++0x']) provisioning_env.PrependUnique(LIBS = ['octbstack', 'connectivity_abstraction', 'coap']) if target_os not in ['msys_nt', 'windows']: # octbstack.dll is exporting ocpmapi and ocsrm APIs on Windows. provisioning_env.PrependUnique(LIBS = ['ocsrm']) provisioning_env.AppendUnique(LIBS = ['mbedtls', 'mbedx509','mbedcrypto']) if target_os in ['windows', 'msys_nt']: provisioning_env.AppendUnique(LIBS = ['ws2_32', 'advapi32', 'iphlpapi']) if target_os in ['android']: provisioning_env.AppendUnique(CXXFLAGS = ['-frtti', '-fexceptions']) provisioning_env.AppendUnique(LIBS = ['gnustl_static']) if target_os in ['darwin', 'ios']: provisioning_env.AppendUnique(CPPDEFINES = ['_DARWIN_C_SOURCE']) if provisioning_env.get('LOGGING'): provisioning_env.AppendUnique(CPPDEFINES = ['TB_LOG']) if provisioning_env.get('MULTIPLE_OWNER') == '1': provisioning_env.AppendUnique(CPPDEFINES=['MULTIPLE_OWNER']) ###################################################################### # Source files and Targets ###################################################################### provisioning_src = [ 'src/pmutility.c', 'src/credentialgenerator.c', 'src/otmcontextlist.c', 'src/ownershiptransfermanager.c', 'src/secureresourceprovider.c', 'src/ocprovisioningmanager.c', 'src/oxmjustworks.c', 'src/oxmrandompin.c', 'src/oxmmanufacturercert.c', 'src/provisioningdatabasemanager.c' ] if provisioning_env.get('MULTIPLE_OWNER') == '1': provisioning_src = provisioning_src + [ 'src/multipleownershiptransfermanager.c', 'src/oxmpreconfpin.c'] if provisioning_env.get('WITH_TCP') == True: provisioning_env.AppendUnique(CPPDEFINES= ['__WITH_TLS__']) provisioning_src = provisioning_src + [ 'src/cloud/utils.c', 'src/cloud/crl.c', 'src/cloud/aclgroup.c', 'src/cloud/aclinvite.c', 'src/cloud/aclid.c', 'src/cloud/csr.c'] if target_os in ['linux', 'tizen']: provisioning_env.ParseConfig('pkg-config --cflags --libs sqlite3') else: provisioning_env.AppendUnique(CPPPATH = ['#/extlibs/sqlite3']) if target_os not in ['windows']: provisioning_src = provisioning_src + ['#/extlibs/sqlite3/sqlite3.c' ] if target_os in ['android']: provisioning_env.AppendUnique(LINKFLAGS = ['-Wl,-soname,libocpmapi.so']) internal_provisioning_lib = provisioning_env.StaticLibrary('ocpmapi_internal', provisioning_src) provisioningserver = Flatten(internal_provisioning_lib) if target_os not in ['windows', 'msys_nt']: static_provisioning_lib = provisioning_env.StaticLibrary('ocpmapi', provisioning_src) provisioningserver += Flatten(static_provisioning_lib) if target_os not in ['ios']: shared_provisioning_lib = provisioning_env.SharedLibrary('ocpmapi', provisioning_src) provisioningserver += Flatten(shared_provisioning_lib) provisioning_env.InstallTarget(provisioningserver, 'ocpmapi') provisioning_env.UserInstallTargetLib(provisioningserver, 'ocpmapi') if target_os in ['linux', 'msys_nt', 'windows', 'tizen']: SConscript('sample/SConscript', 'provisioning_env')