.. _cmake_build_rules:

===========================
The libc CMake build system
===========================

At the cost of verbosity, we want to keep the build system of LLVM libc
as simple as possible. We also want to be highly modular with our build
targets. This makes picking and choosing desired pieces a straightforward
task.

Targets for entrypoints
-----------------------

Every entrypoint in LLVM-libc has its own build target. This target is listed
using the ``add_entrypoint_object`` rule. This rule generates a single object
file containing the implementation of the entrypoint.

Targets for redirecting entrypoints are also listed using the
``add_entrypoint_object`` rule. However, one will have to additionally specify
the ``REDIRECTED`` option with the rule.

Targets for entrypoint libraries
--------------------------------

Standards like POSIX require that a libc provide certain library files like
``libc.a``, ``libm.a``, etc. The targets for such library files are listed in
the ``lib`` directory as ``add_entrypoint_library`` targets. An
``add_entrypoint_library`` target  takes a list of ``add_entrypoint_object``
targets and produces a static library containing the object files corresponding
to the ``add_entrypoint_targets``.
