Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add pages for ns3 and gtnets.
authorNavarrop <Pierre.Navarro@imag.fr>
Thu, 1 Sep 2011 10:54:15 +0000 (12:54 +0200)
committerNavarrop <Pierre.Navarro@imag.fr>
Thu, 1 Sep 2011 10:54:15 +0000 (12:54 +0200)
buildtools/Cmake/DefinePackages.cmake
doc/Doxyfile.in
doc/gtnets.doc [new file with mode: 0644]
doc/index.php.in
doc/ns3.doc [new file with mode: 0644]
doc/options.doc
doc/use.doc
src/gras/gras.c
tools/doxygen/doxygen_postprocesser.pl

index b9cb817..544ddce 100644 (file)
@@ -555,6 +555,8 @@ set(DOC_SOURCES
        doc/bindings.doc
        doc/options.doc
        doc/use.doc
        doc/bindings.doc
        doc/options.doc
        doc/use.doc
+       doc/gtnets.doc
+       doc/ns3.doc
        doc/gtut-howto-design.doc
        doc/gtut-howto.doc
        doc/gtut-introduction.doc
        doc/gtut-howto-design.doc
        doc/gtut-howto.doc
        doc/gtut-introduction.doc
index 434c921..980ef76 100644 (file)
@@ -34,13 +34,13 @@ PROJECT_NAME           = SimGrid
 # This could be handy for archiving the generated documentation or
 # if some version control system is used.
 
 # This could be handy for archiving the generated documentation or
 # if some version control system is used.
 
-PROJECT_NUMBER         =
+PROJECT_NUMBER         = @release_version@
 
 # Using the PROJECT_BRIEF tag one can provide an optional one line description
 # for a project that appears at the top of each page and should give viewer
 # a quick idea about the purpose of the project. Keep the description short.
 
 
 # Using the PROJECT_BRIEF tag one can provide an optional one line description
 # for a project that appears at the top of each page and should give viewer
 # a quick idea about the purpose of the project. Keep the description short.
 
-PROJECT_BRIEF          =
+PROJECT_BRIEF          = "<i>Scalable simulation of distributed systems</i>"
 
 # With the PROJECT_LOGO tag one can specify an logo or icon that is
 # included in the documentation. The maximum height of the logo should not
 
 # With the PROJECT_LOGO tag one can specify an logo or icon that is
 # included in the documentation. The maximum height of the logo should not
@@ -284,7 +284,7 @@ SUBGROUPING            = YES
 # @ingroup) instead of on a separate page (for HTML and Man pages) or
 # section (for LaTeX and RTF).
 
 # @ingroup) instead of on a separate page (for HTML and Man pages) or
 # section (for LaTeX and RTF).
 
-INLINE_GROUPED_CLASSES = NO
+#INLINE_GROUPED_CLASSES = NO
 
 # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
 # is documented as struct, union, or enum with the name of the typedef. So
 
 # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
 # is documented as struct, union, or enum with the name of the typedef. So
@@ -619,6 +619,8 @@ INPUT                  = index.doc \
                          FAQ.doc \
                          options.doc \
                          use.doc \
                          FAQ.doc \
                          options.doc \
                          use.doc \
+                         gtnets.doc \
+                         ns3.doc \
                          contrib.doc \
                          publis.doc \
                          people.doc \
                          contrib.doc \
                          publis.doc \
                          people.doc \
@@ -927,7 +929,7 @@ HTML_STYLESHEET        =
 # files. In the HTML_STYLESHEET file, use the file name only. Also note that
 # the files will be copied as-is; there are no commands or markers available.
 
 # files. In the HTML_STYLESHEET file, use the file name only. Also note that
 # the files will be copied as-is; there are no commands or markers available.
 
-HTML_EXTRA_FILES       =
+#HTML_EXTRA_FILES       =
 
 # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
 # Doxygen will adjust the colors in the stylesheet and background images
 
 # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
 # Doxygen will adjust the colors in the stylesheet and background images
@@ -1278,7 +1280,7 @@ LATEX_HEADER           =
 # the last chapter. If it is left blank doxygen will generate a
 # standard footer. Notice: only use this tag if you know what you are doing!
 
 # the last chapter. If it is left blank doxygen will generate a
 # standard footer. Notice: only use this tag if you know what you are doing!
 
-LATEX_FOOTER           =
+#LATEX_FOOTER           =
 
 # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
 # is prepared for conversion to pdf (using ps2pdf). The pdf file will
 
 # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
 # is prepared for conversion to pdf (using ps2pdf). The pdf file will
diff --git a/doc/gtnets.doc b/doc/gtnets.doc
new file mode 100644 (file)
index 0000000..fbe6b0e
--- /dev/null
@@ -0,0 +1,125 @@
+/*! \page gtnets SimGrid and GTNets
+
+\section gtnets_simgrid_configuration_gtnets Using GTNetS
+
+It is possible to use a packet-level network simulator
+instead of the default flow-based simulation. You may want to use such
+an approach if you have doubts about the validity of the default model
+or if you want to perform some validation experiments. At the moment,
+we support the GTNetS simulator (it is still rather experimental
+though, so leave us a message if you play with it). 
+
+<i>
+To enable GTNetS model inside SimGrid it is needed to patch the GTNetS simulator source code 
+and build/install it from scratch
+</i>
+
+ - <b>Download and enter the recent downloaded GTNetS directory</b>
+
+ \verbatim
+ svn checkout svn://scm.gforge.inria.fr/svn/simgrid/contrib/trunk/GTNetS/
+ cd GTNetS
+ \endverbatim
+
+
+ - <b>Use the following commands to unzip and patch GTNetS package to work within SimGrid.</b>
+
+ \verbatim
+ unzip gtnets-current.zip
+ tar zxvf gtnets-current-patch.tgz 
+ cd gtnets-current
+ cat ../00*.patch | patch -p1
+ \endverbatim
+
+  - <b>OPTIONALLY</b> you can use a patch for itanium 64bit processor family.
+
+  \verbatim
+  cat ../AMD64-FATAL-Removed-DUL_SIZE_DIFF-Added-fPIC-compillin.patch | patch -p1
+  \endverbatim
+
+ - <b>Compile GTNetS</b>
+
+   Due to portability issues it is possible that GTNetS does not compile in your architecture. The patches furnished in SimGrid SVN repository are intended for use in Linux architecture only. Unfortunately, we do not have the time, the money, neither the manpower to guarantee GTNetS portability. We advice you to use one of GTNetS communication channel to get more help in compiling GTNetS. 
+
+
+ \verbatim
+ ln -sf Makefile.linux Makefile
+ make depend
+ make debug
+ \endverbatim
+
+
+ - <b>NOTE</b> A lot of warnings are expected but the application should compile
+ just fine. If the makefile insists in compiling some QT libraries
+ please try a make clean before asking for help.
+
+
+ - <b>To compile optimized version</b>
+
+ \verbatim
+ make opt
+ \endverbatim
+
+
+ - <b>Installing GTNetS</b>
+
+ It is important to put the full path of your libgtsim-xxxx.so file when creating the symbolic link. Replace < userhome > by some path you have write access to.
+
+ \verbatim
+ ln -sf /<absolute_path>/gtnets_current/libgtsim-debug.so /<userhome>/usr/lib/libgtnets.so
+ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/<userhome>/usr/lib/libgtnets.so
+ mkdir /<userhome>/usr/include/gtnets
+ cp -fr SRC/*.h /<userhome>/usr/include/gtnets
+ \endverbatim
+
+
+ - <b>Enable GTNetS support in SimGrid</b>
+In order to enable gtnets with simgrid you have to give where is gtnets. (path to \<gtnets_path\>/lib and \<gtnets_path\>/include)
+
+   \verbatim
+   Since v3.4 (with cmake)
+   cmake . -Dgtnets_path=/<userhome>/usr
+   
+   Until v3.4 (with autotools)
+   ./configure --with-gtnets=/<userhome>/usr
+   \endverbatim
+
+ - <b>Once you have followed all the instructions for compiling and
+   installing successfully you can activate this feature at 
+   runntime with the following options:</b>
+
+   \verbatim
+   Since v3.4 (with cmake)
+   cd simgrid
+   make
+   ctest -R gtnets
+   
+   Until v3.4 (with autotools)
+   cd simgrid/example/msg/
+   make
+   make check
+   \endverbatim
+
+
+ - <b>Or try the GTNetS model dogbone example with</b>
+
+ \verbatim
+ gtnets/gtnets gtnets/onelink-p.xml gtnets/onelink-d.xml --cfg=network_model:GTNets
+ \endverbatim
+
+ A long version of this <a href="http://gforge.inria.fr/docman/view.php/12/6283/GTNetS HowTo.html">HowTo</a>  it is available 
+
+
+ More about GTNetS simulator at <a href="http://www.ece.gatech.edu/research/labs/MANIACS/GTNetS/index.html">GTNetS Website</a>
+
+
+ - <b>DISCLAIMER</b>
+ The patches provided by us worked successfully with GTNetS found 
+ <a href="http://www.ece.gatech.edu/research/labs/MANIACS/GTNetS/software/gtnets-current.zip">here</a>, 
+ dated from 12th June 2008. Due to the discontinuing development of
+ GTNetS it is impossible to precise a version number. We STRONGLY recommend you
+ to download and install the GTNetS version found in SimGrid repository as explained above.
+*/
\ No newline at end of file
index a12483c..1763ca7 100644 (file)
@@ -15,7 +15,8 @@ echo '<?xml version="1.0" encoding="UTF-8"?>';
 
   <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 
   <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-       <title><?php echo $project_name; ?></title>
+       <title>SimGrid - Scalable simulation of distributed systems, ranging from grids to peer-to-peer systems</title>
+       <meta name="keywords" content="Scalable, simulation, distributed systems, grid, peer-to-peer" /> 
        <script language="JavaScript" type="text/javascript">
        <!--
        function help_window(helpurl) {
        <script language="JavaScript" type="text/javascript">
        <!--
        function help_window(helpurl) {
diff --git a/doc/ns3.doc b/doc/ns3.doc
new file mode 100644 (file)
index 0000000..eb260ba
--- /dev/null
@@ -0,0 +1,7 @@
+/*! \page ns3 SimGrid and NS3
+
+\section ns3_simgrid_configuration_ns3 Using NS3
+ \li gras_init()
+ \li \ref xbt_new
+ \li MSG_process_suspend()
+*/
\ No newline at end of file
index 03b24fc..086012d 100644 (file)
@@ -27,132 +27,6 @@ Running a fullduplex example:
        ./gtnets fullduplex-p.xml fullduplex-d.xml --cfg=fullduplex:1
 \endverbatim
 
        ./gtnets fullduplex-p.xml fullduplex-d.xml --cfg=fullduplex:1
 \endverbatim
 
-\subsection options_simgrid_configuration_gtnets Using GTNetS
-
-It is possible to use a packet-level network simulator
-instead of the default flow-based simulation. You may want to use such
-an approach if you have doubts about the validity of the default model
-or if you want to perform some validation experiments. At the moment,
-we support the GTNetS simulator (it is still rather experimental
-though, so leave us a message if you play with it). 
-
-
-<i>
-To enable GTNetS model inside SimGrid it is needed to patch the GTNetS simulator source code 
-and build/install it from scratch
-</i>
-
- - <b>Download and enter the recent downloaded GTNetS directory</b>
-
- \verbatim
- svn checkout svn://scm.gforge.inria.fr/svn/simgrid/contrib/trunk/GTNetS/
- cd GTNetS
- \endverbatim
-
-
- - <b>Use the following commands to unzip and patch GTNetS package to work within SimGrid.</b>
-
- \verbatim
- unzip gtnets-current.zip
- tar zxvf gtnets-current-patch.tgz 
- cd gtnets-current
- cat ../00*.patch | patch -p1
- \endverbatim
-
-  - <b>OPTIONALLY</b> you can use a patch for itanium 64bit processor family.
-
-  \verbatim
-  cat ../AMD64-FATAL-Removed-DUL_SIZE_DIFF-Added-fPIC-compillin.patch | patch -p1
-  \endverbatim
-
- - <b>Compile GTNetS</b>
-
-   Due to portability issues it is possible that GTNetS does not compile in your architecture. The patches furnished in SimGrid SVN repository are intended for use in Linux architecture only. Unfortunately, we do not have the time, the money, neither the manpower to guarantee GTNetS portability. We advice you to use one of GTNetS communication channel to get more help in compiling GTNetS. 
-
-
- \verbatim
- ln -sf Makefile.linux Makefile
- make depend
- make debug
- \endverbatim
-
-
- - <b>NOTE</b> A lot of warnings are expected but the application should compile
- just fine. If the makefile insists in compiling some QT libraries
- please try a make clean before asking for help.
-
-
- - <b>To compile optimized version</b>
-
- \verbatim
- make opt
- \endverbatim
-
-
- - <b>Installing GTNetS</b>
-
- It is important to put the full path of your libgtsim-xxxx.so file when creating the symbolic link. Replace < userhome > by some path you have write access to.
-
- \verbatim
- ln -sf /<absolute_path>/gtnets_current/libgtsim-debug.so /<userhome>/usr/lib/libgtnets.so
- export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/<userhome>/usr/lib/libgtnets.so
- mkdir /<userhome>/usr/include/gtnets
- cp -fr SRC/*.h /<userhome>/usr/include/gtnets
- \endverbatim
-
-
- - <b>Enable GTNetS support in SimGrid</b>
-In order to enable gtnets with simgrid you have to give where is gtnets. (path to \<gtnets_path\>/lib and \<gtnets_path\>/include)
-
-   \verbatim
-   Since v3.4 (with cmake)
-   cmake . -Dgtnets_path=/<userhome>/usr
-   
-   Until v3.4 (with autotools)
-   ./configure --with-gtnets=/<userhome>/usr
-   \endverbatim
-
- - <b>Once you have followed all the instructions for compiling and
-   installing successfully you can activate this feature at 
-   runntime with the following options:</b>
-
-   \verbatim
-   Since v3.4 (with cmake)
-   cd simgrid
-   make
-   ctest -R gtnets
-   
-   Until v3.4 (with autotools)
-   cd simgrid/example/msg/
-   make
-   make check
-   \endverbatim
-
-
- - <b>Or try the GTNetS model dogbone example with</b>
-
- \verbatim
- gtnets/gtnets gtnets/onelink-p.xml gtnets/onelink-d.xml --cfg=network_model:GTNets
- \endverbatim
-
- A long version of this <a href="http://gforge.inria.fr/docman/view.php/12/6283/GTNetS HowTo.html">HowTo</a>  it is available 
-
-
- More about GTNetS simulator at <a href="http://www.ece.gatech.edu/research/labs/MANIACS/GTNetS/index.html">GTNetS Website</a>
-
-
- - <b>DISCLAIMER</b>
- The patches provided by us worked successfully with GTNetS found 
- <a href="http://www.ece.gatech.edu/research/labs/MANIACS/GTNetS/software/gtnets-current.zip">here</a>, 
- dated from 12th June 2008. Due to the discontinuing development of
- GTNetS it is impossible to precise a version number. We STRONGLY recommend you
- to download and install the GTNetS version found in SimGrid repository as explained above.
-
-
-
 \subsection options_simgrid_configuration_alternate_network Using alternative flow models
 
 The default simgrid network model uses a max-min based approach as
 \subsection options_simgrid_configuration_alternate_network Using alternative flow models
 
 The default simgrid network model uses a max-min based approach as
index a6c496d..2f1ff4e 100644 (file)
@@ -1,4 +1,4 @@
-/*! \page use Use SimGrid
+/*! \page use Using SimGrid
 
 \section use_generic First steps with SimGrid
 
 
 \section use_generic First steps with SimGrid
 
index 503651b..73615c5 100644 (file)
@@ -68,6 +68,10 @@ XBT_LOG_EXTERNAL_CATEGORY(gras_virtu);
 XBT_LOG_EXTERNAL_CATEGORY(gras_virtu_emul);
 XBT_LOG_EXTERNAL_CATEGORY(gras_virtu_process);
 
 XBT_LOG_EXTERNAL_CATEGORY(gras_virtu_emul);
 XBT_LOG_EXTERNAL_CATEGORY(gras_virtu_process);
 
+/**
+ * @ingroup GRAS_API
+ * \brief Initialize the gras mechanisms.
+ */
 void gras_init(int *argc, char **argv)
 {
   int first = 0;
 void gras_init(int *argc, char **argv)
 {
   int first = 0;
@@ -143,6 +147,10 @@ void gras_init(int *argc, char **argv)
   pd->listener = gras_msg_listener_launch(msg_pd->msg_received);
 }
 
   pd->listener = gras_msg_listener_launch(msg_pd->msg_received);
 }
 
+/**
+ * @ingroup GRAS_API
+ * @brief Finalize the gras mechanisms.
+ * */
 void gras_exit(void)
 {
   XBT_INFO("Exiting GRAS");
 void gras_exit(void)
 {
   XBT_INFO("Exiting GRAS");
index 9e96caf..f35e84a 100755 (executable)
@@ -6,7 +6,8 @@ use strict;
 my @extra_files = qw(html/index.html html/faq.html html/history.html html/contrib.html html/people.html
                      html/publis.html html/publis_core.html html/publis_extern.html html/publis_intra.html
                      html/pages.html html/modules.html html/annotated.html html/functions.html html/functions_vars.html index.php 
 my @extra_files = qw(html/index.html html/faq.html html/history.html html/contrib.html html/people.html
                      html/publis.html html/publis_core.html html/publis_extern.html html/publis_intra.html
                      html/pages.html html/modules.html html/annotated.html html/functions.html html/functions_vars.html index.php 
-                     html/GRAS_tut.html html/installSimgrid.html html/bindings.html html/options.html html/use.html);
+                     html/GRAS_tut.html html/installSimgrid.html html/bindings.html html/options.html html/use.html html/gtnets.html
+                     html/ns3.html);
 
 # GRAS tutorial
 map {push @extra_files, "html/GRAS_tut_$_.html"} qw (intro 
 
 # GRAS tutorial
 map {push @extra_files, "html/GRAS_tut_$_.html"} qw (intro 
@@ -381,13 +382,15 @@ foreach my $file (@allfiles) {
       }
       if( $_ =~ /<\/ul>/ && $tabs){
                my $tmp_buff="";
       }
       if( $_ =~ /<\/ul>/ && $tabs){
                my $tmp_buff="";
-               $tmp_buff .= '      <li><a href="use.html"><span>Use SimGrid</span></a></li>'."\n";
+               $tmp_buff .= '      <li><a href="use.html"><span>Using SimGrid</span></a></li>'."\n";
+               $tmp_buff .= '      <li><a href="faq.html"><span>FAQ&#160;Page</span></a></li>'."\n";
                $tmp_buff .= '      <li><a href="publis.html"><span>Publications</span></a></li>'."\n";
                $tmp_buff .= '      <li><a href="people.html"><span>People</span></a></li>'."\n";
                $tmp_buff .= '      <li><a href="history.html"><span>History</span></a></li>'."\n";
                $tmp_buff .= '      <li><a href="contrib.html"><span>Contrib</span></a></li>'."\n";
                $tmp_buff .= '      <li><a href="http://gforge.inria.fr/projects/simgrid"><span>Simgrid&#160;Forge</span></a></li>'."\n";
                $tmp_buff .= '      <li><a href="http://simgrid.gforge.inria.fr/"><span>Home</span></a></li>'."\n";
                $tmp_buff .= '      <li><a href="publis.html"><span>Publications</span></a></li>'."\n";
                $tmp_buff .= '      <li><a href="people.html"><span>People</span></a></li>'."\n";
                $tmp_buff .= '      <li><a href="history.html"><span>History</span></a></li>'."\n";
                $tmp_buff .= '      <li><a href="contrib.html"><span>Contrib</span></a></li>'."\n";
                $tmp_buff .= '      <li><a href="http://gforge.inria.fr/projects/simgrid"><span>Simgrid&#160;Forge</span></a></li>'."\n";
                $tmp_buff .= '      <li><a href="http://simgrid.gforge.inria.fr/"><span>Home</span></a></li>'."\n";
+               $tmp_buff .= '      <li><a href="pages.html"><span>Site&nbsp;Map</span></a></li>'."\n";
                $tmp_buff .= $_;
                $tabs = 0;
 
                $tmp_buff .= $_;
                $tabs = 0;
 
@@ -397,14 +400,20 @@ foreach my $file (@allfiles) {
              || $file =~ /^html\/installSimgrid.*/
              || $file =~ /^html\/options.*/ 
              || $file =~ /^html\/bindings.*/
              || $file =~ /^html\/installSimgrid.*/
              || $file =~ /^html\/options.*/ 
              || $file =~ /^html\/bindings.*/
-             || $file =~ /^html\/faq.*/)
+             || $file =~ /^html\/gtnets.*/
+             || $file =~ /^html\/ns3.*/
+             || $file =~ /^html\/modules.*/
+             || $file =~ /^html\/annotated.*/)
              {
                                $tmp_buff .= '      <div class="tabs_group_use">'."\n";
                                $tmp_buff .= '          <ul class="tablist">'."\n";
                                $tmp_buff .= '          <li><a href="installSimgrid.html"><span>Install SimGrid</span></a></li>'."\n";
              {
                                $tmp_buff .= '      <div class="tabs_group_use">'."\n";
                                $tmp_buff .= '          <ul class="tablist">'."\n";
                                $tmp_buff .= '          <li><a href="installSimgrid.html"><span>Install SimGrid</span></a></li>'."\n";
+                               $tmp_buff .= '          <li><a href="modules.html"><span>Modules&#160;API</span></a></li>'."\n";
+                       $tmp_buff .= '          <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>'."\n";
                                $tmp_buff .= '          <li><a href="options.html"><span>Options & configurations</span></a></li>'."\n";
                                $tmp_buff .= '          <li><a href="bindings.html"><span>Bindings</span></a></li>'."\n";
                                $tmp_buff .= '          <li><a href="options.html"><span>Options & configurations</span></a></li>'."\n";
                                $tmp_buff .= '          <li><a href="bindings.html"><span>Bindings</span></a></li>'."\n";
-                               $tmp_buff .= '          <li><a href="faq.html"><span>FAQ&#160;Page</span></a></li>'."\n";
+                               $tmp_buff .= '          <li><a href="gtnets.html"><span>GTNets</span></a></li>'."\n";
+                               $tmp_buff .= '          <li><a href="ns3.html"><span>NS3</span></a></li>'."\n";
                                $tmp_buff .= '          </ul></div>'."\n";
                                $tmp_buff .= '      </div>'."\n";
                                
                                $tmp_buff .= '          </ul></div>'."\n";
                                $tmp_buff .= '      </div>'."\n";
                                
@@ -414,33 +423,39 @@ foreach my $file (@allfiles) {
                        $filename =~ s/publis_.*/publis/g;
                        $tmp_buff =~ s/<li class="current">/<li>/g;
                        $tmp_buff =~ s/<li><a href="$filename.html">/<li class="current"><a href="$filename.html">/g;
                        $filename =~ s/publis_.*/publis/g;
                        $tmp_buff =~ s/<li class="current">/<li>/g;
                        $tmp_buff =~ s/<li><a href="$filename.html">/<li class="current"><a href="$filename.html">/g;
-                       $tmp_buff =~ s/<li><a href="use.html">/<li class="current"><a href="$filename.html">/g; 
+                       $tmp_buff =~ s/<li><a href="use.html">/<li class="current"><a href="use.html">/g; 
                                
              }
        
              # Rework the navbar
              # Fix the current "button" of buggy Doxygen tabs   
              if($file =~ /^html\/publis.*/ 
                                
              }
        
              # Rework the navbar
              # Fix the current "button" of buggy Doxygen tabs   
              if($file =~ /^html\/publis.*/ 
+             || $file =~ /^html\/faq.*/
              || $file =~ /^html\/people.*/ 
              || $file =~ /^html\/history.*/ 
              || $file =~ /^html\/people.*/ 
              || $file =~ /^html\/history.*/ 
-             || $file =~ /^html\/contrib.*/)
+             || $file =~ /^html\/contrib.*/
+             || $file =~ /^html\/pages.*/)
              {
                      my $filename = $file;
                      $filename =~ s/html\///g;
                      $filename =~ s/\.html//g;
                      $filename =~ s/publis_.*/publis/g;
                      $tmp_buff =~ s/<li class="current">/<li>/g;
              {
                      my $filename = $file;
                      $filename =~ s/html\///g;
                      $filename =~ s/\.html//g;
                      $filename =~ s/publis_.*/publis/g;
                      $tmp_buff =~ s/<li class="current">/<li>/g;
-                     $tmp_buff =~ s/<li><a href="$filename.html">/<li class="current"><a href="$filename.html">/g;           
+                     $tmp_buff =~ s/<li><a href="$filename.html">/<li class="current"><a href="$filename.html">/g;     
              }
              
 
              print TO $tmp_buff;             
              next;
     }
              }
              
 
              print TO $tmp_buff;             
              next;
     }
-      
       s|<span>Modules</span>|<span>Modules&#160;API</span>|g;
       s|<span>Modules</span>|<span>Modules&#160;API</span>|g;
-      s|<span>Related&nbsp;Pages</span>|<span>Site&nbsp;Plan</span>|g;
-                                                                                                 
+      s|<li.*><a href="pages.html"><span>Related&#160;Pages</span></a></li>\n||g;
+      s|<li><a href="modules.html"><span>Modules&#160;API</span></a></li>\n||g;
+      s|<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>\n||g;
+      s|<li class="current"><a href="modules.html"><span>Modules&#160;API</span></a></li>\n||g;
+      s|<li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>\n||g;
+      s|Related Pages<|Site&nbsp;Map<|g;
+                                                                                           
       print TO $_;
     }
     close FROM;
       print TO $_;
     }
     close FROM;