TERMUX_PKG_HOMEPAGE=https://github.com/ldc-developers/ldc
TERMUX_PKG_DESCRIPTION="D programming language compiler, built with LLVM"
-_PKG_MAJOR_VERSION=1.4
+_PKG_MAJOR_VERSION=1.5
TERMUX_PKG_VERSION=${_PKG_MAJOR_VERSION}.0
TERMUX_PKG_SRCURL=https://github.com/ldc-developers/ldc/releases/download/v${TERMUX_PKG_VERSION}/ldc-${TERMUX_PKG_VERSION}-src.tar.gz
-TERMUX_PKG_SHA256=dd29a5833ae02307c387e87d861d5de588b9b16ea3574ef96f8da1f81bbd7c5c
+TERMUX_PKG_SHA256=03659a4b9cafff0cf8d537469dd15579f097c7748a342ea2a5770fa0edd3a084
TERMUX_PKG_DEPENDS="clang"
TERMUX_PKG_HOSTBUILD=true
TERMUX_PKG_BLACKLISTED_ARCHES="aarch64,i686,x86_64"
TERMUX_PKG_MAINTAINER="Joakim @joakim-noah"
termux_step_post_extract_package () {
- local LLVM_SRC_VERSION=4.0.1
+ local LLVM_SRC_VERSION=5.0.0-2
termux_download \
https://github.com/ldc-developers/llvm/releases/download/ldc-v${LLVM_SRC_VERSION}/llvm-${LLVM_SRC_VERSION}.src.tar.xz \
$TERMUX_PKG_CACHEDIR/llvm-${LLVM_SRC_VERSION}.src.tar.xz \
- 53dee2054a4da0a292fc55830119ae167812cc0eed5cc670223adc5a8731f71b
+ 7bb7621ecb05ad9a9a2165bae69c0548c179fdaf7e12e8458897c5e8bc1a6dae
tar xf $TERMUX_PKG_CACHEDIR/llvm-${LLVM_SRC_VERSION}.src.tar.xz
mv llvm-${LLVM_SRC_VERSION}.src llvm
- DMD_COMPILER_VERSION=2.076.0
+ DMD_COMPILER_VERSION=2.076.1
termux_download \
http://downloads.dlang.org/releases/2.x/${DMD_COMPILER_VERSION}/dmd.${DMD_COMPILER_VERSION}.linux.tar.xz \
$TERMUX_PKG_CACHEDIR/dmd.${DMD_COMPILER_VERSION}.linux.tar.xz \
- 3e3fc9fbdc61681edea837e9d095a341dda6c325ab4dbc437017239d576ba433
+ 1d0b8fb6aadc80f6c5dfe7acf46fc17d2b3de24a0bf46e947352094bb21fef04
termux_download \
https://github.com/dlang/tools/archive/v${DMD_COMPILER_VERSION}.tar.gz \
$TERMUX_PKG_CACHEDIR/tools-v${DMD_COMPILER_VERSION}.tar.gz \
- 5f58dc6492e1abb539291a5fbf2bfb06eed818bd158912f090b55cd712c2a34a
+ cf42d4e5f9ceb5acfb5bd3000dd9c1ed7120b136f252b33b07fb026f36970e77
tar xf $TERMUX_PKG_CACHEDIR/tools-v${DMD_COMPILER_VERSION}.tar.gz
mv tools-${DMD_COMPILER_VERSION} rdmd
sed "s#\@TERMUX_C_COMPILER\@#$TERMUX_STANDALONE_TOOLCHAIN/bin/$TERMUX_HOST_PLATFORM-clang#" \
$TERMUX_PKG_BUILDER_DIR/ldc-config-stdlib.patch.beforehostbuild.in > \
$TERMUX_PKG_BUILDER_DIR/ldc-config-stdlib.patch.beforehostbuild
- sed -i "s#\@TERMUX_C_FLAGS\@#-march=armv7-a -mfpu=neon -mfloat-abi=softfp -mthumb -Oz -I$TERMUX_PREFIX/include#" \
- $TERMUX_PKG_BUILDER_DIR/ldc-config-stdlib.patch.beforehostbuild
+
sed "s#\@TERMUX_PKG_HOSTBUILD\@#$TERMUX_PKG_HOSTBUILD_DIR#" $TERMUX_PKG_BUILDER_DIR/ldc-linker-flags.patch.in > \
$TERMUX_PKG_BUILDER_DIR/ldc-linker-flags.patch
- sed "s#\@TERMUX_PKG_BUILD\@#$TERMUX_PKG_BUILDDIR#" $TERMUX_PKG_BUILDER_DIR/ldc-llvm-config.patch.in > \
- $TERMUX_PKG_BUILDER_DIR/ldc-llvm-config.patch
- sed -i "s#\@TERMUX_PKG_SRC\@#$TERMUX_PKG_SRCDIR#" $TERMUX_PKG_BUILDER_DIR/ldc-llvm-config.patch
+
+ sed $TERMUX_PKG_BUILDER_DIR/llvm-config.in \
+ -e "s|@LLVM_VERSION@|$LLVM_SRC_VERSION|g" \
+ -e "s|@LLVM_BUILD_DIR@|$TERMUX_PKG_BUILDDIR/llvm|g" \
+ -e "s|@TERMUX_PKG_SRCDIR@|$TERMUX_PKG_SRCDIR|g" \
+ -e "s|@LLVM_TARGETS@|ARM AArch64 X86|g" \
+ -e "s|@LLVM_DEFAULT_TARGET_TRIPLE@|armv7-none-linux-android|g" \
+ -e "s|@TERMUX_ARCH@|$TERMUX_ARCH|g" > $TERMUX_PKG_BUILDDIR/llvm-config
+ chmod 755 $TERMUX_PKG_BUILDDIR/llvm-config
}
termux_step_host_build () {
tar xf $TERMUX_PKG_CACHEDIR/dmd.${DMD_COMPILER_VERSION}.linux.tar.xz
termux_setup_cmake
- cmake -G "Unix Makefiles" $TERMUX_PKG_SRCDIR/llvm \
+ termux_setup_ninja
+ cmake -GNinja $TERMUX_PKG_SRCDIR/llvm \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_TARGETS_TO_BUILD=ARM \
-DLLVM_DEFAULT_TARGET_TRIPLE=armv7-none-linux-android \
-DLLVM_BUILD_TOOLS=OFF \
-DLLVM_BUILD_UTILS=OFF
- make -j $TERMUX_MAKE_PROCESSES all llvm-config
+ ninja -j $TERMUX_MAKE_PROCESSES all llvm-config
mkdir ldc-bootstrap
cd ldc-bootstrap
export DMD="$TERMUX_PKG_HOSTBUILD_DIR/dmd2/linux/bin64/dmd"
- cmake -G "Unix Makefiles" $TERMUX_PKG_SRCDIR \
+
+ cmake -GNinja $TERMUX_PKG_SRCDIR \
+ -DD_FLAGS="-w;-mcpu=cortex-a8" \
+ -DRT_CFLAGS="-march=armv7-a -mfpu=neon -mfloat-abi=softfp -mthumb -Oz -I$TERMUX_PREFIX/include" \
-DLLVM_CONFIG="$TERMUX_PKG_HOSTBUILD_DIR/bin/llvm-config"
- make -j $TERMUX_MAKE_PROCESSES druntime-ldc phobos2-ldc \
+ ninja -j $TERMUX_MAKE_PROCESSES druntime-ldc phobos2-ldc \
druntime-ldc-debug phobos2-ldc-debug ldmd2
cd ..
}
termux_step_pre_configure () {
rm $TERMUX_PKG_BUILDER_DIR/ldc-config-stdlib.patch.beforehostbuild
rm $TERMUX_PKG_BUILDER_DIR/ldc-linker-flags.patch
- rm $TERMUX_PKG_BUILDER_DIR/ldc-llvm-config.patch
TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" -DLLVM_DEFAULT_TARGET_TRIPLE=armv7a-linux-androideabi"
TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" -DLLVM_TARGET_ARCH=ARM -DLLVM_TARGETS_TO_BUILD=AArch64;ARM;X86"
TERMUX_PKG_BUILDDIR=$OLD_TERMUX_PKG_BUILDDIR
cd "$TERMUX_PKG_BUILDDIR"
- TERMUX_PKG_EXTRA_CONFIGURE_ARGS=""
+ mv llvm-config llvm/bin
+ TERMUX_PKG_EXTRA_CONFIGURE_ARGS="-DLLVM_CONFIG=$TERMUX_PKG_BUILDDIR/llvm/bin/llvm-config"
export DMD="$TERMUX_PKG_HOSTBUILD_DIR/ldc-bootstrap/bin/ldmd2"
termux_step_configure_cmake
fi
# Build the rdmd scripting wrapper and the dub package manager
- D_FLAGS="-w -dw -O -inline -release"
+ D_FLAGS="-w -de -O -inline -release -mcpu=cortex-a8"
$DMD $D_FLAGS -c $TERMUX_PKG_SRCDIR/rdmd/rdmd.d -of=$TERMUX_PKG_BUILDDIR/bin/rdmd.o
D_LDFLAGS="-fuse-ld=bfd -L${TERMUX_PKG_HOSTBUILD_DIR}/ldc-bootstrap/lib -lphobos2-ldc -ldruntime-ldc -Wl,--gc-sections -ldl -lm -Wl,--fix-cortex-a8 -fPIE -pie -Wl,-z,nocopyreloc ${LDFLAGS}"
$CC $TERMUX_PKG_BUILDDIR/bin/rdmd.o $D_LDFLAGS -o $TERMUX_PKG_BUILDDIR/bin/rdmd
index 32795da6..091d344b 100644
--- a/runtime/CMakeLists.txt
+++ b/runtime/CMakeLists.txt
-@@ -78,6 +78,7 @@ file(GLOB_RECURSE DRUNTIME_D_GCSTUB ${RUNTIME_DIR}/src/gcstub/*.d)
- list(REMOVE_ITEM DRUNTIME_D ${DRUNTIME_D_GCSTUB})
- # remove some modules in rt/
- list(REMOVE_ITEM DRUNTIME_D
-+ ${RUNTIME_DIR}/src/core/stdc/tgmath.d
- ${RUNTIME_DIR}/src/rt/alloca.d
- ${RUNTIME_DIR}/src/rt/deh.d
- ${RUNTIME_DIR}/src/rt/deh_win32.d
-@@ -551,6 +551,10 @@ include(profile-rt/DefineBuildProfileRT.cmake)
+@@ -551,6 +551,9 @@ include(profile-rt/DefineBuildProfileRT.cmake)
#
# Set up build and install targets
#
+
-+set(RT_CFLAGS "@TERMUX_C_FLAGS@")
+set(CMAKE_C_COMPILER @TERMUX_C_COMPILER@)
+set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER})
- include(ExtractDMDSystemLinker)
+ #include(ExtractDMDSystemLinker)
-+ set(D_LINKER_ARGS "-fuse-ld=bfd;-L@TERMUX_PKG_HOSTBUILD@/ldc-bootstrap/lib;-lphobos2-ldc;-ldruntime-ldc;-Wl,--gc-sections;-ldl;-lm")
++ set(D_LINKER_ARGS "-fuse-ld=bfd;-L@TERMUX_PKG_HOSTBUILD@/ldc-bootstrap/lib;-lphobos2-ldc;-ldruntime-ldc;-Wl,--gc-sections")
message(STATUS "Host D compiler linker program: ${D_LINKER_COMMAND}")
message(STATUS "Host D compiler linker flags: ${D_LINKER_ARGS}")
list(APPEND LDC_LINKERFLAG_LIST ${D_LINKER_ARGS})
+++ /dev/null
-diff --git a/cmake/Modules/FindLLVM.cmake b/cmake/Modules/FindLLVM.cmake
-index a6a0b0b7..06d6c1c1 100644
---- a/cmake/Modules/FindLLVM.cmake
-+++ b/cmake/Modules/FindLLVM.cmake
-@@ -35,11 +35,12 @@ set(llvm_config_names llvm-config-5.0 llvm-config50
- llvm-config-3.8 llvm-config38
- llvm-config-3.7 llvm-config37
- llvm-config)
--find_program(LLVM_CONFIG
-- NAMES ${llvm_config_names}
-- PATHS ${LLVM_ROOT_DIR}/bin NO_DEFAULT_PATH
-- DOC "Path to llvm-config tool.")
--find_program(LLVM_CONFIG NAMES ${llvm_config_names})
-+set(LLVM_CONFIG "/bin/ls")
-+#find_program(LLVM_CONFIG
-+# NAMES ${llvm_config_names}
-+# PATHS ${LLVM_ROOT_DIR}/bin NO_DEFAULT_PATH
-+# DOC "Path to llvm-config tool.")
-+#find_program(LLVM_CONFIG NAMES ${llvm_config_names})
-
- # Prints a warning/failure message depending on the required/quiet flags. Copied
- # from FindPackageHandleStandardArgs.cmake because it doesn't seem to be exposed.
-@@ -175,12 +176,12 @@ else()
- endif()
- endmacro()
-
-- llvm_set(VERSION_STRING version)
-- llvm_set(CXXFLAGS cxxflags)
-- llvm_set(HOST_TARGET host-target)
-- llvm_set(INCLUDE_DIRS includedir true)
-- llvm_set(ROOT_DIR prefix true)
-- llvm_set(ENABLE_ASSERTIONS assertion-mode)
-+ set(LLVM_VERSION_STRING "4.0.1")
-+ set(LLVM_CXXFLAGS "-I@TERMUX_PKG_SRC@/llvm/include -I@TERMUX_PKG_BUILD@/llvm/include -fPIC -fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wcovered-switch-default -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wstring-conversion -Werror=date-time -std=c++11 -ffunction-sections -fdata-sections -O3 -DNDEBUG -fno-exceptions -fno-rtti -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS")
-+ set(LLVM_HOST_TARGET "armv7-none-linux-android")
-+ set(LLVM_INCLUDE_DIRS "@TERMUX_PKG_SRC@/llvm/include")
-+ set(LLVM_ROOT_DIR "@TERMUX_PKG_BUILD@/llvm")
-+ set(LLVM_ENABLE_ASSERTIONS "OFF")
-
- if(${LLVM_VERSION_STRING} MATCHES "^3\\.[0-8][\\.0-9A-Za-z]*")
- # Versions below 3.9 do not support components debuginfocodeview, globalisel
-@@ -207,13 +208,13 @@ else()
- list(REMOVE_ITEM LLVM_FIND_COMPONENTS "debuginfomsf" index)
- endif()
-
-- llvm_set(LDFLAGS ldflags)
-+ set(LLVM_LIBRARY_DIRS "${LLVM_ROOT_DIR}/lib")
-+ set(LLVM_LDFLAGS "-L${LLVM_LIBRARY_DIRS}")
- # In LLVM 3.5+, the system library dependencies (e.g. "-lz") are accessed
- # using the separate "--system-libs" flag.
-- llvm_set(SYSTEM_LIBS system-libs)
-+ set(LLVM_SYSTEM_LIBS "-ldl -lncurses -lz -lm")
- string(REPLACE "\n" " " LLVM_LDFLAGS "${LLVM_LDFLAGS} ${LLVM_SYSTEM_LIBS}")
-- llvm_set(LIBRARY_DIRS libdir true)
-- llvm_set_libs(LIBRARIES libs)
-+ set(LLVM_LIBRARIES "-lLLVMTableGen;-lLLVMLibDriver;-lLLVMOption;-lLLVMSymbolize;-lLLVMDebugInfoPDB;-lLLVMDebugInfoDWARF;-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;-lLLVMInstCombine;-lLLVMTransformUtils;-lLLVMBitWriter;-lLLVMAnalysis;-lLLVMCoverage;-lLLVMProfileData;-lLLVMObject;-lLLVMMCParser;-lLLVMMC;-lLLVMBitReader;-lLLVMCore;-lLLVMSupport;-lLLVMDemangle")
- # LLVM bug: llvm-config --libs tablegen returns -lLLVM-3.8.0
- # but code for it is not in shared library
- if("${LLVM_FIND_COMPONENTS}" MATCHES "tablegen")
-@@ -223,7 +224,7 @@ else()
- set(LLVM_LIBRARIES "${LLVM_LIBRARIES};-lLLVMTableGen")
- endif()
- endif()
-- llvm_set(TARGETS_TO_BUILD targets-built)
-+ set(LLVM_TARGETS_TO_BUILD "AArch64 ARM X86")
- string(REGEX MATCHALL "${pattern}[^ ]+" LLVM_TARGETS_TO_BUILD ${LLVM_TARGETS_TO_BUILD})
- endif()
-
--- /dev/null
+#!/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=@LLVM_VERSION@
+prefix=@LLVM_BUILD_DIR@
+has_rtti=NO
+CPPFLAGS="-I@TERMUX_PKG_SRCDIR@/llvm/include -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"
+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"
+
+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 "@TERMUX_PKG_SRCDIR@/llvm/include";;
+ libdir) echo "$prefix/lib";;
+ cppflags) echo "$CPPFLAGS";;
+ cflags) echo "$CFLAGS";;
+ cxxflags) echo "$CXXFLAGS";;
+ ldflags) echo "$LDFLAGS";;
+ system-libs) echo "-lc -ldl -lncurses -lz -lm";;
+ libs) echo "$LLVM_LIBRARIES";;
+ libnames) echo "libLLVM-$version.so";;
+ libfiles) echo "$LIBFILE";;
+ components) show_components;;
+ targets-built) echo "@LLVM_TARGETS@";;
+ 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
+
+++ /dev/null
-diff --git a/rdmd/rdmd.d b/rdmd/rdmd.d
-index 06f46d7..af22c35 100755
---- a/rdmd/rdmd.d
-+++ b/rdmd/rdmd.d
-@@ -386,7 +386,13 @@ bool inALibrary(string source, string object)
-
- private @property string myOwnTmpDir()
- {
-- auto tmpRoot = userTempDir ? userTempDir : tempDir();
-+ import std.file : empty, exists;
-+ import std.process : environment;
-+
-+ string shellTemp = environment.get("TMPDIR");
-+ string defaultTemp = !shellTemp.empty && shellTemp.exists ? shellTemp
-+ : tempDir();
-+ auto tmpRoot = userTempDir ? userTempDir : defaultTemp;
- version (Posix)
- {
- import core.sys.posix.unistd;