*) Platform was no longer recognized as a attribute of Options. Used waf
Utils call to obtain unversioned platform name.
*) Task classes renamed from <taskname>_task to <taskname>.
Waf was not finding the classes when named with _task suffix.
*) Waf removed check option for 'type_name' check.
Added explicit embedded code snippet based on previous Waf versions to perform uint128 checks.
*) Waf source attribute is now strings, need to convert to nodes to retrieve parent node.
# Orig 1.8.19 testdir = self.source[-1].parent.path_from(self.bld.srcnode)
testdir = self.to_nodes(self.source[-1])[0].parent.path_from(self.bld.srcnode)
Fixed clang-3.4 unused function warnings in optimized builds like the following:
"""
../examples/energy/energy-model-example.cc:39:1: error: unused function
'PrintReceivedPacket' [-Werror,-Wunused-function]
PrintReceivedPacket (Address& from)
^
1 error generated.
"""
Implemented "if (false)" trick inside NS_LOG* macros for optimized builds.
"sizeof()" trick might be a little better but it produces the following
warning with clang-3.4:
"""
../examples/energy/energy-model-example.cc:39:1: error: function
'PrintReceivedPacket' is not needed and will not be emitted
[-Werror,-Wunneeded-internal-declaration]
PrintReceivedPacket (Address& from)
^
1 error generated.
"""
Macros from log.h, that depend on NS3_LOG_ENABLE, were moved to log-macros-enabled.h and log-macros-disabled.h to make log.h smaller.
This is a massive upgrade removing almost all pre-waf 1.6 script code. In addition, this does away with custom pkgconfig.py script for making .pc files and replaces it with waf's builtin mechanism.
Massive thanks to Alex Afanasyev for ideas and bugfixing, to Alina Quereilhac for bugfixing and testing, and to Tom Henderson for thorough testing.