* include/freetype/config/ftheader.h, include/freetype/ftsnames.h:
	renamed "ftnames.h" to "ftsnames.h", and FT_NAMES_H to FT_SFNT_NAMES_H

	* docs/docmaker.py: added generation of INDEX link in table of contents
diff --git a/ChangeLog b/ChangeLog
index 79592d9..a960b28 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
 2001-03-20  David Turner    <david.turner@freetype.org>
 
+	* include/freetype/config/ftheader.h, include/freetype/ftsnames.h:
+	renamed "ftnames.h" to "ftsnames.h", and FT_NAMES_H to FT_SFNT_NAMES_H
+
+	* docs/docmaker.py: added generation of INDEX link in table of contents
+
+	* INSTALL, docs/BUILD: updated documentation to indicate that the
+	compilation process has changed slightly (no more 'src' required in
+	the include path).
+
 	* builds/*/*-def.mk: changed the objects directory from "obj" to "objs"
 
 	* include/freetype/config/ftheader.h: removed obsolete macros like
diff --git a/INSTALL b/INSTALL
index d89010a..3365022 100644
--- a/INSTALL
+++ b/INSTALL
@@ -7,7 +7,7 @@
 
   You need  to have  GNU Make (version  3.78.1 or newer)  installed on
   your system to compile the library from the command line.  This will
-  _not_ work with other make tools (including BSD make)!
+  _NOT_ work with other make tools (including BSD make)!
 
   [Well, this is not  really correct.  Recently, a perl implementation
   of make called `makepp' has appeared which can also build FreeType 2
@@ -60,10 +60,14 @@
 II. In your own environment (IDE)
 ---------------------------------
 
-  You   need   to   add   the  directories   "freetype2/include"   and
-  "freetype2/src" to your include path when compiling the library.
+  You   need   to   add   the  directories   "freetype2/include" to
+  your include path when compiling the library.
   
-  Compile each library component through the following files:
+  FreeType 2 is made of several components, each one of them is located
+  in a subdirectory of "freetype2/src". For example, 'freetype2/src/truetype/'
+  contains the TrueType font driver.
+  
+  DO NOT COMPILE ALL C FILES !! Rather, compile the following ones:
   
     -- base components (required)
      
diff --git a/docs/BUILD b/docs/BUILD
index e7716a8..4223252 100644
--- a/docs/BUILD
+++ b/docs/BUILD
@@ -13,6 +13,9 @@
 I. QUICK COMMAND-LINE GUIDE
 ---------------------------
 
+  THE FOLLOWING WILL ONLY WORK WITH GNU MAKE, IT WILL FAIL MISERABLY
+  WITH OTHER MAKE TOOLS, FOR EXAMPLE "BSD MAKE"..
+
   Install GNU Make  (version 3.78.1 or newer), then  try the following
   on Unix or any system with gcc:
 
@@ -59,6 +62,9 @@
     Make -- trying to build the  library with any other Make tool will
     *fail*.
 
+    NEARLY ALL OTHER MAKE TOOLS WILL FAIL, INCLUDING "BSD MAKE", SO REALLY
+    INSTALL A RECENT VERSION OF GNU MAKE ON YOUR SYSTEM !!
+
     Make sure that you are invoking GNU Make from the command line, by
     typing something like:
 
@@ -66,7 +72,7 @@
 
     to display its version number.
 
-    Version 3.78.1 or newer is needed.
+    VERSION 3.78.1 OR NEWER IS NEEDED !!.
 
   b. Invoke `make'
 
@@ -177,12 +183,12 @@
   However, you can  create a single object file  by compiling the file
   `src/base/ftbase.c', which basically contains
 
-      #include <base/ftcalc.c>
-      #include <base/ftobjs.c>
-      #include <base/ftstream.c>
-      #include <base/ftlist.c>
-      #include <base/ftoutln.c>
-      #include <base/ftextend.c>
+      #include "ftcalc.c"
+      #include "ftobjs.c"
+      #include "ftstream.c"
+      #include "ftlist.c"
+      #include "ftoutln.c"
+      #include "ftextend.c"
 
   Similarly, each component has a single `englobing' C file to compile
   it as a stand-alone object:
@@ -202,7 +208,7 @@
     src/truetype/truetype.c   - the TrueType font driver
     src/type1/type1.c         - the Type 1 font driver
 
-  The last module of FreeType 2, winfonts (implementing support for
+  The last module of FreeType 2, "winfonts" (implementing support for
   Windows FNT format), is a single file.
 
   To compile one component, do the following:
@@ -210,21 +216,23 @@
     - Add  the  top-level  `include'  directory  to  your  compilation
       include path
 
-    - Add the `src' directory to your compilation include path.
+    - Add the `src/<component>' directory to your compilation include path,
+      or simply 'cd' to the component's source directory
 
     - Compile the component `source'  file (see list below); you don't
-      need to be in the component's directory.
+      need to be in the component's directory if you added `src/<component>'
+      to your include path..
 
   For example, the following line  can be used to compile the truetype
   driver on Unix:
 
      cd freetype2/
-     cc -c -Iinclude -Isrc  src/truetype/truetype.c
+     cc -c -Iinclude -Isrc/truetype  src/truetype/truetype.c
 
   Alternatively:
 
      cd freetype2/src/truetype
-     cc -c -I../../include -I.. truetype.c
+     cc -c -I../../include truetype.c
 
   Finally, FreeType 2 contains some other components:
 
@@ -244,13 +252,9 @@
 IV. Support for flat-directory compilation
 ------------------------------------------
 
-  It is now possible to put  all FreeType 2 source files into a single
+  It is possible to put  all FreeType 2 source files into a single
   directory, with the exception of the `include' hierarchy.
 
-  Note  that you  still need  to  only compile  the `wrapper'  sources
-  described   above.   Define   the   `FT_FLAT_COMPILE'   macro   when
-  compiling.  Here an example:
-
     1. Copy all files in current directory:
 
         cp freetype2/src/base/*.[hc] .
@@ -260,11 +264,13 @@
 
     2. Compile sources:
 
-        cc -c -DFT_FLAT_COMPILE -Ifreetype2/include ftsystem.c
-        cc -c -DFT_FLAT_COMPILE -Ifreetype2/include ftinit.c
-        cc -c -DFT_FLAT_COMPILE -Ifreetype2/include ftdebug.c
-        cc -c -DFT_FLAT_COMPILE -Ifreetype2/include ftbase.c
+        cc -c -Ifreetype2/include ftsystem.c
+        cc -c -Ifreetype2/include ftinit.c
+        cc -c -Ifreetype2/include ftdebug.c
+        cc -c -Ifreetype2/include ftbase.c
         etc.
 
+   You don't need to define the FT_FLAT_COMPILATION macro (as this was required
+   in previous releases of FreeType 2)
 
 End of file
diff --git a/docs/docmaker.py b/docs/docmaker.py
index 2d4e649..43786e8 100644
--- a/docs/docmaker.py
+++ b/docs/docmaker.py
@@ -901,7 +901,7 @@
                 # provide a new one.
                 #
                 if abstract:
-                    print_error( "duplicate section definition for " +
+                    section.block.print_error( "duplicate section definition for " +
                                  "'" + name + "'\n" +
                                  "previous definition in " +
                                  "'" + section.block.location() + "'\n" +
@@ -1192,6 +1192,9 @@
 
             print chapter_footer
 
+        # index
+        print chapter_header + '<a href="' + self.section_list.index_filename + '">Index</a>' + chapter_footer
+
         print html_footer
 
         sys.stdout = old_stdout
diff --git a/include/freetype/config/ftheader.h b/include/freetype/config/ftheader.h
index 51157d0..d3f6a56 100644
--- a/include/freetype/config/ftheader.h
+++ b/include/freetype/config/ftheader.h
@@ -245,7 +245,7 @@
 
 /*************************************************************************
  *
- * @macro: FT_TRUETYPE_NAMES_H
+ * @macro: FT_TRUETYPE_IDS_H
  *
  * @description:
  *    a macro used in #include statements to name the file containing
@@ -254,7 +254,7 @@
  *    constant macro definitions, taken from the TrueType and OpenType
  *    specs..
  */
-#define FT_TRUETYPE_NAMES_H    <freetype/ttnameid.h>
+#define FT_TRUETYPE_IDS_H    <freetype/ttnameid.h>
 
 /*************************************************************************
  *
@@ -362,14 +362,14 @@
 
 /*************************************************************************
  *
- * @macro: FT_NAMES_H
+ * @macro: FT_SFNT_NAMES_H
  *
  * @description:
  *    a macro used in #include statements to name the file containing
  *    the optional FreeType 2 API used to access embedded "name" strings
  *    in SFNT-based font formats (i.e. TrueType and OpenType)
  */
-#define FT_NAMES_H              <freetype/ftnames.h>
+#define FT_SFNT_NAMES_H              <freetype/ftnames.h>
 
  /* */
  
diff --git a/include/freetype/ftchapters.h b/include/freetype/ftchapters.h
index fcca1da..af4ac1a 100644
--- a/include/freetype/ftchapters.h
+++ b/include/freetype/ftchapters.h
@@ -51,3 +51,4 @@
 /*    raster                                                               */
 /*                                                                         */
 /***************************************************************************/
+
diff --git a/include/freetype/ftmm.h b/include/freetype/ftmm.h
index 33d1a0a..137ce84 100644
--- a/include/freetype/ftmm.h
+++ b/include/freetype/ftmm.h
@@ -98,6 +98,7 @@
 
   } FT_Multi_Master;
 
+  /* */
 
   typedef FT_Error  (*FT_Get_MM_Func)( FT_Face           face,
                                        FT_Multi_Master*  master );
diff --git a/include/freetype/ftnames.h b/include/freetype/ftsnames.h
similarity index 92%
rename from include/freetype/ftnames.h
rename to include/freetype/ftsnames.h
index 61ffd85..b81b314 100644
--- a/include/freetype/ftnames.h
+++ b/include/freetype/ftsnames.h
@@ -1,6 +1,6 @@
 /***************************************************************************/
 /*                                                                         */
-/*  ftnames.h                                                              */
+/*  ftsnames.h                                                             */
 /*                                                                         */
 /*    Simple interface to access SFNT name tables (which are used          */
 /*    to hold font names, copyright info, notices, etc.) (specification).  */
@@ -19,8 +19,8 @@
 /***************************************************************************/
 
 
-#ifndef __FTNAMES_H__
-#define __FTNAMES_H__
+#ifndef __FT_SFNT_NAMES_H__
+#define __FT_SFNT_NAMES_H__
 
 
 #include <ft2build.h>
@@ -71,9 +71,13 @@
   /*                                                                       */
   /*    name_id     :: An identifier for `string'.                         */
   /*                                                                       */
-  /*    string      :: The `name' string.  Note that this string is in     */
-  /*                   Pascal convention, i.e., the string hasn't a final  */
-  /*                   null byte.                                          */
+  /*    string      :: The `name' string.  Note that its format differs    */
+  /*                   depending on the (platform,encoding) pair. It can   */
+  /*                   be a Pascal String, a UTF-16 one, etc..             */
+  /*                                                                       */
+  /*                   Generally speaking, the string is not               */
+  /*                   zero-terminated. Please refer to the TrueType       */
+  /*                   specification for details..                         */
   /*                                                                       */
   /*    string_len  :: The length of `string' in bytes.                    */
   /*                                                                       */
@@ -149,7 +153,7 @@
 
 FT_END_HEADER
 
-#endif /* __FTNAMES_H__ */
+#endif /* __FT_SFNT_NAMES_H__ */
 
 
 /* END */
diff --git a/src/base/ftnames.c b/src/base/ftnames.c
index d6ae8b9..8ef57d1 100644
--- a/src/base/ftnames.c
+++ b/src/base/ftnames.c
@@ -20,7 +20,7 @@
 
 
 #include <ft2build.h>
-#include FT_NAMES_H
+#include FT_SFNT_NAMES_H
 #include FT_INTERNAL_TRUETYPE_TYPES_H
 
 
diff --git a/src/cff/cffdrivr.c b/src/cff/cffdrivr.c
index f195c3d..a3b2284 100644
--- a/src/cff/cffdrivr.c
+++ b/src/cff/cffdrivr.c
@@ -21,7 +21,7 @@
 #include FT_INTERNAL_DEBUG_H
 #include FT_INTERNAL_STREAM_H
 #include FT_INTERNAL_SFNT_H
-#include FT_TRUETYPE_NAMES_H
+#include FT_TRUETYPE_IDS_H
 #include FT_INTERNAL_CFF_ERRORS_H
 
 #include "cffdrivr.h"
diff --git a/src/cff/cffobjs.c b/src/cff/cffobjs.c
index 882d5e0..2fac114 100644
--- a/src/cff/cffobjs.c
+++ b/src/cff/cffobjs.c
@@ -21,7 +21,7 @@
 #include FT_INTERNAL_CALC_H
 #include FT_INTERNAL_STREAM_H
 #include FT_ERRORS_H
-#include FT_TRUETYPE_NAMES_H
+#include FT_TRUETYPE_IDS_H
 #include FT_TRUETYPE_TAGS_H
 #include FT_INTERNAL_SFNT_H
 #include FT_INTERNAL_POSTSCRIPT_NAMES_H
diff --git a/src/sfnt/sfobjs.c b/src/sfnt/sfobjs.c
index 894ed52..30f1991 100644
--- a/src/sfnt/sfobjs.c
+++ b/src/sfnt/sfobjs.c
@@ -21,7 +21,7 @@
 #include "ttload.h"
 #include FT_INTERNAL_SFNT_H
 #include FT_INTERNAL_POSTSCRIPT_NAMES_H
-#include FT_TRUETYPE_NAMES_H
+#include FT_TRUETYPE_IDS_H
 #include FT_TRUETYPE_TAGS_H
 #include FT_INTERNAL_TRUETYPE_ERRORS_H
 
diff --git a/src/truetype/ttdriver.c b/src/truetype/ttdriver.c
index 9f23e36..d21d02f 100644
--- a/src/truetype/ttdriver.c
+++ b/src/truetype/ttdriver.c
@@ -20,7 +20,7 @@
 #include FT_INTERNAL_DEBUG_H
 #include FT_INTERNAL_STREAM_H
 #include FT_INTERNAL_SFNT_H
-#include FT_TRUETYPE_NAMES_H
+#include FT_TRUETYPE_IDS_H
 #include "ttdriver.h"
 #include "ttgload.h"
 
diff --git a/src/truetype/ttobjs.c b/src/truetype/ttobjs.c
index e2df8d4..0b1855e 100644
--- a/src/truetype/ttobjs.c
+++ b/src/truetype/ttobjs.c
@@ -20,7 +20,7 @@
 #include FT_INTERNAL_DEBUG_H
 #include FT_INTERNAL_CALC_H
 #include FT_INTERNAL_STREAM_H
-#include FT_TRUETYPE_NAMES_H
+#include FT_TRUETYPE_IDS_H
 #include FT_TRUETYPE_TAGS_H
 #include FT_INTERNAL_SFNT_H
 #include FT_INTERNAL_POSTSCRIPT_NAMES_H