The mpi waf configuration code belongs in src/mpi/wscript, not toplevel wscript
authorGustavo J. A. M. Carneiro <gjc@inescporto.pt>
Thu, 07 Apr 2011 13:34:14 +0100
changeset 7019 23bec5444c05
parent 7006 16e179df944f
child 7020 c6c08d1e52d9
The mpi waf configuration code belongs in src/mpi/wscript, not toplevel wscript
src/mpi/wscript
wscript
--- a/src/mpi/wscript	Thu Apr 07 08:52:19 2011 +0200
+++ b/src/mpi/wscript	Thu Apr 07 13:34:14 2011 +0100
@@ -1,27 +1,51 @@
 ## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
 import sys
+import subprocess
+import Options
 
-import Options
+
+def configure(conf):
+    env = conf.env
+    conf.find_program('mpic++', var='MPI')
+    if Options.options.enable_mpi and conf.env['MPI']:
+        p = subprocess.Popen([conf.env['MPI'], '-showme:compile'], stdout=subprocess.PIPE)
+        flags = p.stdout.read().rstrip().split()
+        p.wait()
+        env.append_value("CXXFLAGS_MPI", flags)
+
+        p = subprocess.Popen([conf.env['MPI'], '-showme:link'], stdout=subprocess.PIPE)
+        flags = p.stdout.read().rstrip().split()
+        p.wait()
+        env.append_value("LINKFLAGS_MPI", flags)
+
+        env.append_value('CXXDEFINES', 'NS3_MPI')
+        conf.report_optional_feature("mpi", "MPI Support", True, '')
+        conf.env['ENABLE_MPI'] = True
+    else:
+        if Options.options.enable_mpi:
+            conf.report_optional_feature("mpi", "MPI Support", False, 'mpic++ not found')
+        else:
+            conf.report_optional_feature("mpi", "MPI Support", False, 'option --enable-mpi not selected')
 
 
 def build(bld):
-  env = bld.env_of_name('default')
-  sim = bld.create_ns3_module('mpi', ['core', 'network'])
-  sim.source = [
-      'model/distributed-simulator-impl.cc',
-      'model/mpi-interface.cc',
-      'model/mpi-net-device.cc',
-      ]
+    env = bld.env_of_name('default')
+    sim = bld.create_ns3_module('mpi', ['core', 'network'])
+    sim.source = [
+        'model/distributed-simulator-impl.cc',
+        'model/mpi-interface.cc',
+        'model/mpi-net-device.cc',
+        ]
 
-  headers = bld.new_task_gen('ns3header')
-  headers.module = 'mpi'
-  headers.source = [
-      'model/distributed-simulator-impl.h',
-      'model/mpi-interface.h',
-      'model/mpi-net-device.h',
-      ]
+    headers = bld.new_task_gen('ns3header')
+    headers.module = 'mpi'
+    headers.source = [
+        'model/distributed-simulator-impl.h',
+        'model/mpi-interface.h',
+        'model/mpi-net-device.h',
+        ]
 
-  if env['ENABLE_MPI']:
-      sim.uselib = 'MPI'
+    if env['ENABLE_MPI']:
+        sim.uselib = 'MPI'
       
-  bld.ns3_python_bindings()
+    bld.ns3_python_bindings()
--- a/wscript	Thu Apr 07 08:52:19 2011 +0200
+++ b/wscript	Thu Apr 07 13:34:14 2011 +0100
@@ -304,27 +304,7 @@
                                                modules_enabled]
     conf.sub_config('bindings/python')
 
-    # for MPI
-    conf.find_program('mpic++', var='MPI')
-    if Options.options.enable_mpi and conf.env['MPI']:
-        p = subprocess.Popen([conf.env['MPI'], '-showme:compile'], stdout=subprocess.PIPE)
-        flags = p.stdout.read().rstrip().split()
-        p.wait()
-        env.append_value("CXXFLAGS_MPI", flags)
-
-        p = subprocess.Popen([conf.env['MPI'], '-showme:link'], stdout=subprocess.PIPE)
-        flags = p.stdout.read().rstrip().split()
-        p.wait()
-        env.append_value("LINKFLAGS_MPI", flags)
-
-        env.append_value('CXXDEFINES', 'NS3_MPI')
-        conf.report_optional_feature("mpi", "MPI Support", True, '')
-        conf.env['ENABLE_MPI'] = True
-    else:
-        if Options.options.enable_mpi:
-            conf.report_optional_feature("mpi", "MPI Support", False, 'mpic++ not found')
-        else:
-            conf.report_optional_feature("mpi", "MPI Support", False, 'option --enable-mpi not selected')
+    conf.sub_config('src/mpi')
 
     # for suid bits
     conf.find_program('sudo', var='SUDO')