diff --git a/SConstruct b/SConstruct index a27b5735a..0b520910a 100644 --- a/SConstruct +++ b/SConstruct @@ -48,6 +48,7 @@ simu = build.Ns3Module('simulator', 'src/simulator') ns3.add(simu) simu.add_dep('core') simu.add_sources([ + 'cairo-wideint.c', 'high-precision.cc', 'time.cc', 'event-id.cc', @@ -60,6 +61,7 @@ simu.add_sources([ 'simulator.cc', ]) simu.add_headers([ + 'cairo-wideint-private.h', 'scheduler-heap.h', 'scheduler-map.h', 'scheduler-list.h' @@ -73,6 +75,17 @@ simu.add_inst_headers([ 'scheduler.h', 'scheduler-factory.h', ]) +def config_simulator (env, config): + retval = [] + if config.CheckCHeader ('stdint.h') == 1: + retval.append ('#define HAVE_STDINT_H 1') + elif config.CheckCHeader ('inttypes.h') == 1: + retval.append ('#define HAVE_INTTYPES_H 1') + elif config.CheckCHeader ('sys/inttypes.h') == 1: + retval.append ('#define HAVE_SYS_INT_TYPES_H 1') + return retval +simu.add_config (config_simulator) + # # The Common module diff --git a/src/simulator/cairo-wideint-private.h b/src/simulator/cairo-wideint-private.h index 6a436af6c..4d0303c58 100644 --- a/src/simulator/cairo-wideint-private.h +++ b/src/simulator/cairo-wideint-private.h @@ -32,6 +32,9 @@ #ifndef CAIRO_WIDEINT_H #define CAIRO_WIDEINT_H +#include "ns3/simulator-config.h" +#define cairo_private + #if HAVE_STDINT_H # include #elif HAVE_INTTYPES_H @@ -63,6 +66,10 @@ #error Cannot find definitions for fixed-width integral types (uint8_t, uint32_t, etc.) #endif +#ifdef __cplusplus +extern "C" { +#endif + /* * 64-bit datatypes. Two separate implementations, one using * built-in 64-bit signed/unsigned types another implemented @@ -313,4 +320,9 @@ _cairo_int_96by64_32x64_divrem (cairo_int128_t num, #undef I +#ifdef __cplusplus +}; +#endif + + #endif /* CAIRO_WIDEINT_H */