Grupos de investigación
Grupos de investigación
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
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>
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
./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>