wscript
changeset 4438 8d9f6e489f94
parent 4436 56fc927210c6
child 4439 e2fc73a10bad
equal deleted inserted replaced
4437:3e4e052d5058 4438:8d9f6e489f94
   293     env['ENABLE_STATIC_NS3'] = False
   293     env['ENABLE_STATIC_NS3'] = False
   294     if Options.options.enable_static:
   294     if Options.options.enable_static:
   295         if env['PLATFORM'].startswith('linux') and \
   295         if env['PLATFORM'].startswith('linux') and \
   296                 env['CXX_NAME'] == 'gcc':
   296                 env['CXX_NAME'] == 'gcc':
   297             if os.uname()[4] == 'i386':
   297             if os.uname()[4] == 'i386':
   298                 conf.report_optional_feature("static", "Static build", True,
   298                 conf.report_optional_feature("static", "Static build", True, '')
   299                                              "Enabled by user request")
       
   300                 env['ENABLE_STATIC_NS3'] = True
   299                 env['ENABLE_STATIC_NS3'] = True
   301             elif os.uname()[4] == 'x86_64':
   300             elif os.uname()[4] == 'x86_64':
   302                 if env['ENABLE_PYTHON_BINDINGS'] and \
   301                 if env['ENABLE_PYTHON_BINDINGS'] and \
   303                         not conf.check_compilation_flag('-mcmodel=large'):
   302                         not conf.check_compilation_flag('-mcmodel=large'):
   304                     conf.report_optional_feature("static", "Static build", False,
   303                     conf.report_optional_feature("static", "Static build", False,
   305                                                  "Can't enable static builds because " + \
   304                                                  "Can't enable static builds because " + \
   306                                                      "of python and no -mcmodel=large compiler " \
   305                                                      "of python and no -mcmodel=large compiler " \
   307                                                      "option. Try --disable-python or upgrade your " \
   306                                                      "option. Try --disable-python or upgrade your " \
   308                                                      "compiler.")
   307                                                      "compiler.")
   309                 else:
   308                 else:
   310                     conf.report_optional_feature("static", "Static build", True,
   309                     conf.report_optional_feature("static", "Static build", True, '')
   311                                                  "Enabled by user request. Try --disable-python " \
   310                     env['ENABLE_STATIC_NS3'] = True                    
   312                                                      "to get higher performance.")
   311         elif env['PLATFORM'].startswith('darwin') and \
   313                     env['ENABLE_STATIC_NS3'] = True
   312                 env['CXX_NAME'] == 'gcc':
   314                     
   313                 conf.report_optional_feature("static", "Static build", True, '')
       
   314                 env['ENABLE_STATIC_NS3'] = True
   315         else:
   315         else:
   316             conf.report_optional_feature("static", "Static build", False,
   316             conf.report_optional_feature("static", "Static build", False,
   317                                          "Unsupported platform")
   317                                          "Unsupported platform")
   318     else:
   318     else:
   319         conf.report_optional_feature("static", "Static build", False,
   319         conf.report_optional_feature("static", "Static build", False,
   385     program.name = name
   385     program.name = name
   386     program.target = program.name
   386     program.target = program.name
   387     program.uselib_local = 'ns3'
   387     program.uselib_local = 'ns3'
   388     program.ns3_module_dependencies = ['ns3-'+dep for dep in dependencies]
   388     program.ns3_module_dependencies = ['ns3-'+dep for dep in dependencies]
   389     if program.env['ENABLE_STATIC_NS3']:
   389     if program.env['ENABLE_STATIC_NS3']:
   390         program.env.append_value('LINKFLAGS', '-Wl,--whole-archive,-Bstatic')
   390         if sys.platform == 'darwin':
   391         program.env.append_value('LINKFLAGS', '-lns3')
   391             program.env.append_value('LINKFLAGS', '-Wl,-all_load')
   392         program.env.append_value('LINKFLAGS', '-Wl,-Bdynamic,--no-whole-archive')
   392             program.env.append_value('LINKFLAGS', '-lns3')
       
   393         else:
       
   394             program.env.append_value('LINKFLAGS', '-Wl,--whole-archive,-Bstatic')
       
   395             program.env.append_value('LINKFLAGS', '-lns3')
       
   396             program.env.append_value('LINKFLAGS', '-Wl,-Bdynamic,--no-whole-archive')
   393     return program
   397     return program
   394 
   398 
   395 def add_scratch_programs(bld):
   399 def add_scratch_programs(bld):
   396     all_modules = [mod[len("ns3-"):] for mod in bld.env['NS3_MODULES']]
   400     all_modules = [mod[len("ns3-"):] for mod in bld.env['NS3_MODULES']]
   397     for filename in os.listdir("scratch"):
   401     for filename in os.listdir("scratch"):