| # llvm-config - Print LLVM compilation options |
| |
| ```{program} llvm-config |
| ``` |
| |
| ## SYNOPSIS |
| |
| **llvm-config** *option* \[*components*...\] |
| |
| ## DESCRIPTION |
| |
| **llvm-config** makes it easier to build applications that use LLVM. It can |
| print the compiler flags, linker flags and object libraries needed to link |
| against LLVM. |
| |
| ## EXAMPLES |
| |
| To link against the JIT: |
| |
| ```sh |
| g++ `llvm-config --cxxflags` -o HowToUseJIT.o -c HowToUseJIT.cpp |
| g++ `llvm-config --ldflags` -o HowToUseJIT HowToUseJIT.o \ |
| `llvm-config --libs engine bcreader scalaropts` |
| ``` |
| |
| ## OPTIONS |
| |
| :::{option} --assertion-mode |
| Print the assertion mode used when LLVM was built (ON or OFF). |
| ::: |
| |
| :::{option} --bindir |
| Print the installation directory for LLVM binaries. |
| ::: |
| |
| :::{option} --build-mode |
| Print the build mode used when LLVM was built (e.g. Debug or Release). |
| ::: |
| |
| :::{option} --build-system |
| Print the build system used to build LLVM (e.g. `cmake` or `gn`). |
| ::: |
| |
| :::{option} --cflags |
| Print the C compiler flags needed to use LLVM headers. |
| ::: |
| |
| :::{option} --cmakedir |
| Print the installation directory for LLVM CMake modules. |
| ::: |
| |
| :::{option} --components |
| Print all valid component names. |
| ::: |
| |
| :::{option} --cppflags |
| Print the C preprocessor flags needed to use LLVM headers. |
| ::: |
| |
| :::{option} --cxxflags |
| Print the C++ compiler flags needed to use LLVM headers. |
| ::: |
| |
| :::{option} --has-rtti |
| Print whether or not LLVM was built with rtti (YES or NO). |
| ::: |
| |
| :::{option} --help |
| Print a summary of **llvm-config** arguments. |
| ::: |
| |
| :::{option} --host-target |
| Print the target triple used to configure LLVM. |
| ::: |
| |
| :::{option} --ignore-libllvm |
| Ignore libLLVM and link component libraries instead. |
| ::: |
| |
| :::{option} --includedir |
| Print the installation directory for LLVM headers. |
| ::: |
| |
| :::{option} --ldflags |
| Print the flags needed to link against LLVM libraries. |
| ::: |
| |
| :::{option} --libdir |
| Print the installation directory for LLVM libraries. |
| ::: |
| |
| :::{option} --libfiles |
| Similar to **--libs**, but print the full path to each library file. This is |
| useful when creating makefile dependencies, to ensure that a tool is relinked if |
| any library it uses changes. |
| ::: |
| |
| :::{option} --libnames |
| Similar to **--libs**, but prints the bare filenames of the libraries |
| without **-l** or pathnames. Useful for linking against a not-yet-installed |
| copy of LLVM. |
| ::: |
| |
| :::{option} --libs |
| Print all the libraries needed to link against the specified LLVM |
| *components*, including any dependencies. |
| ::: |
| |
| :::{option} --link-shared |
| Link the components as shared libraries. |
| ::: |
| |
| :::{option} --link-static |
| Link the component libraries statically. |
| ::: |
| |
| :::{option} --obj-root |
| Print the object root used to build LLVM. |
| ::: |
| |
| :::{option} --prefix |
| Print the installation prefix for LLVM. |
| ::: |
| |
| :::{option} --quote-paths |
| Quote and escape paths when needed, most notably when a quote, space, backslash |
| or dollar sign characters are present in the path. |
| ::: |
| |
| :::{option} --shared-mode |
| Print how the provided components can be collectively linked (`shared` or `static`). |
| ::: |
| |
| :::{option} --system-libs |
| Print all the system libraries needed to link against the specified LLVM |
| *components*, including any dependencies. |
| ::: |
| |
| :::{option} --targets-built |
| Print the component names for all targets supported by this copy of LLVM. |
| ::: |
| |
| :::{option} --version |
| Print the version number of LLVM. |
| ::: |
| |
| ## COMPONENTS |
| |
| To print a list of all available components, run **llvm-config |
| --components**. In most cases, components correspond directly to LLVM |
| libraries. Useful "virtual" components include: |
| |
| **all** |
| : Includes all LLVM libraries. The default if no components are specified. |
| |
| **backend** |
| : Includes either a native backend or the C backend. |
| |
| **engine** |
| : Includes either a native JIT or the bitcode interpreter. |
| |
| ## EXIT STATUS |
| |
| If **llvm-config** succeeds, it will exit with 0. Otherwise, if an error |
| occurs, it will exit with a non-zero value. |
| |