Browse Source
* libllvm: add llvm-config helper script * libllvm: add components to llvm-config wrapper * libllvm: restructure llvm-config.in * libllvm: remove unsupported gcc flags from llvm-config * libllvm: use full libfile path for --libs * libllvm: fix has_rtti in llvm-config * libllvm: add cmake files path in llvm-configandroid-5
Vishal Biswas
8 years ago
committed by
Fredrik Fornwall
2 changed files with 118 additions and 1 deletions
@ -0,0 +1,105 @@ |
|||
#!/bin/sh |
|||
show_help () { |
|||
echo "usage: llvm-config <OPTION>... [<COMPONENT>...] |
|||
|
|||
Get various configuration information needed to compile programs which use |
|||
LLVM. Typically called from 'configure' scripts. Examples: |
|||
llvm-config --cxxflags |
|||
llvm-config --ldflags |
|||
llvm-config --libs engine bcreader scalaropts |
|||
|
|||
Options: |
|||
--version Print LLVM version. |
|||
--prefix Print the installation prefix. |
|||
--src-root Print the source root LLVM was built from. |
|||
--obj-root Print the object root used to build LLVM. |
|||
--bindir Directory containing LLVM executables. |
|||
--includedir Directory containing LLVM headers. |
|||
--libdir Directory containing LLVM libraries. |
|||
--cppflags C preprocessor flags for files that include LLVM headers. |
|||
--cflags C compiler flags for files that include LLVM headers. |
|||
--cxxflags C++ compiler flags for files that include LLVM headers. |
|||
--ldflags Print Linker flags. |
|||
--system-libs System Libraries needed to link against LLVM components. |
|||
--libs Libraries needed to link against LLVM components. |
|||
--libnames Bare library names for in-tree builds. |
|||
--libfiles Fully qualified library filenames for makefile depends. |
|||
--components List of all possible components. |
|||
--targets-built List of all targets currently built. |
|||
--host-target Target triple used to configure LLVM. |
|||
--build-mode Print build mode of LLVM tree (e.g. Debug or Release). |
|||
--assertion-mode Print assertion mode of LLVM tree (ON or OFF). |
|||
--build-system Print the build system used to build LLVM (always cmake). |
|||
--has-rtti Print whether or not LLVM was built with rtti (YES or NO). |
|||
--has-global-isel Print whether or not LLVM was built with global-isel support (YES or NO). |
|||
--shared-mode Print how the provided components can be collectively linked (\`shared\` or \`static\`). |
|||
--link-shared Link the components as shared libraries. |
|||
--link-static Link the component libraries statically. |
|||
Typical components: |
|||
all All LLVM libraries (default). |
|||
engine Either a native JIT or a bitcode interpreter." |
|||
} |
|||
|
|||
arch=@TERMUX_ARCH@ |
|||
version=@_PKG_MAJOR_VERSION@ |
|||
prefix=@TERMUX_PREFIX@ |
|||
has_rtti=NO |
|||
CPPFLAGS="-I${prefix}/include -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS" |
|||
CFLAGS="${CPPFLAGS} -Os -fPIC -Wall -W -Wno-unused-parameter -Wwrite-strings -Wmissing-field-initializers" |
|||
CFLAGS="${CFLAGS} -pedantic -Wno-long-long -Wdelete-non-virtual-dtor -Werror=date-time -ffunction-sections" |
|||
CFLAGS="${CFLAGS} -fdata-sections -DNDEBUG" |
|||
CXXFLAGS="${CFLAGS} -fvisibility-inlines-hidden -Wcast-qual -Wnon-virtual-dtor -std=c++11 -fno-exceptions" |
|||
if [ "$has_rtti" != "YES" ]; then CXXFLAGS="$CXXFLAGS -fno-rtti"; fi |
|||
LDFLAGS="-L${prefix}/lib" |
|||
LIBFILE="${prefix}/lib/libLLVM-$version.so" |
|||
|
|||
show_components () { |
|||
if [ "$arch" == "x86_64" -o "$arch" == "i686" ]; then arch="x86"; fi |
|||
components="all all-targets analysis $arch ${arch}asmparser ${arch}asmprinter ${arch}codegen ${arch}desc" |
|||
components="$components ${arch}disassembler ${arch}info asmparser asmprinter bitreader bitwriter codegen" |
|||
components="$components core coroutines coverage debuginfocodeview debuginfodwarf debuginfomsf debuginfopdb" |
|||
components="$components demangle engine executionengine globalisel instcombine instrumentation interpreter" |
|||
components="$components ipo irreader libdriver lineeditor linker lto mc mcdisassembler mcjit mcparser" |
|||
components="$components mirparser native nativecodegen objcarcopts object objectyaml option orcjit passes" |
|||
components="$components profiledata runtimedyld scalaropts selectiondag support symbolize tablegen target" |
|||
components="$components transformutils vectorize" |
|||
if [ "$arch" != "arm" ]; then components="$components ${arch}utils"; fi |
|||
echo "$components" |
|||
} |
|||
|
|||
handle_args () { |
|||
case "${1##--}" in |
|||
version) echo "$version";; |
|||
prefix) echo "$prefix";; |
|||
src-root) echo "@TERMUX_PKG_SRCDIR@";; |
|||
obj-root) echo "$prefix";; |
|||
bindir) echo "$prefix/bin";; |
|||
includedir) echo "$prefix/include";; |
|||
libdir) echo "$prefix/lib";; |
|||
cppflags) echo "$CPPFLAGS";; |
|||
cflags) echo "$CFLAGS";; |
|||
cxxflags) echo "$CXXFLAGS";; |
|||
ldflags) echo "$LDFLAGS";; |
|||
system-libs) echo "-lc -ldl -lcurses -lz -lm";; |
|||
libs) echo "-l$LIBFILE";; |
|||
libnames) echo "libLLVM-$version.so";; |
|||
libfiles) echo "$LIBFILE";; |
|||
components) show_components;; |
|||
targets-built) echo "@LLVM_TARGET_ARCH@";; |
|||
host-target) echo "@LLVM_DEFAULT_TARGET_TRIPLE@";; |
|||
build-mode) echo "Release";; |
|||
assertion-mode) echo "OFF";; |
|||
build-system) echo "cmake";; |
|||
has-rtti) echo "$has_rtti";; |
|||
has-global-isel) echo "OFF";; |
|||
shared-mode) echo "shared";; |
|||
cmakedir) echo "$prefix/lib/cmake/llvm";; |
|||
# don't know what these do |
|||
link-shared) ;; |
|||
link-static) ;; |
|||
*) show_help >&2;; |
|||
esac |
|||
} |
|||
|
|||
for arg in $@; do handle_args $arg; done |
|||
|
Loading…
Reference in new issue