Herramientas de usuario

Herramientas del sitio


Barra lateral

compilacion_de_las_fuentes

Compilación de las fuentes

Script build.py

El script build.py es una de las herramientas allinone. Permite compilar una serie de elementos externos al propio simulador ns-3 que son necesarios para su funcionamiento. Sólo es neceario invocarlo sin parámetros:

cd ns-3-allinone
./build.py

Herramienta Waf

El simulador ns-3 emplea la herramienta waf para la configuración y automatización de la compilación de sus fuentes.

<box>Waf es una herramienta alternativa a make</box>

Configuración del sistema

Mediante waf se puede realizar un diagnóstico de las librerías que necesita ns-3, indicando si están instaladas y sus funcionalidades activadas. La selección de paquetes indicada en los Requisitos de instalación debería ser suficiente para que esta comprobación se pase con éxito.

cd ns-3-allinone/ns-3-dev
./waf configure

La salida del anterior comando será similar a esta:

Checking for program g++                 : ok /usr/bin/g++                                                                     
Checking for program cpp                 : ok /usr/bin/cpp                                                                     
Checking for program ar                  : ok /usr/bin/ar                                                                      
Checking for program ranlib              : ok /usr/bin/ranlib                                                                  
Checking for g++                         : ok                                                                                  
Checking for program pkg-config          : ok /usr/bin/pkg-config                                                              
Checking for regression reference traces  : ok ../ns-3-dev-ref-traces (guessed)                                                
Checking for -Wno-error=deprecated-declarations support : yes                                                                  
Checking for -Wl,--soname=foo support                   : yes                                                                  
Checking for header stdlib.h                            : ok                                                                   
Checking for header signal.h                            : ok
Checking for header pthread.h                           : ok
Checking for high precision time implementation         : 128-bit integer
Checking for header stdint.h                            : ok
Checking for header inttypes.h                          : ok
Checking for header sys/inttypes.h                      : not found
Checking for library rt                                 : ok
Checking for header netpacket/packet.h                  : ok
Checking for header linux/if_tun.h                      : ok
Checking for pkg-config flags for GTK_CONFIG_STORE      : ok
Checking for pkg-config flags for LIBXML2               : ok
Checking for library sqlite3                            : ok
Checking for NSC location                               : ok ../nsc (guessed)
Checking for library dl                                 : ok
Checking for NSC supported architecture x86_64          : ok
Checking for program python                             : ok /usr/bin/python
Checking for Python version >= 2.3                      : ok 2.5.4
Checking for library python2.5                          : ok
Checking for program python2.5-config                   : ok /usr/bin/python2.5-config
Checking for header Python.h                            : ok
Checking for -fvisibility=hidden support                : yes
Checking for pybindgen location                         : ok ../pybindgen (guessed)
Checking for Python module pybindgen                    : ok
Checking for pybindgen version                          : ok 0.12.0.700
Checking for Python module pygccxml                     : not found
Checking for program sudo                               : ok /usr/bin/sudo
Checking for program hg                                 : ok /usr/bin/hg
Checking for program valgrind                           : ok /usr/bin/valgrind
Checking for pkg-config flags for GSL                   : ok
---- Summary of optional NS-3 features:
Threading Primitives          : enabled
Real Time Simulator           : enabled
Emulated Net Device           : enabled
Tap Bridge                    : enabled
GtkConfigStore                : enabled
XmlIo                         : enabled
SQlite stats data output      : enabled
Network Simulation Cradle     : enabled
Python Bindings               : enabled
Python API Scanning Support   : not enabled (Missing 'pygccxml' Python module)
Use sudo to set suid bit      : not enabled (option --enable-sudo not selected)
Static build                  : not enabled (option --enable-static not selected)
GNU Scientific Library (GSL)  : enabled

En la anterior salida se pueden observar las siguientes líneas:

Checking for header sys/inttypes.h                      : not found

La ausencia de sys/inttypes.h no altera el buen funcionamiento de ns-3. <note>Aun por aclarar</note>

Checking for Python module pygccxml                     : not found

En esta instalación no se ha procedido a instalar manualmente pygccxml, lo cual sólo tendrá consecuencias si se desea usar el lenguaje Python para programar simulaciones.

Use sudo to set suid bit      : not enabled (option --enable-sudo not selected)
Static build                  : not enabled (option --enable-static not selected)

Aunque disponibles, no se han activado las características de compilación estática ni uso de sudo. Para activarlas sólo es necesario ejecutar:

./waf configure --enable-sudo --enable-static

Compilación

./waf

<note important> Si se ha activado el uso de sudo mediante el parametro –enable-sudo, al final del proceso de compilación se solicitará al usuario su clave para poder activar el bit de suid de algunos de los ejecutables benerados.</note>

compilacion_de_las_fuentes.txt · Última modificación: 2009/10/19 12:15 (editor externo)