# Example setup file for ConTeXt distribution # # Author: Hans Hagen # Patches: Arthur R. & Mojca M. # # Usage: # . setuptex [texroot] # # On the first run also execute: # mktexlsr # texexec --make --alone # # PLATFORM # # we will try to guess the platform first # (needs to be kept in sync with first-setup.sh and mtxrun) # if yours is missing, let us know system=`uname -s` cpu=`uname -m` case "$system" in # linux Linux) if command -v ldd >/dev/null && ldd --version 2>&1 | grep -E '^musl' >/dev/null then libc=musl else libc=glibc fi case "$cpu" in i*86) case "$libc" in glibc) platform="linux" ;; musl) platform="linuxmusl" ;; esac ;; x86_64|ia64) case "$libc" in glibc) platform="linux-64" ;; musl) platform="linuxmusl-64" ;; esac ;; # a little bit of cheating with ppc64 (won't work on Gentoo) ppc|ppc64) platform="linux-ppc" ;; # we currently support just mipsel, but Debian is lying (reports mips64) # we need more hacks to fix the situation, this is just a temporary solution mips|mips64|mipsel|mips64el) platform="linux-mipsel" ;; armv7l) platform="linux-armhf" # machine id output by uname(1) is insufficent to determine whether this # is a soft or hard float system so we check ourselves. # a) binutils, this should work almost everywhere if $(which readelf >/dev/null 2>&1); then readelf -A /proc/self/exe | grep -q '^ \+Tag_ABI_VFP_args' if [ ! $? ]; then platform="linux-armel" fi # b) debian-specific fallback elif $(which dpkg >/dev/null 2>&1); then if [ "$(dpkg --print-architecture)" = armel ]; then platform="linux-armel" fi fi # else go with hard fp ;; *) platform="unknown" ;; esac ;; # Mac OS X Darwin) case "$cpu" in i*86) platform="osx-intel" ;; x86_64) platform="osx-64" ;; ppc*|powerpc|power*|Power*) platform="osx-ppc" ;; *) platform="unknown" ;; esac ;; # FreeBSD FreeBSD|freebsd) case "$cpu" in i*86) platform="freebsd" ;; x86_64) platform="freebsd" ;; amd64) platform="freebsd-amd64" ;; *) platform="unknown" ;; esac ;; # OpenBSD OpenBSD) case "$cpu" in i*86) platform="openbsd" ;; amd64) platform="openbsd-amd64" ;; *) platform="unknown" ;; esac ;; # kFreeBSD (Debian) GNU/kFreeBSD) case "$cpu" in i*86) platform="kfreebsd-i386" ;; x86_64|amd64) platform="kfreebsd-amd64" ;; *) platform="unknown" ;; esac ;; # MSYS2 MSYS_NT-10.0) case "$cpu" in i*86) platform="win32" ;; x86_64) platform="win64" ;; *) platform="unknown" ;; esac ;; # cygwin CYGWIN) case "$cpu" in i*86) platform="cygwin" ;; x86_64|ia64) platform="cygwin-64" ;; *) platform="unknown" ;; esac ;; # SunOS/Solaris SunOS) case "$cpu" in sparc) platform="solaris-sparc" ;; i86pc) platform="solaris-intel" ;; *) platform="unknown" ;; esac ;; *) platform="unknown" esac # temporary fix for Snow Leopard if test "$platform" = "osx-intel"; then # running Snow Leopard or later if test `uname -r|cut -f1 -d"."` -ge 10 ; then # working on 64-bit hardware if test `sysctl -n hw.cpu64bit_capable` = 1; then platform="osx-64" fi fi fi if test "$platform" = "unknown" ; then echo "Error: your system \"$system $cpu\" is not supported yet." echo "Please report to the ConTeXt mailing-list (ntg-context@ntg.nl)" elif test "$platform" = "linux-ppc" ; then echo "Error: support for your system \"$platform\" has been dropped." echo "Please ask on to the ConTeXt mailing-list if you still need it (ntg-context@ntg.nl)" fi # # PATH # # this resolves to path of the setuptex script # We use $0 for determine the path to the script, except for: # * bash where $0 always is bash; here we use BASH_SOURCE # * ksh93 where we use ${.sh.file} # Thanks to Vasile Gaburici and Alessandro Perucchi for reporting this # * http://www.ntg.nl/pipermail/ntg-context/2008/033953.html # * http://www.ntg.nl/pipermail/ntg-context/2012/068658.html if [ z"$BASH_SOURCE" != z ]; then SCRIPTPATH="$BASH_SOURCE" elif [ z"$KSH_VERSION" != z ]; then SCRIPTPATH="${.sh.file}" else SCRIPTPATH="$0" fi OWNPATH=$(cd -P -- "$(dirname -- "$SCRIPTPATH")" && pwd -P) # but one can also call # . setuptex path-to-tree TEXROOT="" # first check if any path has been provided in the argument, and try to use that one if [ $# -ne 0 ] ; then # TODO: resolve any errors ARGPATH=$(cd -P -- "$(dirname -- "$1")" && pwd -P) && ARGPATH=$ARGPATH/$(basename -- "$1") if test -f "$ARGPATH/texmf/tex/plain/base/plain.tex" ; then if [ -d "$ARGPATH/texmf-$platform/bin" ]; then TEXROOT="$ARGPATH" else echo "Binaries for platform '$platform' are missing." echo "(There is no folder \"$ARGPATH/texmf-$platform/bin\")" fi else echo "The argument \"$ARGPATH\" is not a valid TEXROOT path." echo "(There is no file \"$ARGPATH/texmf/tex/plain/base/plain.tex\")" if [ -f "$OWNPATH/texmf/tex/plain/base/plain.tex" ]; then TEXROOT="$OWNPATH" fi fi else if [ -f "$OWNPATH/texmf/tex/plain/base/plain.tex" ]; then if [ -d "$OWNPATH/texmf-$platform/bin" ]; then TEXROOT="$OWNPATH" else echo "Binaries for platform '$platform' are missing." echo "(There is no folder \"$OWNPATH/texmf-$platform/bin\")" fi else echo "\"$OWNPATH\" is not a valid TEXROOT path." echo "(There is no file \"$OWNPATH/texmf/tex/plain/base/plain.tex\")" fi fi if [ "$TEXROOT" != "" ]; then # for Alan Braslau's server :) if [ "x$PS1" != "x" ] ; then echo "Setting \"$TEXROOT\" as ConTeXt root." fi # ConTeXt binaries have to be added to PATH TEXMFOS=$TEXROOT/texmf-$platform export PATH=$TEXMFOS/bin:$PATH # unset variables that won't be used lately unset platform cpu system OWNPATH SCRIPTPATH ARGPATH TEXMFOS # not sure why this would be needed # export CTXMINIMAL=yes else echo "provide a proper tex root (like '. setuptex /something/tex')" ; fi