BUILD
author Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
Fri, 08 Sep 2006 09:18:33 +0200
changeset 88 619ef053b9f1
parent 87 a1b7dc32df30
child 101 2437ccac8acd
permissions -rw-r--r--
add comment on rpath
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
17
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     1
If you want to build ns3, you need to install scons (see
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     2
http://www.scons.org). scons takes care of building
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     3
the whole source tree using your system compiler. scons
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     4
0.91.1 and 0.91.96 have been tested and are known to 
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     5
work on linux FC5, Mac os X and MinGW.
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     6
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     7
To start a build, you can just type 'scons' which
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     8
will generate a debug shared build by default, located
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     9
in the directory 'build-dir/dbg-shared/bin' and
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    10
'build-dir/dbg-shared/lib'.
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    11
87
a1b7dc32df30 beautify build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 57
diff changeset
    12
All builds are built with debugging symbols. Debugging
a1b7dc32df30 beautify build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 57
diff changeset
    13
builds enable asserts while optimized builds disable them.
88
619ef053b9f1 add comment on rpath
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 87
diff changeset
    14
On platforms which support it, rpath is used which means that
619ef053b9f1 add comment on rpath
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 87
diff changeset
    15
the executable binaries generated link explicitely against
619ef053b9f1 add comment on rpath
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 87
diff changeset
    16
the right libraries. This saves you the pain of having to
619ef053b9f1 add comment on rpath
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 87
diff changeset
    17
setup environment variables to point to the right libraries.
87
a1b7dc32df30 beautify build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 57
diff changeset
    18
17
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    19
1) Options
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    20
----------
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    21
87
a1b7dc32df30 beautify build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 57
diff changeset
    22
- verbose: if you have installed scons 0.91.96 or higher, 
a1b7dc32df30 beautify build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 57
diff changeset
    23
  the default build output is terse. To get a more verbose 
a1b7dc32df30 beautify build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 57
diff changeset
    24
  output, you need to set the 'verbose' variable to 'y'.
a1b7dc32df30 beautify build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 57
diff changeset
    25
Example: scons verbose=y
17
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    26
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    27
2) Targets
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    28
----------
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    29
57
9385fba1589e add doc target to BUILD file
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 17
diff changeset
    30
- doc: build the doxygen documentation.
87
a1b7dc32df30 beautify build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 57
diff changeset
    31
Example: scons doc
57
9385fba1589e add doc target to BUILD file
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 17
diff changeset
    32
17
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    33
- dbg-shared: a debug build using shared libraries.
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    34
  The files are built in 'build-dir/dbg-shared/'.
87
a1b7dc32df30 beautify build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 57
diff changeset
    35
Example: scons dbg-shared
17
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    36
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    37
- dbg-static: a debug build using static libraries
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    38
  The files are built in 'build-dir/dbg-static/'.
87
a1b7dc32df30 beautify build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 57
diff changeset
    39
Example: scons dbg-static
17
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    40
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    41
- opt-shared: an optimized build using shared libraries.
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    42
  The files are built in 'build-dir/opt-shared/'.
87
a1b7dc32df30 beautify build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 57
diff changeset
    43
Example: scons opt-shared
17
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    44
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    45
- opt-static: an optimized build using static libraries.
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    46
  The files are built in 'build-dir/opt-static/'.
87
a1b7dc32df30 beautify build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 57
diff changeset
    47
Example: scons opt-static
17
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    48
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    49
- dbg: an alias for dbg-shared
87
a1b7dc32df30 beautify build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 57
diff changeset
    50
Example: scons dbg
17
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    51
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    52
- opt: an alias for opt-shared
87
a1b7dc32df30 beautify build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 57
diff changeset
    53
Example: scons opt
17
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    54
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    55
- all: alias for dbg-shared, dbg-static, opt-shared 
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    56
  and opt-static
87
a1b7dc32df30 beautify build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 57
diff changeset
    57
Example: scons all
17
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    58
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    59
- dist: generate a release tarball and zipfile from the 
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    60
  source tree. The tarball and zipfile name are generated
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    61
  according to the version number stored in the SConstruct
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    62
  file.
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    63
Example in SConstruct:
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    64
ns3 = Ns3 ()
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    65
ns3.name = 'foo'
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    66
ns3.version = '0.0.10'
87
a1b7dc32df30 beautify build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 57
diff changeset
    67
Example command: scons dist
a1b7dc32df30 beautify build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 57
diff changeset
    68
Example output files:
17
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    69
foo-0.0.10.tar.gz
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    70
foo-0.0.10.zip
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    71
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    72
- distcheck: generate a release tarball and zipfile and 
b959311b6aa1 build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    73
  attempt to run the 'all' target for the release tarball.
87
a1b7dc32df30 beautify build instructions
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 57
diff changeset
    74
Example: scons distcheck