1LLVM-libc Source Tree Layout 2============================ 3 4At the top-level, LLVM-libc source tree is organized in to the following 5directories:: 6 7 + libc 8 - cmake 9 - docs 10 - include 11 - lib 12 - loader 13 - src 14 + utils 15 - build_scripts 16 - testing 17 - www 18 19Each of these directories is explained in detail below. 20 21The ``cmake`` directory 22----------------------- 23 24The ``cmake`` directory contains the implementations of LLVM-libc's CMake build 25rules. 26 27The ``docs`` directory 28---------------------- 29 30The ``docs`` directory contains design docs and also informative documents like 31this document on source layout. 32 33The ``include`` directory 34------------------------- 35 36The ``include`` directory contains: 37 381. Self contained public header files - These are header files which are 39 already in the form that get installed when LLVM-libc is installed on a user's 40 computer. 412. ``*.h.def`` and ``*.h.in`` files - These files are used to construct the 42 generated public header files. 433. A ``CMakeLists.txt`` file - This file lists the targets for the self 44 contained and generated public header files. 45 46The ``lib`` directory 47--------------------- 48 49This directory contains a ``CMakeLists.txt`` file listing the targets for the 50public libraries ``libc.a``, ``libm.a`` etc. 51 52The ``loader`` directory 53------------------------ 54 55This directory contains the implementations of the application loaders like 56``crt1.o`` etc. 57 58The ``src`` directory 59--------------------- 60 61This directory contains the implementations of the llvm-libc entrypoints. It is 62further organized as follows: 63 641. There is a toplevel CMakeLists.txt file. 652. For every public header file provided by llvm-libc, there exists a 66 corresponding directory in the ``src`` directory. The name of the directory 67 is same as the base name of the header file. For example, the directory 68 corresponding to the public ``math.h`` header file is named ``math``. The 69 implementation standard document explains more about the *header* 70 directories. 71 72The ``www`` directory 73--------------------- 74 75The ``www`` directory contains the HTML content of libc.llvm.org 76 77The ``utils/build_scripts`` directory 78------------------------------------- 79 80This directory contains scripts which support the build system, tooling etc. 81 82The ``utils/testing`` directory 83------------------------------- 84 85This directory contains testing infrastructure. 86