99109276 |
1 | #!/bin/sh |
2 | show_help () { |
3 | echo "usage: llvm-config <OPTION>... [<COMPONENT>...] |
4 | |
5 | Get various configuration information needed to compile programs which use |
6 | LLVM. Typically called from 'configure' scripts. Examples: |
7 | llvm-config --cxxflags |
8 | llvm-config --ldflags |
9 | llvm-config --libs engine bcreader scalaropts |
10 | |
11 | Options: |
12 | --version Print LLVM version. |
13 | --prefix Print the installation prefix. |
14 | --src-root Print the source root LLVM was built from. |
15 | --obj-root Print the object root used to build LLVM. |
16 | --bindir Directory containing LLVM executables. |
17 | --includedir Directory containing LLVM headers. |
18 | --libdir Directory containing LLVM libraries. |
19 | --cppflags C preprocessor flags for files that include LLVM headers. |
20 | --cflags C compiler flags for files that include LLVM headers. |
21 | --cxxflags C++ compiler flags for files that include LLVM headers. |
22 | --ldflags Print Linker flags. |
23 | --system-libs System Libraries needed to link against LLVM components. |
24 | --libs Libraries needed to link against LLVM components. |
25 | --libnames Bare library names for in-tree builds. |
26 | --libfiles Fully qualified library filenames for makefile depends. |
27 | --components List of all possible components. |
28 | --targets-built List of all targets currently built. |
29 | --host-target Target triple used to configure LLVM. |
30 | --build-mode Print build mode of LLVM tree (e.g. Debug or Release). |
31 | --assertion-mode Print assertion mode of LLVM tree (ON or OFF). |
32 | --build-system Print the build system used to build LLVM (always cmake). |
33 | --has-rtti Print whether or not LLVM was built with rtti (YES or NO). |
34 | --has-global-isel Print whether or not LLVM was built with global-isel support (YES or NO). |
35 | --shared-mode Print how the provided components can be collectively linked (\`shared\` or \`static\`). |
36 | --link-shared Link the components as shared libraries. |
37 | --link-static Link the component libraries statically. |
38 | Typical components: |
39 | all All LLVM libraries (default). |
40 | engine Either a native JIT or a bitcode interpreter." |
41 | } |
42 | |
43 | arch=@TERMUX_ARCH@ |
44 | version=@LLVM_VERSION@ |
45 | prefix=@LLVM_BUILD_DIR@ |
46 | has_rtti=NO |
47 | CPPFLAGS="-I@TERMUX_PKG_SRCDIR@/llvm/include -I${prefix}/include -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS" |
48 | CFLAGS="${CPPFLAGS} -Os -fPIC -Wall -W -Wno-unused-parameter -Wwrite-strings -Wmissing-field-initializers" |
49 | CFLAGS="${CFLAGS} -pedantic -Wno-long-long -Wdelete-non-virtual-dtor -Werror=date-time -ffunction-sections" |
50 | CFLAGS="${CFLAGS} -fdata-sections -DNDEBUG" |
51 | CXXFLAGS="${CFLAGS} -fvisibility-inlines-hidden -Wcast-qual -Wnon-virtual-dtor -std=c++11 -fno-exceptions" |
52 | if [ "$has_rtti" != "YES" ]; then CXXFLAGS="$CXXFLAGS -fno-rtti"; fi |
53 | LDFLAGS="-L${prefix}/lib" |
54 | LIBFILE="${prefix}/lib/libLLVM-$version.so" |
55 | LLVM_LIBRARIES="-lLLVMTableGen -lLLVMLibDriver -lLLVMOption -lLLVMSymbolize -lLLVMDebugInfoPDB -lLLVMDebugInfoDWARF -lLLVMTestingSupport -lLLVMAArch64Disassembler -lLLVMAArch64CodeGen -lLLVMAArch64AsmParser -lLLVMAArch64Desc -lLLVMAArch64Info -lLLVMAArch64AsmPrinter -lLLVMAArch64Utils -lLLVMARMDisassembler -lLLVMARMCodeGen -lLLVMARMAsmParser -lLLVMARMDesc -lLLVMARMInfo -lLLVMARMAsmPrinter -lLLVMLineEditor -lLLVMMIRParser -lLLVMLTO -lLLVMPasses -lLLVMObjCARCOpts -lLLVMOrcJIT -lLLVMInterpreter -lLLVMObjectYAML -lLLVMX86Disassembler -lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMGlobalISel -lLLVMSelectionDAG -lLLVMAsmPrinter -lLLVMDebugInfoCodeView -lLLVMDebugInfoMSF -lLLVMCodeGen -lLLVMX86Desc -lLLVMMCDisassembler -lLLVMX86Info -lLLVMX86AsmPrinter -lLLVMX86Utils -lLLVMMCJIT -lLLVMExecutionEngine -lLLVMTarget -lLLVMRuntimeDyld -lgtest_main -lgtest -lLLVMCoroutines -lLLVMipo -lLLVMInstrumentation -lLLVMVectorize -lLLVMScalarOpts -lLLVMLinker -lLLVMIRReader -lLLVMAsmParser -lLLVMDlltoolDriver -lLLVMInstCombine -lLLVMTransformUtils -lLLVMBitWriter -lLLVMAnalysis -lLLVMCoverage -lLLVMProfileData -lLLVMObject -lLLVMMCParser -lLLVMMC -lLLVMBitReader -lLLVMCore -lLLVMBinaryFormat -lLLVMSupport -lLLVMDemangle" |
56 | |
57 | show_components () { |
58 | if [ "$arch" == "x86_64" -o "$arch" == "i686" ]; then arch="x86"; fi |
59 | components="all all-targets analysis $arch ${arch}asmparser ${arch}asmprinter ${arch}codegen ${arch}desc" |
60 | components="$components ${arch}disassembler ${arch}info asmparser asmprinter bitreader bitwriter codegen" |
61 | components="$components core coroutines coverage debuginfocodeview debuginfodwarf debuginfomsf debuginfopdb" |
62 | components="$components demangle engine executionengine globalisel instcombine instrumentation interpreter" |
63 | components="$components ipo irreader libdriver lineeditor linker lto mc mcdisassembler mcjit mcparser" |
64 | components="$components mirparser native nativecodegen objcarcopts object objectyaml option orcjit passes" |
65 | components="$components profiledata runtimedyld scalaropts selectiondag support symbolize tablegen target" |
66 | components="$components transformutils vectorize" |
67 | if [ "$arch" != "arm" ]; then components="$components ${arch}utils"; fi |
68 | echo "$components" |
69 | } |
70 | |
71 | handle_args () { |
72 | case "${1##--}" in |
73 | version) echo "$version";; |
74 | prefix) echo "$prefix";; |
75 | src-root) echo "@TERMUX_PKG_SRCDIR@";; |
76 | obj-root) echo "$prefix";; |
77 | bindir) echo "$prefix/bin";; |
78 | includedir) echo "@TERMUX_PKG_SRCDIR@/llvm/include";; |
79 | libdir) echo "$prefix/lib";; |
80 | cppflags) echo "$CPPFLAGS";; |
81 | cflags) echo "$CFLAGS";; |
82 | cxxflags) echo "$CXXFLAGS";; |
83 | ldflags) echo "$LDFLAGS";; |
84 | system-libs) echo "-lc -ldl -lncurses -lz -lm";; |
85 | libs) echo "$LLVM_LIBRARIES";; |
86 | libnames) echo "libLLVM-$version.so";; |
87 | libfiles) echo "$LIBFILE";; |
88 | components) show_components;; |
89 | targets-built) echo "@LLVM_TARGETS@";; |
90 | host-target) echo "@LLVM_DEFAULT_TARGET_TRIPLE@";; |
91 | build-mode) echo "Release";; |
92 | assertion-mode) echo "OFF";; |
93 | build-system) echo "cmake";; |
94 | has-rtti) echo "$has_rtti";; |
95 | has-global-isel) echo "OFF";; |
96 | shared-mode) echo "shared";; |
97 | cmakedir) echo "$prefix/lib/cmake/llvm";; |
98 | # don't know what these do |
99 | link-shared) ;; |
100 | link-static) ;; |
101 | *) show_help >&2;; |
102 | esac |
103 | } |
104 | |
105 | for arg in $@; do handle_args $arg; done |
106 | |