README.git
==========


repository issues
-----------------

FreeType's official repository site is

  https://gitlab.freedesktop.org/freetype  ,

from  which the  'freetype.git' and  'freetype-demos.git' repositories
can be cloned in the usual way.

  git clone https://gitlab.freedesktop.org/freetype/freetype.git
  git clone https://gitlab.freedesktop.org/freetype/freetype-demos.git

If you  want to  use the  Savannah mirror  instead, you  have to  do a
slightly different  incantation because  the repository  names contain
digit '2' for historical reasons.

  git clone \
    https://git.savannah.nongnu.org/git/freetype/freetype2.git \
    freetype
  git clone \
    https://git.savannah.nongnu.org/git/freetype/freetype2-demos.git \
    freetype-demos


standard builds with `configure`
--------------------------------

The git repository doesn't contain pre-built configuration scripts for
UNIXish platforms.  To generate them say

  sh autogen.sh

which in turn depends on the following packages:

  automake (1.10.1)
  libtool (2.2.4)
  autoconf (2.62)

The versions given  in parentheses are known to  work.  Newer versions
should  work too,  of course.   Note  that `autogen.sh`  also sets  up
proper file permissions for the `configure` and auxiliary scripts.

The `autogen.sh` script checks whether the versions of the above three
tools match the numbers above.  Otherwise it will complain and suggest
either  upgrading or  using  environment variables  to  point to  more
recent versions of the required tools.

Note that  `aclocal` is provided  by the 'automake' package  on Linux,
and that `libtoolize` is called `glibtoolize` on Darwin (OS X).


alternative build methods
-------------------------

For static  builds that don't use  platform-specific optimizations, no
configure script is necessary at all; saying

  make setup ansi
  make

should work on all platforms that have GNU `make` (or `makepp`).

A build  with `cmake`  or `meson`  can be done  directly from  the git
repository.  However, if you want  to use the `FT_DEBUG_LOGGING` macro
(see file `docs/DEBUG` for more information) it is currently mandatory
to execute `autogen.sh`  in advance; this script clones  the 'dlg' git
submodule and copies some files into FreeType's source tree.


contributing
------------

If you want to contribute to FreeType it is recommended to install the
`git-merge-changelog` program – we use a `ChangeLog` file, which often
prevents   simple   merging   due  to   conflicts.    Most   GNU/Linux
distributions  have a  package  for this  program;  otherwise you  can
install it via the 'gnulib' git repository.  Detailed instructions can
be found at the beginning of

  https://git.savannah.gnu.org/cgit/gnulib.git/tree/lib/git-merge-changelog.c

To make  it actually work, add  to file `.git/config` in  the FreeType
git repository (or to your `$HOME/.gitconfig` file) the lines

  [merge "merge-changelog"]
     name = GNU-style ChangeLog merge driver
     driver = /usr/local/bin/git-merge-changelog %O %A %B


----------------------------------------------------------------------

Copyright (C) 2005-2021 by
David Turner, Robert Wilhelm, and Werner Lemberg.

This  file is  part of  the FreeType  project, and  may only  be used,
modified,  and distributed  under the  terms of  the  FreeType project
license,  LICENSE.TXT.  By  continuing to  use, modify,  or distribute
this file you  indicate that you have read  the license and understand
and accept it fully.


--- end of README.git ---
