summaryrefslogtreecommitdiffstats
path: root/libc/docs/build_system.rst
diff options
context:
space:
mode:
Diffstat (limited to 'libc/docs/build_system.rst')
-rw-r--r--libc/docs/build_system.rst24
1 files changed, 24 insertions, 0 deletions
diff --git a/libc/docs/build_system.rst b/libc/docs/build_system.rst
new file mode 100644
index 00000000000..f34ffe054b4
--- /dev/null
+++ b/libc/docs/build_system.rst
@@ -0,0 +1,24 @@
+LLVM libc build rules
+=====================
+
+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 straighforward
+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 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``.
OpenPOWER on IntegriCloud