Fix outdated README information
authorTom Henderson <tomh@tomh.org>
Wed, 07 Dec 2011 16:11:42 -0800
changeset 7621 b0120c820a67
parent 7620 4da35aed3cb2
child 7622 f2e5d5201044
Fix outdated README information
README
doc/build.txt
--- a/README	Wed Dec 07 16:09:12 2011 -0800
+++ b/README	Wed Dec 07 16:11:42 2011 -0800
@@ -24,14 +24,15 @@
 will be contributed by the community in an open collaboration
 process.
 
-Contributing to the ns-3 project is still a very informal
-process because that process depends heavily on the background
-of the people involved, the amount of time they can invest
-and the type of model they want to work on.  
+The process of contributing to the ns-3 project varies with
+the people involved, the amount of time they can invest
+and the type of model they want to work on, but the current
+process that the project tries to follow is described here:
+http://www.nsnam.org/developers/contributing-code/
 
-Despite this lack of a formal process, there are a number of 
-steps which naturally stem from the open-source roots of the
-project.  These steps are described in doc/contributing.txt
+This README excerpts some details from a more extensive
+tutorial that is maintained at:
+http://www.nsnam.org/documentation/latest/
 
 2) Building ns-3
 ----------------
@@ -47,9 +48,13 @@
 included in the file doc/build.txt
 
 However, the real quick and dirty way to get started is to
-type the command "./waf configure; ./waf" the the directory which contains
+type the command
+  ./waf configure --enable-examples
+followed by
+  ./waf 
+in the the directory which contains
 this README file. The files built will be copied in the
-build/debug or build/optimized.
+build/ directory.
 
 The current codebase is expected to build and run on the
 set of platforms listed in the RELEASE_NOTES file.
@@ -60,15 +65,16 @@
 3) Running ns-3
 ---------------
 
-On recent Linux systems, once you have built ns-3, it 
-should be easy to run the sample programs with the
-following command:
+On recent Linux systems, once you have built ns-3 (with examples
+enabled), it should be easy to run the sample programs with the
+following command, such as:
 
-./waf --run simple-global-routing
+  ./waf --run simple-global-routing
 
 That program should generate a simple-global-routing.tr text 
 trace file and a set of simple-global-routing-xx-xx.pcap binary
 pcap trace files, which can be read by tcpdump -tt -r filename.pcap
+The program source can be found in the examples/routing directory.
 
 4) Getting access to the ns-3 documentation
 -------------------------------------------
@@ -79,18 +85,19 @@
 some ns-3 documentation. 
 
 All of that documentation should always be available from
-the ns-3 website: http:://www.nsnam.org/ but we
-include some of it in this release for ease of use.
+the ns-3 website: http:://www.nsnam.org/documentation/.
 
 This documentation includes:
 
   - a tutorial
  
-  - a manual
+  - a reference manual
+
+  - models in the ns-3 model library
 
   - a wiki for user-contributed tips: http://www.nsnam.org/wiki/
 
-  - an API documentation generated using doxygen: this is
+  - API documentation generated using doxygen: this is
     a reference manual, most likely not very well suited 
     as introductory text:
     http://www.nsnam.org/doxygen/index.html
--- a/doc/build.txt	Wed Dec 07 16:09:12 2011 -0800
+++ b/doc/build.txt	Wed Dec 07 16:11:42 2011 -0800
@@ -23,28 +23,28 @@
 
 To see valid configure options, type ./waf --help.  The most important
 option is -d <debug level>.  Valid debug levels (which are listed in
-waf --help) are: "debug" or "optimized".  It is
+waf --help) are: "debug" or "optimized", with debug being default.  It is
 also possible to change the flags used for compilation with (e.g.):
-CXXFLAGS="-O3" ./waf configure.
+CXXFLAGS="-O3" ./waf configure.  By default, ns-3 is built as debug code, 
+with examples and tests disabled, and with python bindings enabled.  
 
 [ Note:  Unlike some other build tools, to change the build target,
 the option must be supplied during the configure stage rather than
 the build stage (i.e., "./waf -d optimized" will not work; instead, do
 "./waf -d optimized configure; ./waf" ]
 
-The resulting binaries are placed in build/<debuglevel>/srcpath.
+The resulting executables and libraries are placed in build/.
 
 Other waf usages include:
 
  1. ./waf configure --enable-examples --enable-tests
     Turn on examples and tests.
 
- 2. ./waf --doxygen
-    Run doxygen to generate documentation
+ 2. ./waf configure --disable-python
+    Disable python bindings.
 
- 3. ./waf --lcov-report
-    Run code coverage analysis (assuming the project was configured
-with --enable-gcov)
+ 3. ./waf --doxygen
+    Run doxygen to generate documentation
 
  4. ./waf --run "program [args]"
     Run a ns3 program, given its target name, with the given
@@ -79,29 +79,29 @@
   1. Create the module directory under src;
   2. Add the source files to it;
   3. Add a 'wscript' describing it;
-  4. Add the module subdirectory name to the all_modules list in src/wscript.
+
+A convenience program to auto-generate the template of a new module can
+be found in src/create-module.py.
 
 A module's wscript file is basically a regular Waf script.  A ns-3
 module is created as a cpp/shlib object, like this:
 
 def build(bld):
-    obj = bld.create_obj('cpp', 'shlib')
-
-    ## set module name; by convention it starts with ns3-
-    obj.name = 'ns3-mymodule'
-    obj.target = obj.name 
-
-    ## list dependencies to other modules
-    obj.uselib_local = ['ns3-core'] 
+    module = bld.create_ns3_module('ns3-mymodule', ['core'])
+    module.source = [
+        'model/ns3-mymodule.cc',
+        'helper/ns3-mymodule-helper.cc',
+        ]
 
-    ## list source files (private or public header files excluded)
-    obj.source = [
-        'mymodule.cc',
-    ]
+    headers = bld.new_task_gen(features=['ns3header'])
+    headers.module = 'ns3-mymodule'
+    headers.source = [
+        'model/ns3-mymodule.h',
+        'helper/ns3-mymodule-helper.h',
+        ]
 
-    ## list module public header files
-    headers = bld.create_obj('ns3header')
-    headers.source = [
-        'mymodule-header.h',
-    ]
+    if bld.env.ENABLE_EXAMPLES:
+        bld.add_subdirs('examples')
 
+    # bld.ns3_python_bindings()
+