fi
-DEFAULT_BUILD_TRIPLE="${CFG_CPUTYPE}-${CFG_OSTYPE}"
+DEFAULT_BUILD="${CFG_CPUTYPE}-${CFG_OSTYPE}"
CFG_SRC_DIR="$(cd $(dirname $0) && pwd)/"
CFG_BUILD_DIR="$(pwd)/"
valopt prefix "/usr/local" "set installation prefix"
valopt local-rust-root "/usr/local" "set prefix for local rust binary"
valopt llvm-root "" "set LLVM root"
-valopt build-triple "${DEFAULT_BUILD_TRIPLE}" "LLVM build triple"
-valopt host-triples "${CFG_BUILD_TRIPLE}" "LLVM host triples"
-valopt target-triples "${CFG_HOST_TRIPLES}" "LLVM target triples"
valopt android-cross-path "/opt/ndk_standalone" "Android NDK standalone path"
valopt mingw32-cross-path "" "MinGW32 cross compiler path"
+valopt build "${DEFAULT_BUILD}" "GNUs ./configure syntax LLVM build triple"
+valopt host "${CFG_BUILD}" "GNUs ./configure syntax LLVM host triples"
+valopt target "${CFG_HOST}" "GNUs ./configure syntax LLVM target triples"
+
+valopt localstatedir "/var/lib" "local state directory"
+valopt sysconfdir "/etc" "install system configuration files"
+
+valopt datadir "${CFG_PREFIX}/share" "install data"
+valopt infodir "${CFG_PREFIX}/share/info" "install additional info"
+valopt mandir "${CFG_PREFIX}/share/man" "install man pages in PATH"
+valopt libdir "${CFG_PREFIX}/lib" "install libraries"
+
# Validate Options
step_msg "validating $CFG_SELF args"
validate_opt
# extract the first 2 version fields, ignore everything else
sed 's/pandoc \([0-9]*\)\.\([0-9]*\).*/\1 \2/')
+ MIN_PV_MAJOR="1"
+ MIN_PV_MINOR="9"
# these patterns are shell globs, *not* regexps
PV_MAJOR=${PV_MAJOR_MINOR% *}
PV_MINOR=${PV_MAJOR_MINOR#* }
- if [ "$PV_MAJOR" -lt "1" ] || [ "$PV_MINOR" -lt "8" ]
+ if [ "$PV_MAJOR" -lt "$MIN_PV_MAJOR" ] || [ "$PV_MINOR" -lt "$MIN_PV_MINOR" ]
then
- step_msg "pandoc $PV_MAJOR.$PV_MINOR is too old. disabling"
+ step_msg "pandoc $PV_MAJOR.$PV_MINOR is too old. Need at least $MIN_PV_MAJOR.$MIN_PV_MINOR. Disabling"
BAD_PANDOC=1
fi
fi
fi
fi
+BIN_SUF=
+if [ $CFG_OSTYPE = "pc-mingw32" ]
+then
+ BIN_SUF=.exe
+fi
+
if [ ! -z "$CFG_ENABLE_LOCAL_RUST" ]
then
- if [ ! -f ${CFG_LOCAL_RUST_ROOT}/bin/rustc ]
+ if [ ! -f ${CFG_LOCAL_RUST_ROOT}/bin/rustc${BIN_SUF} ]
then
err "no local rust to use"
else
- LRV=`${CFG_LOCAL_RUST_ROOT}/bin/rustc --version`
- step_msg "using rustc at: ${CFG_LOCAL_RUST_ROOT} with version: " $LRV
+ LRV=`${CFG_LOCAL_RUST_ROOT}/bin/rustc${BIN_SUF} --version`
+ step_msg "using rustc at: ${CFG_LOCAL_RUST_ROOT} with version: $LRV"
fi
fi
fi
# a little post-processing of various config values
-
CFG_PREFIX=${CFG_PREFIX%/}
-CFG_HOST_TRIPLES="$(echo $CFG_HOST_TRIPLES | tr ',' ' ')"
-CFG_TARGET_TRIPLES="$(echo $CFG_TARGET_TRIPLES | tr ',' ' ')"
-CFG_SUPPORTED_TARGET_TRIPLES="$(grep ^CC_*=* $CFG_SRC_DIR/mk/platform.mk | sed -e 's/^CC_//' -e 's/\([^=]*\).*/\1/' | xargs)"
+CFG_MANDIR=${CFG_MANDIR%/}
+CFG_HOST="$(echo $CFG_HOST | tr ',' ' ')"
+CFG_TARGET="$(echo $CFG_TARGET | tr ',' ' ')"
+CFG_SUPPORTED_TARGET="$(grep ^CC_*=* $CFG_SRC_DIR/mk/platform.mk | sed -e 's/^CC_//' -e 's/\([^=]*\).*/\1/' | xargs)"
# copy host-triples to target-triples so that hosts are a subset of targets
V_TEMP=""
-for i in $CFG_HOST_TRIPLES $CFG_TARGET_TRIPLES;
+for i in $CFG_HOST $CFG_TARGET;
do
echo "$V_TEMP" | grep -qF $i || V_TEMP="$V_TEMP${V_TEMP:+ }$i"
done
-CFG_TARGET_TRIPLES=$V_TEMP
+CFG_TARGET=$V_TEMP
# check target-specific tool-chains
-for i in $CFG_TARGET_TRIPLES
+for i in $CFG_TARGET
do
L_CHECK=false
- for j in $CFG_SUPPORTED_TARGET_TRIPLES
+ for j in $CFG_SUPPORTED_TARGET
do
if [ $i = $j ]
then
fi
;;
+ arm-apple-darwin)
+ if [ $CFG_OSTYPE != apple-darwin ]
+ then
+ err "The iOS target is only supported on Mac OS X"
+ fi
+ ;;
+
*)
;;
esac
make_dir $i
done
-for t in $CFG_HOST_TRIPLES
+for t in $CFG_HOST
do
make_dir $t/llvm
done
-for t in $CFG_HOST_TRIPLES
+for t in $CFG_HOST
do
make_dir $t/rustllvm
done
-for t in $CFG_TARGET_TRIPLES
+for t in $CFG_TARGET
do
make_dir $t/rt
for s in 0 1 2 3
do
make_dir $t/rt/stage$s
+ make_dir $t/rt/libuv
+ make_dir $t/rt/libuv/src/ares
+ make_dir $t/rt/libuv/src/eio
+ make_dir $t/rt/libuv/src/ev
for i in \
- isaac linenoise sync test \
+ isaac sync test \
arch/i386 arch/x86_64 arch/arm arch/mips \
- libuv libuv/src/ares libuv/src/eio libuv/src/ev \
- jemalloc
+ sundown/src sundown/html
do
make_dir $t/rt/stage$s/$i
done
CFG_LIBDIR=bin
fi
-for h in $CFG_HOST_TRIPLES
+for h in $CFG_HOST
do
- for t in $CFG_TARGET_TRIPLES
+ for t in $CFG_TARGET
do
for i in 0 1 2 3
do
# Configure llvm, only if necessary
step_msg "looking at LLVM"
CFG_LLVM_SRC_DIR=${CFG_SRC_DIR}src/llvm/
-for t in $CFG_HOST_TRIPLES
+for t in $CFG_HOST
do
do_reconfigure=1
putvar CFG_CPUTYPE
putvar CFG_CONFIGURE_ARGS
putvar CFG_PREFIX
-putvar CFG_BUILD_TRIPLE
-putvar CFG_HOST_TRIPLES
-putvar CFG_TARGET_TRIPLES
+putvar CFG_BUILD
+putvar CFG_HOST
+putvar CFG_TARGET
putvar CFG_C_COMPILER
putvar CFG_LIBDIR
putvar CFG_DISABLE_MANAGE_SUBMODULES
putvar CFG_ANDROID_CROSS_PATH
putvar CFG_MINGW32_CROSS_PATH
-
-if [ ! -z "$CFG_ENABLE_PAX_FLAGS" ]
-then
- putvar CFG_ENABLE_PAX_FLAGS
- putvar CFG_PAXCTL
-fi
+putvar CFG_MANDIR
# Avoid spurious warnings from clang by feeding it original source on
# ccache-miss rather than preprocessed input.
putvar CFG_LLVM_ROOT
putvar CFG_LLVM_SRC_DIR
-for t in $CFG_HOST_TRIPLES
+for t in $CFG_HOST
do
CFG_LLVM_BUILD_DIR=$(echo CFG_LLVM_BUILD_DIR_${t} | tr - _)
CFG_LLVM_INST_DIR=$(echo CFG_LLVM_INST_DIR_${t} | tr - _)