diff --git a/docs/CHANGES b/docs/CHANGES
index 3cbc669..65964f9 100644
--- a/docs/CHANGES
+++ b/docs/CHANGES
@@ -7,10 +7,10 @@
     to  enable   it  besides  the   `T1_CONFIG_OPTION_OLD_ENGINE`  and
     `CFF_CONFIG_OPTION_OLD_ENGINE` options.
 
-  - A  new rendering  module has  been added  to create  16-bit Signed
+  - A  new rendering  module has  been  added to  create 8-bit  Signed
     Distance Field (SDF)  bitmaps for both outline  and bitmap glyphs.
     The new  rendering mode is called  `FT_RENDER_MODE_SDF`, the pixel
-    mode is `FT_PIXEL_MODE_GRAY16`, and  the corresponding raster flag
+    mode is  `FT_PIXEL_MODE_GRAY8`, and the corresponding  raster flag
     is `FT_RASTER_FLAG_SDF`.
 
     This work was Anuj Verma's GSoC 2020 project.
@@ -72,6 +72,10 @@
 
     This work was Priyesh Kumar's GSoC 2020 project.
 
+  - Improved Meson build support for the library.
+
+  - Meson support to build The FreeType demo programs.
+
   - `ttdebug` didn't show changed point coordinates (bug introduced in
     version 2.10.3).
 
diff --git a/docs/INSTALL.GNU b/docs/INSTALL.GNU
index e446f3b..8810f2a 100644
--- a/docs/INSTALL.GNU
+++ b/docs/INSTALL.GNU
@@ -11,9 +11,6 @@
   1. Install GNU Make
   -------------------
 
-    Because  GNU Make  is  the  only Make  tool  supported to  compile
-    FreeType 2, you should install it on your machine.
-
     The FreeType 2 build system relies on many features special to GNU
     Make.
 
@@ -100,6 +97,28 @@
     step 5.
 
 
+  3a. Use clang instead of gcc
+  ----------------------------
+
+    The `clang'  compiler can  use FreeType's setup  for `gcc';  it is
+    sufficient to set the `CC' variable, for example
+
+      make CC=clang
+
+
+  3b. Compiling with a C++ compiler
+  ---------------------------------
+
+    FreeType can be built with a C++ compiler, for example
+
+      make CC="g++"
+
+    If `clang++' should  be used it is necessary to  also override the
+    `ANSIFLAGS' variable:
+
+      make CC="clang++" ANSIFLAGS=""
+
+
   4. Configure the build system for an unknown platform/compiler
   --------------------------------------------------------------
 
@@ -133,7 +152,8 @@
 
     To  launch  the build,  simply  invoke  GNU  Make again:  The  top
     Makefile will detect the configuration file and run the build with
-    it.
+    it.  If you have used variables in  step 3, you must used the same
+    variables here, too.
 
 
   Final note
diff --git a/include/freetype/freetype.h b/include/freetype/freetype.h
index a66d45a..051f15f 100644
--- a/include/freetype/freetype.h
+++ b/include/freetype/freetype.h
@@ -2457,6 +2457,7 @@
    *
    * @since:
    *   2.4.2
+   *
    */
   FT_EXPORT( FT_Error )
   FT_Reference_Face( FT_Face  face );
@@ -3247,6 +3248,10 @@
    *   delta ::
    *     A pointer a translation vector.  Set this to NULL if you are not
    *     interested in the value.
+   *
+   * @since:
+   *   2.11
+   *
    */
   FT_EXPORT( void )
   FT_Get_Transform( FT_Face     face,
@@ -3267,14 +3272,14 @@
    *   in the @FT_GlyphSlotRec structure gives the format of the returned
    *   bitmap.
    *
-   *   All modes except @FT_RENDER_MODE_MONO and @FT_RENDER_MODE_SDF use 256
-   *   levels of opacity, indicating pixel coverage.  Use linear alpha
-   *   blending and gamma correction to correctly render non-monochrome
-   *   glyph bitmaps onto a surface; see @FT_Render_Glyph.
+   *   All modes except @FT_RENDER_MODE_MONO use 256 levels of opacity,
+   *   indicating pixel coverage.  Use linear alpha blending and gamma
+   *   correction to correctly render non-monochrome glyph bitmaps onto a
+   *   surface; see @FT_Render_Glyph.
    *
-   *   The @FT_RENDER_MODE_SDF is a special render mode that uses up to
-   *   65536 distance values, indicating the signed distance from the grid
-   *   position to the nearest outline.
+   *   The @FT_RENDER_MODE_SDF is a special render mode that uses up to 256
+   *   distance values, indicating the signed distance from the grid position
+   *   to the nearest outline.
    *
    * @values:
    *   FT_RENDER_MODE_NORMAL ::
@@ -4295,6 +4300,10 @@
    *   configured on the @FT_Face through @FT_Set_Var_Design_Coordinates.
    *   This implies that always static (interpolated) values are returned
    *   for both variable and non-variable formats.
+   *
+   * @since:
+   *   2.11
+   *
    */
   typedef enum  FT_PaintFormat_
   {
@@ -4338,6 +4347,10 @@
    *   p ::
    *     An opaque pointer into 'COLR' table data.  The caller must set this
    *     to `NULL` before the first call of @FT_Get_Colorline_Stops.
+   *
+   * @since:
+   *   2.11
+   *
    */
   typedef struct  FT_ColorStopIterator_
   {
@@ -4364,6 +4377,10 @@
    *
    *   alpha ::
    *     Alpha transparency value multiplied with the value from 'CPAL'.
+   *
+   * @since:
+   *   2.11
+   *
    */
   typedef struct  FT_ColorIndex_
   {
@@ -4388,6 +4405,10 @@
    *
    *   color ::
    *     The color information for this stop, see @FT_ColorIndex.
+   *
+   * @since:
+   *   2.11
+   *
    */
   typedef struct  FT_ColorStop_
   {
@@ -4406,6 +4427,10 @@
    *   An enumeration representing the 'Extend' mode of the 'COLR' v1
    *   extensions, see 'https://github.com/googlefonts/colr-gradients-spec'.
    *   It describes how the gradient fill continues at the other boundaries.
+   *
+   * @since:
+   *   2.11
+   *
    */
   typedef enum  FT_PaintExtend_
   {
@@ -4433,6 +4458,10 @@
    *   color_stop_iterator ::
    *     The @FT_ColorStopIterator used to enumerate and retrieve the
    *     actual @FT_ColorStop's.
+   *
+   * @since:
+   *   2.11
+   *
    */
   typedef struct  FT_ColorLine_
   {
@@ -4475,6 +4504,9 @@
    *   dy ::
    *     y translation.
    *
+   * @since:
+   *   2.11
+   *
    */
   typedef struct  FT_Affine_23_
   {
@@ -4493,6 +4525,10 @@
    *   An enumeration listing the 'COLR' v1 composite modes used in
    *   @FT_PaintComposite.  For more details on each paint mode, see
    *   'https://www.w3.org/TR/compositing-1/#porterduffcompositingoperators'.
+   *
+   * @since:
+   *   2.11
+   *
    */
   typedef enum  FT_Composite_Mode_
   {
@@ -4551,6 +4587,10 @@
    *   insert_root_transform ::
    *     An internal boolean to track whether an initial root transform is
    *     to be provided.  Do not set this value.
+   *
+   * @since:
+   *   2.11
+   *
    */
   typedef struct  FT_Opaque_Paint_
   {
@@ -4575,6 +4615,10 @@
    * @fields:
    *   layer_iterator ::
    *     The layer iterator that describes the layers of this paint.
+   *
+   * @since:
+   *   2.11
+   *
    */
   typedef struct  FT_PaintColrLayers_
   {
@@ -4597,6 +4641,10 @@
    * @fields:
    *   color ::
    *     The color information for this solid paint, see @FT_ColorIndex.
+   *
+   * @since:
+   *   2.11
+   *
    */
   typedef struct  FT_PaintSolid_
   {
@@ -4630,6 +4678,10 @@
    *   p2 ::
    *     Optional point~p2 to rotate the gradient (in font units).
    *     Otherwise equal to~p0.
+   *
+   * @since:
+   *   2.11
+   *
    */
   typedef struct  FT_PaintLinearGradient_
   {
@@ -4674,6 +4726,10 @@
    *   r1 ::
    *     The radius of the end circle of the radial gradient (in font
    *     units).
+   *
+   * @since:
+   *   2.11
+   *
    */
   typedef struct  FT_PaintRadialGradient_
   {
@@ -4717,6 +4773,9 @@
    *     specifying degrees.  Values are given counter-clockwise, starting
    *     from the (positive) y~axis.
    *
+   * @since:
+   *   2.11
+   *
    */
   typedef struct  FT_PaintSweepGradient_
   {
@@ -4746,6 +4805,9 @@
    *     The glyph ID from the 'glyf' table, which serves as the contour
    *     information that is filled with paint.
    *
+   * @since:
+   *   2.11
+   *
    */
   typedef struct  FT_PaintGlyph_
   {
@@ -4767,6 +4829,10 @@
    *   glyphID ::
    *     The glyph ID from the `BaseGlyphV1List` table that is drawn for
    *     this paint.
+   *
+   * @since:
+   *   2.11
+   *
    */
   typedef struct  FT_PaintColrGlyph_
   {
@@ -4789,6 +4855,10 @@
    *
    *   affine ::
    *     A 2x3 transformation matrix in @FT_Affine23 format.
+   *
+   * @since:
+   *   2.11
+   *
    */
   typedef struct  FT_PaintTransformed_
   {
@@ -4817,6 +4887,10 @@
    *
    *   dy ::
    *     Translation in y~direction (in font units).
+   *
+   * @since:
+   *   2.11
+   *
    */
   typedef struct  FT_PaintTranslate_
   {
@@ -4852,6 +4926,10 @@
    *   center_y ::
    *     The y~coordinate of the pivot point of the rotation (in font
    *     units).
+   *
+   * @since:
+   *   2.11
+   *
    */
 
   typedef struct  FT_PaintRotate_
@@ -4892,6 +4970,10 @@
    *
    *   center_y ::
    *     The y~coordinate of the pivot point of the skew (in font units).
+   *
+   * @since:
+   *   2.11
+   *
    */
   typedef struct  FT_PaintSkew_
   {
@@ -4928,6 +5010,10 @@
    *   backdrop_paint ::
    *     An @FT_OpaquePaint object referencing the backdrop paint that
    *     `source_paint` is composited onto.
+   *
+   * @since:
+   *   2.11
+   *
    */
   typedef struct  FT_PaintComposite_
   {
@@ -4969,6 +5055,10 @@
    *       * @FT_PaintSkew
    *       * @FT_PaintComposite
    *       * @FT_PaintColrGlyph
+   *
+   * @since:
+   *   2.11
+   *
    */
   typedef struct  FT_COLR_Paint_
   {
@@ -5010,6 +5100,10 @@
    *
    *   FT_COLOR_NO_ROOT_TRANSFORM ::
    *     Do not output an initial root transform.
+   *
+   * @since:
+   *   2.11
+   *
    */
   typedef enum  FT_Color_Root_Transform_
   {
@@ -5100,6 +5194,10 @@
    *   Value~1 if everything is OK.  If no color glyph is found, or the root
    *   paint could not be retrieved, value~0 gets returned.  In case of an
    *   error, value~0 is returned also.
+   *
+   * @since:
+   *   2.11
+   *
    */
   FT_EXPORT( FT_Bool )
   FT_Get_Color_Glyph_Paint( FT_Face                  face,
@@ -5145,6 +5243,10 @@
    * @return:
    *   Value~1 if everything is OK.  Value~0 gets returned when the paint
    *   object can not be retrieved or any other error occurs.
+   *
+   * @since:
+   *   2.11
+   *
    */
   FT_EXPORT( FT_Bool )
   FT_Get_Paint_Layers( FT_Face            face,
@@ -5183,6 +5285,10 @@
    *   Value~1 if everything is OK.  If there are no more color stops,
    *   value~0 gets returned.  In case of an error, value~0 is returned
    *   also.
+   *
+   * @since:
+   *   2.11
+   *
    */
   FT_EXPORT( FT_Bool )
   FT_Get_Colorline_Stops( FT_Face                face,
@@ -5216,6 +5322,10 @@
    * @return:
    *   Value~1 if everything is OK.  Value~0 if no details can be found for
    *   this paint or any other error occured.
+   *
+   * @since:
+   *   2.11
+   *
    */
   FT_EXPORT( FT_Bool )
   FT_Get_Paint( FT_Face         face,
@@ -5313,6 +5423,7 @@
    *
    * @since:
    *   2.3.8
+   *
    */
   FT_EXPORT( FT_UShort )
   FT_Get_FSType_Flags( FT_Face  face );
@@ -5406,6 +5517,7 @@
    *
    * @since:
    *   2.3.6
+   *
    */
   FT_EXPORT( FT_UInt )
   FT_Face_GetCharVariantIndex( FT_Face   face,
@@ -5442,6 +5554,7 @@
    *
    * @since:
    *   2.3.6
+   *
    */
   FT_EXPORT( FT_Int )
   FT_Face_GetCharVariantIsDefault( FT_Face   face,
@@ -5473,6 +5586,7 @@
    *
    * @since:
    *   2.3.6
+   *
    */
   FT_EXPORT( FT_UInt32* )
   FT_Face_GetVariantSelectors( FT_Face  face );
@@ -5506,6 +5620,7 @@
    *
    * @since:
    *   2.3.6
+   *
    */
   FT_EXPORT( FT_UInt32* )
   FT_Face_GetVariantsOfChar( FT_Face   face,
@@ -5540,6 +5655,7 @@
    *
    * @since:
    *   2.3.6
+   *
    */
   FT_EXPORT( FT_UInt32* )
   FT_Face_GetCharsOfVariant( FT_Face   face,
@@ -5875,6 +5991,7 @@
    *
    * @since:
    *   2.3.5
+   *
    */
   FT_EXPORT( FT_Bool )
   FT_Face_CheckTrueTypePatents( FT_Face  face );
@@ -5903,6 +6020,7 @@
    *
    * @since:
    *   2.3.5
+   *
    */
   FT_EXPORT( FT_Bool )
   FT_Face_SetUnpatentedHinting( FT_Face  face,
