[RISCV] Regenerate autogen test to remove spurious diff
[llvm-project.git] / llvm / docs / CommandGuide / llvm-config.rst
blob63658d0d90452435fb6c21df3ae63fec75b5497b
1 llvm-config - Print LLVM compilation options
2 ============================================
4 .. program:: llvm-config
6 SYNOPSIS
7 --------
9 **llvm-config** *option* [*components*...]
11 DESCRIPTION
12 -----------
14 **llvm-config** makes it easier to build applications that use LLVM.  It can
15 print the compiler flags, linker flags and object libraries needed to link
16 against LLVM.
18 EXAMPLES
19 --------
21 To link against the JIT:
23 .. code-block:: sh
25    g++ `llvm-config --cxxflags` -o HowToUseJIT.o -c HowToUseJIT.cpp
26    g++ `llvm-config --ldflags` -o HowToUseJIT HowToUseJIT.o \
27        `llvm-config --libs engine bcreader scalaropts`
29 OPTIONS
30 -------
32 **--assertion-mode**
34  Print the assertion mode used when LLVM was built (ON or OFF).
36 **--bindir**
38  Print the installation directory for LLVM binaries.
40 **--build-mode**
42  Print the build mode used when LLVM was built (e.g. Debug or Release).
44 **--build-system**
46  Print the build system used to build LLVM (e.g. `cmake` or `gn`).
48 **--cflags**
50  Print the C compiler flags needed to use LLVM headers.
52 **--cmakedir**
54  Print the installation directory for LLVM CMake modules.
56 **--components**
58  Print all valid component names.
60 **--cppflags**
62  Print the C preprocessor flags needed to use LLVM headers.
64 **--cxxflags**
66  Print the C++ compiler flags needed to use LLVM headers.
68 **--has-rtti**
70  Print whether or not LLVM was built with rtti (YES or NO).
72 **--help**
74  Print a summary of **llvm-config** arguments.
76 **--host-target**
78  Print the target triple used to configure LLVM.
80 **--ignore-libllvm**
82  Ignore libLLVM and link component libraries instead.
84 **--includedir**
86  Print the installation directory for LLVM headers.
88 **--ldflags**
90  Print the flags needed to link against LLVM libraries.
92 **--libdir**
94  Print the installation directory for LLVM libraries.
96 **--libfiles**
98  Similar to **--libs**, but print the full path to each library file.  This is
99  useful when creating makefile dependencies, to ensure that a tool is relinked if
100  any library it uses changes.
102 **--libnames**
104  Similar to **--libs**, but prints the bare filenames of the libraries
105  without **-l** or pathnames.  Useful for linking against a not-yet-installed
106  copy of LLVM.
108 **--libs**
110  Print all the libraries needed to link against the specified LLVM
111  *components*, including any dependencies.
113 **--link-shared**
115  Link the components as shared libraries.
117 **--link-static**
119  Link the component libraries statically.
121 **--obj-root**
123  Print the object root used to build LLVM.
125 **--prefix**
127  Print the installation prefix for LLVM.
129 **--shared-mode**
131  Print how the provided components can be collectively linked (`shared` or `static`).
133 **--system-libs**
135  Print all the system libraries needed to link against the specified LLVM
136  *components*, including any dependencies.
138 **--targets-built**
140  Print the component names for all targets supported by this copy of LLVM.
142 **--version**
144  Print the version number of LLVM.
147 COMPONENTS
148 ----------
150 To print a list of all available components, run **llvm-config
151 --components**.  In most cases, components correspond directly to LLVM
152 libraries.  Useful "virtual" components include:
154 **all**
156  Includes all LLVM libraries.  The default if no components are specified.
158 **backend**
160  Includes either a native backend or the C backend.
162 **engine**
164  Includes either a native JIT or the bitcode interpreter.
167 EXIT STATUS
168 -----------
170 If **llvm-config** succeeds, it will exit with 0.  Otherwise, if an error
171 occurs, it will exit with a non-zero value.