Commit | Line | Data |
---|---|---|
a8abc4a6 VB |
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@ | |
3cf404e0 | 44 | version=@TERMUX_PKG_VERSION@ |
a8abc4a6 VB |
45 | prefix=@TERMUX_PREFIX@ |
46 | has_rtti=NO | |
47 | CPPFLAGS="-I${prefix}/include -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS" | |
3cf404e0 | 48 | CFLAGS="${CPPFLAGS} ${CFLAGS} -fPIC -Werror=date-time -Wall -W -Wno-unused-parameter -Wwrite-strings -Wmissing-field-initializers -pedantic \ |
49 | -Wno-long-long -Wcovered-switch-default -Wdelete-non-virtual-dtor -Wstring-conversion \ | |
50 | -ffunction-sections -fdata-sections -Os -DNDEBUG -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS \ | |
51 | -D__STDC_LIMIT_MACROS" | |
a8abc4a6 VB |
52 | CXXFLAGS="${CFLAGS} -fvisibility-inlines-hidden -Wcast-qual -Wnon-virtual-dtor -std=c++11 -fno-exceptions" |
53 | if [ "$has_rtti" != "YES" ]; then CXXFLAGS="$CXXFLAGS -fno-rtti"; fi | |
54 | LDFLAGS="-L${prefix}/lib" | |
55 | LIBFILE="${prefix}/lib/libLLVM-$version.so" | |
56 | ||
3cf404e0 | 57 | components="aarch64 aarch64asmparser aarch64asmprinter aarch64codegen aarch64desc \ |
58 | aarch64disassembler aarch64info aarch64utils all all-targets amdgpu amdgpuasmparser amdgpuasmprinter \ | |
59 | amdgpucodegen amdgpudesc amdgpudisassembler amdgpuinfo amdgpuutils analysis arm armasmparser armasmprinter \ | |
60 | armcodegen armdesc armdisassembler arminfo armutils asmparser asmprinter binaryformat bitreader bitwriter \ | |
61 | bpf bpfasmparser bpfasmprinter bpfcodegen bpfdesc bpfdisassembler bpfinfo codegen core coroutines coverage \ | |
62 | debuginfocodeview debuginfodwarf debuginfomsf debuginfopdb demangle dlltooldriver engine executionengine \ | |
63 | fuzzmutate globalisel hexagon hexagonasmparser hexagoncodegen hexagondesc hexagondisassembler hexagoninfo \ | |
64 | instcombine instrumentation interpreter ipo irreader lanai lanaiasmparser lanaiasmprinter lanaicodegen \ | |
65 | lanaidesc lanaidisassembler lanaiinfo libdriver lineeditor linker lto mc mcdisassembler mcjit mcparser \ | |
66 | mips mipsasmparser mipsasmprinter mipscodegen mipsdesc mipsdisassembler mipsinfo mirparser msp430 \ | |
67 | msp430asmprinter msp430codegen msp430desc msp430info native nativecodegen nvptx nvptxasmprinter \ | |
68 | nvptxcodegen nvptxdesc nvptxinfo objcarcopts object objectyaml option orcjit passes powerpc powerpcasmparser \ | |
69 | powerpcasmprinter powerpccodegen powerpcdesc powerpcdisassembler powerpcinfo profiledata runtimedyld scalaropts \ | |
70 | selectiondag sparc sparcasmparser sparcasmprinter sparccodegen sparcdesc sparcdisassembler sparcinfo support symbolize \ | |
71 | systemz systemzasmparser systemzasmprinter systemzcodegen systemzdesc systemzdisassembler systemzinfo tablegen target \ | |
72 | transformutils vectorize webassembly webassemblyasmprinter webassemblycodegen webassemblydesc webassemblydisassembler \ | |
73 | webassemblyinfo windowsmanifest x86 x86asmparser x86asmprinter x86codegen x86desc x86disassembler x86info x86utils xcore \ | |
74 | xcoreasmprinter xcorecodegen xcoredesc xcoredisassembler xcoreinfo" | |
75 | static_libs="-lLLVMLTO -lLLVMPasses -lLLVMObjCARCOpts -lLLVMMIRParser -lLLVMSymbolize -lLLVMDebugInfoPDB -lLLVMDebugInfoDWARF \ | |
76 | -lLLVMCoverage -lLLVMTableGen -lLLVMDlltoolDriver -lLLVMOrcJIT -lLLVMWebAssemblyDisassembler -lLLVMWebAssemblyCodeGen \ | |
77 | -lLLVMWebAssemblyDesc -lLLVMWebAssemblyInfo -lLLVMWebAssemblyAsmPrinter -lLLVMXCoreDisassembler -lLLVMXCoreCodeGen \ | |
78 | -lLLVMXCoreDesc -lLLVMXCoreInfo -lLLVMXCoreAsmPrinter -lLLVMSystemZDisassembler -lLLVMSystemZCodeGen -lLLVMSystemZAsmParser \ | |
79 | -lLLVMSystemZDesc -lLLVMSystemZInfo -lLLVMSystemZAsmPrinter -lLLVMSparcDisassembler -lLLVMSparcCodeGen -lLLVMSparcAsmParser \ | |
80 | -lLLVMSparcDesc -lLLVMSparcInfo -lLLVMSparcAsmPrinter -lLLVMPowerPCDisassembler -lLLVMPowerPCCodeGen -lLLVMPowerPCAsmParser \ | |
81 | -lLLVMPowerPCDesc -lLLVMPowerPCInfo -lLLVMPowerPCAsmPrinter -lLLVMNVPTXCodeGen -lLLVMNVPTXDesc -lLLVMNVPTXInfo -lLLVMNVPTXAsmPrinter \ | |
82 | -lLLVMMSP430CodeGen -lLLVMMSP430Desc -lLLVMMSP430Info -lLLVMMSP430AsmPrinter -lLLVMMipsDisassembler -lLLVMMipsCodeGen -lLLVMMipsAsmParser \ | |
83 | -lLLVMMipsDesc -lLLVMMipsInfo -lLLVMMipsAsmPrinter -lLLVMLanaiDisassembler -lLLVMLanaiCodeGen -lLLVMLanaiAsmParser -lLLVMLanaiDesc \ | |
84 | -lLLVMLanaiAsmPrinter -lLLVMLanaiInfo -lLLVMHexagonDisassembler -lLLVMHexagonCodeGen -lLLVMHexagonAsmParser -lLLVMHexagonDesc -lLLVMHexagonInfo \ | |
85 | -lLLVMBPFDisassembler -lLLVMBPFCodeGen -lLLVMBPFAsmParser -lLLVMBPFDesc -lLLVMBPFInfo -lLLVMBPFAsmPrinter -lLLVMARMDisassembler \ | |
86 | -lLLVMARMCodeGen -lLLVMARMAsmParser -lLLVMARMDesc -lLLVMARMInfo -lLLVMARMAsmPrinter -lLLVMARMUtils -lLLVMAMDGPUDisassembler \ | |
87 | -lLLVMAMDGPUCodeGen -lLLVMAMDGPUAsmParser -lLLVMAMDGPUDesc -lLLVMAMDGPUInfo -lLLVMAMDGPUAsmPrinter -lLLVMAMDGPUUtils \ | |
88 | -lLLVMAArch64Disassembler -lLLVMAArch64CodeGen -lLLVMAArch64AsmParser -lLLVMAArch64Desc -lLLVMAArch64Info -lLLVMAArch64AsmPrinter \ | |
89 | -lLLVMAArch64Utils -lLLVMObjectYAML -lLLVMLibDriver -lLLVMOption -lLLVMWindowsManifest -lLLVMFuzzMutate -lLLVMX86Disassembler \ | |
90 | -lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMGlobalISel -lLLVMSelectionDAG -lLLVMAsmPrinter -lLLVMDebugInfoCodeView -lLLVMDebugInfoMSF \ | |
91 | -lLLVMX86Desc -lLLVMMCDisassembler -lLLVMX86Info -lLLVMX86AsmPrinter -lLLVMX86Utils -lLLVMMCJIT -lLLVMLineEditor -lLLVMInterpreter \ | |
92 | -lLLVMExecutionEngine -lLLVMRuntimeDyld -lLLVMCodeGen -lLLVMTarget -lLLVMCoroutines -lLLVMipo -lLLVMInstrumentation -lLLVMVectorize \ | |
93 | -lLLVMScalarOpts -lLLVMLinker -lLLVMIRReader -lLLVMAsmParser -lLLVMInstCombine -lLLVMTransformUtils -lLLVMBitWriter -lLLVMAnalysis \ | |
94 | -lLLVMProfileData -lLLVMObject -lLLVMMCParser -lLLVMMC -lLLVMBitReader -lLLVMCore -lLLVMBinaryFormat -lLLVMSupport -lLLVMDemangle" | |
95 | shared_libs="-lLLVM-$version" | |
96 | libs=$shared_libs | |
a8abc4a6 VB |
97 | handle_args () { |
98 | case "${1##--}" in | |
3cf404e0 | 99 | link-shared) libs=$shared_libs ;; |
100 | link-static) libs=$static_libs ;; | |
101 | version) echo "$version\n";; | |
a8abc4a6 VB |
102 | prefix) echo "$prefix";; |
103 | src-root) echo "@TERMUX_PKG_SRCDIR@";; | |
104 | obj-root) echo "$prefix";; | |
105 | bindir) echo "$prefix/bin";; | |
106 | includedir) echo "$prefix/include";; | |
107 | libdir) echo "$prefix/lib";; | |
108 | cppflags) echo "$CPPFLAGS";; | |
109 | cflags) echo "$CFLAGS";; | |
110 | cxxflags) echo "$CXXFLAGS";; | |
111 | ldflags) echo "$LDFLAGS";; | |
112 | system-libs) echo "-lc -ldl -lcurses -lz -lm";; | |
3cf404e0 | 113 | libs) echo "$libs";; |
a8abc4a6 VB |
114 | libnames) echo "libLLVM-$version.so";; |
115 | libfiles) echo "$LIBFILE";; | |
3cf404e0 | 116 | components) echo "$components";; |
117 | targets-built) echo "AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430 NVPTX PowerPC Sparc SystemZ X86 XCore WebAssembly";; | |
a8abc4a6 VB |
118 | host-target) echo "@LLVM_DEFAULT_TARGET_TRIPLE@";; |
119 | build-mode) echo "Release";; | |
120 | assertion-mode) echo "OFF";; | |
121 | build-system) echo "cmake";; | |
122 | has-rtti) echo "$has_rtti";; | |
123 | has-global-isel) echo "OFF";; | |
124 | shared-mode) echo "shared";; | |
125 | cmakedir) echo "$prefix/lib/cmake/llvm";; | |
a8abc4a6 VB |
126 | *) show_help >&2;; |
127 | esac | |
128 | } | |
129 | ||
130 | for arg in $@; do handle_args $arg; done | |
131 |