home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
-
- ################################################################
- # Basic IO:
- ################################################################
-
- ################################################################
- # read: called with the name of a variable and (optionally) a
- # different message text. Keeps the old value of the
- # variable, if the empty string in entered.
- ################################################################
- gets()
- {
- gets_var=$1; gets_text=${2-$gets_var}
- eval old=\$$gets_var
- eval $echon \""New value for $gets_text [$old]: "\"
- read $gets_var
- eval test -z \"\$$gets_var\" && eval $gets_var=\'$old\'
- }
-
- ################################################################
- # getopt: get a menu choice.
- # $1: string with valid characters
- # $2: message for prompting
- ################################################################
- getopt()
- {
- chars=$1; msg=$2
- while true; do
- #$echon "$msg ([$chars]): "
- $echon "$msg: " >&2
- read ans
- ans=`echo $ans | tr '[a-z]' '[A-Z]'`
- case "$ans" in
- [$chars])
- echo "$ans"
- return
- esac
- done
- }
-
- ################################################################
- # toolge: given the name of a variable, toogle switches between
- # the values ' ' and X.
- ################################################################
- toggle()
- {
- if eval test \"\$$1\" = X; then
- eval $1=\' \'
- else
- eval $1=X
- fi
- }
-
- ################################################################
- # This tricky function displays the value of a variable that can
- # contain newline characters. Variables will be expanded, too.
- # Arguments:
- # 1: the name of the variable
- ################################################################
- textvar_show()
- {
- OLDIFS=$IFS; IFS=;
- eval echo \"`eval echo \\$${1}`\"
- IFS=$OLDIFS
- }
-
- readln()
- {
- $echon 'Press return to continue... '
- read foo
- }
-
- help()
- {
- var=$1
- cls
- textvar_show $var 2>&1 | eval $PAGER
- echo
- readln
- }
-
- ################################################################
- # Use the yesno functions to ask the user a simple yes/no
- # question.
- # Arguments:
- # $1: test to display for the question (" (Y/N)? " will
- # automatically be appended).
- ################################################################
- yesno()
- {
- while true; do
- $echon "$1 (Y/N)? "
- read ans
- case $ans in
- y|Y) return 0;;
- n|N) return 1;;
- esac
- done
- }
-
- ################################################################
- # A set of functions the might do an echo without linefeed in
- # the end. Function find_echo sets the variable "echon" to a
- # suitable function.
- ################################################################
- echo_a() { echo -n "$@"; }
- echo_b() { echo "$@\c"; }
- echo_c() { echo -e "$@\c"; }
- echo_d() { /bin/echo -n "$@"; }
- echo_e() { /bin/echo "$@\c"; }
- echo_f() { /bin/echo -e "$@\c"; }
-
- ################################################################
- # Test which of the above functions does the trick. We set
- # the variable "echon" to the first function that works
- # correctly.
- ################################################################
- find_echo()
- {
- for i in a b c d e f; do
- test "`echo_$i c``echo_$i a`" = ca && echon=echo_$i && return
- done
- echon=echo
- }
-
-
- ################################################################
- # series and packages management:
- ################################################################
-
- ###############################################################################
- # The series structure:
- # s_${series}_la: "list of all packages"
- # s_${series}_lf: "list of packages we found on the disk"
- # s_${series}_ls: "list of selected packages"
- # s_${series}_mis: "list of packages that are missing"
- # s_${series}_nf: "number of packages we find"
- # s_${series}_ns: "number of selected packages"
- # s_${series}_nmis: "number of packages that are missing"
- # s_${series}_du: "disk space usage of all packages found"
- # s_${series}_dus: "disk space usage of selected packages"
- # s_${series}_h: "help text"
- ###############################################################################
-
- ###############################################################################
- # The package structure:
- # p_${package}_n: "the name of the package"
- # p_${package}_s: "is the package selected?"
- # p_${package}_l: "level: required, recommended or optional"
- # p_${package}_da: "did we find the package?"
- # p_${package}_fn: "the filename of a package the we found"
- # p_${package}_h: "help text"
- ###############################################################################
-
- allseries_locate()
- {
- for al_series in $S_all_la;
- do
- series_locate $al_series;
- done
- }
-
- allseries_locate_check()
- {
- notall=false
- hasbin=false
- test "$this_platform" != "" &&
- eval test \"\$p_${this_platform}_da\" = true &&
- hasbin=true
- for alc_series in $S_all_la; do
- test $alc_series = bin && $hasbin && continue
- eval alc_all_packages=\"\$s_${alc_series}_la\"
- for alc_p in $alc_all_packages; do
- if eval test \"\$p_${alc_p}_da\" = false; then
- notall=true
- eval echo \""Warning: package not found: \${p_${alc_p}_d-$alc_p} (series: $alc_series)."\"
- fi
- done
- done
- if test "$notall" = true; then
- echo
- echo "Notice: ignore the warnings, if the packages are missing intentionally."
- echo
- $echon "Press return to continue or Control-C to abort... "
- read foo
- fi
- }
-
- series_locate()
- {
- sl_series=$1
- eval sl_all_packages=\"\$s_${sl_series}_la\"
- eval dft_dir=\"\$s_${sl_series}_d\"
- lf=; mis=; nmis=0; nf=0
- for sl_p in $sl_all_packages; do
- eval bn=\${p_${sl_p}_d-$sl_p}
- fn=
- test -f $here/$dft_dir/$bn.tar.gz && fn=$here/$dft_dir/$bn.tar.gz
- test -f $here/$bn.tar.gz && fn=$here/$bn.tar.gz
- if test -z "$fn"; then
- eval p_${sl_p}_da=false
- eval p_${sl_p}_fn=
-
- mis="$mis $sl_p"
- nmis=`expr $nmis + 1`
- else
- eval p_${sl_p}_da=true
- eval p_${sl_p}_fn=$fn
-
- lf="$lf $sl_p"
- nf=`expr $nf + 1`
- fi
- done
- eval s_${sl_series}_lf=\"$lf\"
- eval s_${sl_series}_mis=\"$mis\"
- eval s_${sl_series}_nmis=$nmis
- eval s_${sl_series}_nf=$nf
- setlength s_${sl_series}_nf 2
- }
-
- series_select_all()
- {
- ssa_series=$1
- eval all_packages=\"\$s_${ssa_series}_lf\"
- for ssa_p in $all_packages; do
- package_select $ssa_p
- done
- series_stat $ssa_series
- }
-
- series_deselect_all()
- {
- sda_series=$1
- eval all_packages=\"\$s_${sda_series}_lf\"
- for sda_p in $all_packages; do
- package_deselect $sda_p
- done
- series_stat $sda_series
- }
-
- series_stat()
- {
- series=$1
- dus=0
- ns=0
- ls=
- eval ss_all_packages=\"\$s_${series}_lf\"
- for ss_p in $ss_all_packages; do
- eval \$p_${ss_p}_s || continue
- eval newdu=\"\$p_${ss_p}_du\"
- if test -z "$newdu"; then
- echo "unknown disk space usage for package: $ss_p"
- newdu=0
- fi
- ls="$ls $ss_p"
- ns=`expr $ns + 1`
- dus=`expr $dus + $newdu`
- done
- eval s_${series}_dus=\$dus
- setlength s_${series}_dus 6
- eval s_${series}_ns=\$ns
- setlength s_${series}_ns 2
- eval s_${series}_ls=\$ls
- }
-
- nobin_stat()
- {
- dus=0; nf=0; ns=0;
- for ns_series in $S_nobin_la; do
- eval dus=\`expr \$dus + \$s_${ns_series}_dus\`
- eval nf=\` expr \$nf + \$s_${ns_series}_nf\`
- eval ns=\` expr \$ns + \$s_${ns_series}_ns\`
- done
- S_nobin_dus=$dus; setlength S_nobin_dus 6
- S_nobin_nf=$nf; setlength S_nobin_nf 2
- S_nobin_ns=$ns; setlength S_nobin_ns 2
- total_stat
- }
-
- total_stat()
- {
- s_total_dus=`expr $s_bin_dus + $S_nobin_dus`; setlength s_total_dus 6
- s_total_nf=`expr $s_bin_nf + $S_nobin_nf`; setlength s_total_nf 2
- s_total_ns=`expr $s_bin_ns + $S_nobin_ns`; setlength s_total_du 2
- }
-
- package_select() { eval p_${1}_s=true; }
- package_deselect() { eval p_${1}_s=false; }
-
- series_list()
- {
- sl_series=$1
- cls
- echo "Series \`\`$sl_series'' statistics:"; echo
- echo " package name size selected"
- echo " --------------------------------------------"
- eval sl_all_p=\"\$s_${sl_series}_lf\"
- for sl_p in $sl_all_p; do
- eval sl_n=\"\$p_${sl_p}_n\"
- eval sl_du=\"\$p_${sl_p}_du\"
- eval sl_s=\"\$p_${sl_p}_s\"
- if $sl_s; then sl_s='[X]'; else sl_s='[ ]'; fi
- setlength sl_n 30
- setlength sl_du 6
- echo "$sl_n ${sl_du}k $sl_s"
- done
- eval sl_s_dus=\"\$s_${sl_series}_dus\"
- setlength sl_s_dus 6
- echo " --------------------------------------------"
- echo " selected size: ${sl_s_dus}k"
- echo
- echo
- readln
- }
-
- series_init()
- {
- $echon "Locating packages... "; allseries_locate; echo "Done."
- $echon "Initializing series... "
- for si_series in $S_nobin_la; do
- series_select_all $si_series
- done
- echo "Done."
- series_deselect_all bin
- test -z "$this_platform" || {
- this_platform_set "$this_platform"
- package_select "$this_platform"
- series_stat bin
- }
- allseries_locate_check
- }
-
- this_platform_set()
- {
- this_platform="$1"
- for tps_p in $s_bin_lf; do
- eval p_${tps_p}_l=optional
- done
- series_deselect_all bin
- if test -z "$this_platform"; then
- this_platform_n=
- this_platform_d=
- else
- package_select ${this_platform}
- series_stat bin
- eval this_platform_n=\$p_${this_platform}_n
- eval this_platform_d=\$p_${this_platform}_d
- eval p_${this_platform}_l=required
- fi
- nobin_stat
- }
-
- ################################################################
- #debugging:
- ################################################################
- series_dbg()
- {
- series=$1
-
- eval echo \""all packages: '\$s_${series}_la'"\"
- eval echo \""default dir: '\$s_${series}_d'"\"
- eval echo \""selected: '\$s_${series}_ls'"\"
- eval echo \""found: '\$s_${series}_lf'"\"
- eval echo \""missing: '\$s_${series}_mis'"\"
- eval echo \""anz found: '\$s_${series}_nf'"\"
- eval echo \""anz missing: '\$s_${series}_nmis'"\"
- eval echo \""anz selected: '\$s_${series}_ns'"\"
- eval echo \""du total: '\$s_${series}_du'"\"
- eval echo \""du selected: '\$s_${series}_dus'"\"
- echo help:
- textvar_show s_${series}_h
- echo
- }
-
- package_dbg()
- {
- p=$1
- eval echo \""gefunden: '\$p_${p}_da'"\"
- eval echo \""filename: '\$p_${p}_fn'"\"
- eval echo \""du: '\$p_${p}_du'"\"
- eval echo \""version: '\$p_${p}_v'"\"
- eval echo \""selected: '\$p_${p}_s'"\"
- eval echo \""name: '\$p_${p}_n'"\"
- echo help:
- textvar_show p_${p}_h
- echo
- }
-
- ################################################################
- # utility functions:
- ################################################################
-
- bad_sh()
- {
- /bin/sh -c 'exit 1'
- retval=$?
- if test "$retval" != 1; then
- echo
- echo 'Your /bin/sh is completely broken. A simple program like'
- echo
- echo " /bin/sh -c 'exit 1'; echo \$?"
- echo
- echo "gives a wrong result."
- echo
- echo 'Your shell is likely to break some scripts of teTeX. Please'
- echo 'update your /bin/sh first and try to install teTeX later.'
- echo 'GNU bash 1.14.5 will do, whereas bash 1.14.3 is known to have'
- echo 'problems.'
- echo
- exit 1
- fi
- }
-
- warning()
- {
- echo "$@"
- }
-
- cls()
- {
- test "$debug" = true || clear
- }
-
- check_for_binary()
- {
- testbin=$1
- case "$testbin" in
- /*) test -x "$testbin" && test -f "$testbin"; return;;
- *)
- OLDIFS=$IFS; IFS=:; eval set $PATH; IFS=$OLDIFS
- for this_dir
- do
- test -x "$this_dir/$testbin" &&
- test -f "$this_dir/$testbin" && return 0
- done
- return 1;;
- esac
- }
-
- require_binaries()
- {
- for this_bin
- do
- check_for_binary $this_bin ||
- fatal "program '$this_bin' not found in PATH"
- done
- }
-
- man_fix_texmf()
- {
- file=$TETEXDIR/man/man1/bibtex.1
- test -f "$file" || return
- man_texmf_old=`grep texmf/bibtex/bst $file 2>/dev/null | sed 's@.*:@@; s@/bibtex/bst@@'`
- test -z "$man_texmf_old" && man_texmf_old=$man_texmf_old_fallback
- man_tetexdir_old=`dirname "$man_texmf_old"`
- test -z "$man_tetexdir_old" && man_tetexdir_old=$man_tetexdir_old_fallback
-
- if test "$opt_savespace_man_rm" = X; then
- rm -f $TETEXDIR/man/man*/*
- rmdir $TETEXDIR/man/man*
- fi 2>/dev/null
-
- if test "$TEXMF" != "$man_texmf_old" ||
- test "$man_tetexdir_old" != "$TETEXDIR"; then
- $echon "Fixing pathnames in the manualpages... "
- for mpage in $TETEXDIR/man/*/*[0-9]; do
- sed s@$man_texmf_old@$TEXMF@g\;s@$man_tetexdir_old@$TETEXDIR@g \
- $mpage > $TMPDIR/man.tmp.$$
- test -s $TMPDIR/man.tmp.$$ && mv $TMPDIR/man.tmp.$$ $mpage
- done
- echo "Done."
- fi
- test "$opt_savespace_man_gzip" = X && gzip $TETEXDIR/man/cat*/*.[1.9]
- touch $TETEXDIR/man/cat*/* 2>/dev/null
- }
-
- maketex_setopt()
- {
- mtsite=$TEXMF/$mt_site_loc
- test -w "$mtsite" || return
- test -w "$TETEXDIR/texmf.cnf" || return
- test "$opt_varfonts" = X || return
-
- ed "$TETEXDIR/texmf.cnf" >$ERRLOG 2>&1 <<eof
- /^VARFONTS.*=/
- c
- VARFONTS = $opt_varfonts_dir
- .
- w
- q
- eof
- show_error
-
- ed "$mtsite" >$ERRLOG 2>&1 <<'eof'
- /^: \${MT_FEATURES=/
- s/}/:varfonts}/
- w
- q
- eof
- show_error
- }
-
- texmfcnf_fix_texmf()
- {
- test "$TETEXDIR/texmf" = "$TEXMF" && return
- test -w "$TETEXDIR/texmf.cnf" || return
- ed "$TETEXDIR/texmf.cnf" >$ERRLOG 2>&1 <<-eof
- /^TEXMF.*=/
- c
- TEXMF = $TEXMF
- .
- w
- q
- eof
- show_error
- rm -f $TETEXDIR/texmf
- }
-
- texmfcnf_fix_tetexdir()
- {
- test -f $TETEXDIR/texmf.cnf || return
- if test ! -w "$TETEXDIR/texmf.cnf"; then
- warning "Warning: cannot write to file $TETEXDIR/texmf.cnf"
- readln
- return
- fi
- if test $platform_subdir_strip = true; then
- newtexmf='$SELFAUTODIR'
- else
- newtexmf='$SELFAUTOPARENT'
- fi
- ed "$TETEXDIR/texmf.cnf" >$ERRLOG 2>&1 <<-eof
- /^TETEXDIR.*=/
- c
- TETEXDIR = $newtexmf
- .
- w
- q
- eof
- show_error
- }
-
- # fill a string with blanks:
- setlength()
- {
- var=$1
- length=$2
- eval value=\"\$$var\"
- l=`expr "$value" : '.*'`
- test $l -lt $length || return
- d=`expr $length - $l`
- OLDIFS=$IFS; IFS=
- substr=`awk 'END {print substr(" ", 1, ANZ)}' ANZ=$d </dev/null`
- eval $var='$substr$value'
- IFS=$OLDIFS
- }
-
- # NEW PLATFORM: add a 'case'
- platform_guess()
- {
- case `(guess | sed 's@-.*-@-@')` in
- alpha-linux)
- echo alpha_linux;;
- alpha-osf3.*)
- echo alpha_osf32;;
- alpha-osf4.*)
- echo alpha_osf40;;
- c1-bsd)
- echo c1_bsd;;
- c*-bsd)
- echo c2_bsd;;
- hppa-nextstep3)
- echo hppa_nextstep3;;
- hppa1.1-hpux10*)
- echo hppa11_hpux10;;
- hppa1.1-hpux9*)
- echo hppa11_hpux9;;
- *86-freebsd2.*)
- echo i386_freebsd215;;
- *86-linux)
- echo i386_linux;;
- *86-linuxaout)
- echo i386_linuxaout;;
- *86-nextstep3)
- echo i386_nextstep3;;
- *86-solaris2.*)
- echo i386_solaris25;;
- m68k-hpux*)
- echo m68k_hpux9;;
- m68k-nextstep3)
- echo m68k_nextstep3;;
- mips-irix5.*)
- echo mips_irix53;;
- mips-irix6.*)
- echo mips_irix62;;
- mips-ultrix4*)
- echo mips_ultrix43;;
- rs6000-aix4.1*)
- echo rs6000_aix414;;
- rs6000-aix4.2*)
- echo rs6000_aix420;;
- sparc-nextstep3)
- echo sparc_nextstep3;;
- sparc-solaris2.4)
- echo sparc_solaris24;;
- sparc-solaris2.[56789])
- echo sparc_solaris25;;
- sparc-sunos4*)
- echo sparc_sunos413;;
- esac
- }
-
- unset_vars()
- {
- for var in $envvars; do
- unset $var
- done
- }
-
- mkdirhier()
- {
- case $1 in
- /*) cd /;;
- esac
- OLDIFS=$IFS; IFS=/; eval set $1; IFS=$OLDIFS
- for i
- do
- test -d $i || mkdir $i || break
- cd $i || break
- done
- }
-
- # [t]ry again, [r]econfigure, [a] abort
- tra()
- {
- msg=$1
- cls
- echo "Oops, I am in trouble here! The error was:"
- echo ">> $msg <<"
- echo
- case `getopt TRQ 'What shall we do now: t: try again, r: reconfigure, q: quit'` in
- T) return;;
- R) menu_main;;
- Q) exit 1;;
- esac
- }
-
- warn()
- {
- msg=$1
- cls
- echo "Oops, I am in trouble here! The problem was:"
- echo ">> $msg <<"
- echo
- case `getopt CQ 'What shall we do now: c: ccontinue, q: quit'` in
- C) return;;
- Q) exit 1;;
- esac
- }
-
- fatal()
- {
- echo; echo
- echo "ERROR: $@."
- echo "This was a fatal error, my friend. Installation aborted."
- exit 1
- }
-
- show_error()
- {
- test $? = 0 && return
- cls
- echo 'WARNING: the last command returned an error.'
- if yesno 'Do you want to see the errorlog'; then
- cat $ERRLOG | eval $PAGER
- readln
- fi
- cls
- }
-
- nonemptydir()
- {
- test -d "$1" && test -n "`ls \"$1\"`"
- return $?
- }
-
- # this is a hard job... trying to anticipiate trouble...
- sanity_checks()
- {
- while nonemptydir $TETEXDIR; do
- tra "non-empty directory TETEXDIR=$TETEXDIR already exists"
- done
- while nonemptydir $TEXMF; do
- tra "non-empty directory TEXMF=$TEXMF already exists"
- done
- while test "$opt_symlink" = X &&
- test ! -z "$opt_symlinks_bin" &&
- test -d "$opt_symlinks_bin" &&
- test ! -w "$opt_symlinks_bin"; do
- tra "cannot write to directory $opt_symlinks_bin"
- done
- while test "$opt_symlink" = X &&
- test ! -z "$opt_symlinks_man" &&
- test -d "$opt_symlinks_man" &&
- test ! -w "$opt_symlinks_man"; do
- tra "cannot write to directory $opt_symlinks_man"
- done
- while test "$opt_symlink" = X &&
- test ! -z "$opt_symlinks_info" &&
- test -d "$opt_symlinks_info" &&
- test ! -w "$opt_symlinks_info"; do
- tra "cannot write to directory $opt_symlinks_info"
- done
- while test ! -z "$opt_varfonts_dir" &&
- test -d "$opt_varfonts_dir" &&
- test ! -w "$opt_varfonts_dir"; do
- tra "cannot write to directory $opt_varfonts_dir"
- done
- }
-
- prepare_directories()
- {
- alldirs="$TMPDIR $TETEXDIR $TEXMF
- $opt_symlinks_bin $opt_symlinks_info"
- test -z "$opt_symlinks_man" ||
- alldirs="$alldirs $opt_symlinks_man/man1 $opt_symlinks_man/man5 $opt_symlinks_man/cat1 $opt_symlinks_man/cat5"
- test -z "$opt_varfonts_dir" ||
- alldirs="$alldirs $opt_varfonts_dir/pk $opt_varfonts_dir/tfm"
- for dir in $alldirs; do
- while test ! -d $dir || test ! -w $dir; do
- mkdirhier $dir
- test -d $dir || { tra "could not make directory '$dir'"; continue; }
- test -w $dir || { tra "cannot write to directory '$dir'"; continue; }
- done
- done
- chmod 700 $TMPDIR || fatal "command 'chmod 700 $TMPDIR' failed"
- test -z "$opt_varfonts_dir" ||
- chmod 1777 $opt_varfonts_dir/pk $opt_varfonts_dir/tfm ||
- fatal "command 'chmod 1777 $opt_varfonts_dir/pk $opt_varfonts_dir/tfm' failed"
- ln -s $TETEXDIR $TMPDIR/$tetex_prefix
- test -d $TETEXDIR/texmf || ln -s $TEXMF $TETEXDIR/texmf
- platform_subdir_strip=false
- if test $s_bin_ns = 1; then
- cls
- textvar_show screen_6
- echo
- if yesno 'Do you want to omit the extra subdirectory'; then
- platform_subdir_strip=true
- mkdir $TETEXDIR/bin
- for pd_p in $s_bin_lf; do
- if eval \$p_${pd_p}_s; then
- eval platform_subdir_strip_d=\$p_${pd_p}_d
- break
- fi
- done
- ln -s . $TETEXDIR/bin/$platform_subdir_strip_d
- fi
- fi
- mkdirhier $TEXMF/lists
- }
-
- opt_do_symlinks()
- {
- test "$opt_symlinks" = X || return
- $echon 'Creating symbolic links... '
- if test -d $TETEXDIR/man/man1 && test -w $opt_symlinks_man/man1; then
- cd $opt_symlinks_man/man1
- rm -f `ls $TETEXDIR/man/man1`; ln -s $TETEXDIR/man/man1/* .
- fi
- if test -d $TETEXDIR/man/man5 && test -w $opt_symlinks_man/man5; then
- cd $opt_symlinks_man/man5
- rm -f `ls $TETEXDIR/man/man5`; ln -s $TETEXDIR/man/man5/* .
- fi
- if test -d $TETEXDIR/man/cat1 && test -w $opt_symlinks_man/cat1; then
- cd $opt_symlinks_man/cat1
- rm -f `ls $TETEXDIR/man/cat1`; ln -s $TETEXDIR/man/cat1/* .
- fi
- if test -d $TETEXDIR/man/cat5 && test -w $opt_symlinks_man/cat5; then
- cd $opt_symlinks_man/cat5
- rm -f `ls $TETEXDIR/man/cat5`; ln -s $TETEXDIR/man/cat5/* .
- fi
- if test -d $TETEXDIR/info && test -w "$opt_symlinks_info"; then
- cd $opt_symlinks_info
- rm -f `ls $TETEXDIR/info`; ln -s $TETEXDIR/info/*info* .
- fi
- if test "$opt_symlinks" = X; then
- if test ! -z "$this_platform_bin"; then
- if test -w "$opt_symlinks_bin"; then
- cd $opt_symlinks_bin
- rm -f `ls $this_platform_bin`; ln -s $this_platform_bin/* .
- echo 'Done.'
- fi
- else
- cls
- echo ' WARNING! '
- echo
- echo 'teTeX binaries for this platform are not installed. If you install'
- echo 'them later, you can create symbolic links to $opt_symlinks_bin'
- echo 'with a command like:'
- echo
- echo " ln -s $TETEXDIR/bin/PLATFORM/* $opt_symlinks_bin"
- echo
- echo 'PLATFORM needs to be replaced by the name of the subdirectory that'
- echo 'contains the binaries for this platform.'
- echo
- readln
- fi
- fi
- }
-
- locate_binaties()
- {
- this_platform_bin=
- lb_dir=$TETEXDIR/bin/$this_platform_d
- test -x "$lb_dir/initex" && this_platform_bin=$lb_dir
- test -x "$TETEXDIR/bin/initex" && this_platform_bin=$TETEXDIR/bin
- test ! -d $lb_dir && rm -f $lb_dir 2>/dev/null
- test -z "$this_platform_bin" && return
- PATH="${this_platform_bin}:${PATH}"; export PATH
- }
-
- untgz()
- {
- cd $TMPDIR
- for u_series in $S_all_la; do
- eval selected=\$s_${u_series}_ls
- for u_package in $selected; do
- eval file=\$p_${u_package}_fn
- list=`basename $file| sed 's@.tar.gz$@@'`
- package_showinfo $u_package
- if $checkit; then
- echo
- $echon "Testing integrity of file $file... "
- gzip --test $file
- if test $? = 0; then
- echo "Ok."
- else
- warn "Integrity of file $file is void."
- continue
- fi
- fi
- $echon "Extracting package $p_current_n... "
- gzip -dc < $file | tar xvf - >$ERRLOG 2>&1
- if test $? = 0; then
- echo 'Done.'
- sed /$tetex_prefix/'!d; s@[^/]*'$tetex_prefix'/*@@; s/[,/]*[ ].*//; /^$/d' $ERRLOG > $TEXMF/lists/$list
- if test -s $TEXMF/lists/$list; then
- chmod 755 $TEXMF/lists/$list
- else
- rm -f $TEXMF/lists/$list
- fi
- else
- show_error
- continue
- fi
- done
- done
- rmdir $TEXMF/lists 2>/dev/null
- }
-
- prepare_errorlog()
- {
- touch "$ERRLOG"
- test -w "$ERRLOG" || fatal "cannot write to file '$ERRLOG'"
- }
-
- locate_binaries()
- {
- require_binaries touch sed awk gzip ln rm ls tar tr mkdir cat pwd
- }
-
- init()
- {
- cd $here
- # for fast installation: set CHECKIT_OVERRIDE to false in your environment.
- checkit=${CHECKIT_OVERRIDE-true}
- bad_sh
- prepare_errorlog
- locate_binaries
- find_echo
- unset_vars
- this_platform=`platform_guess`
- series_init
- nobin_stat
- }
-
- fixperm()
- {
- $echon 'Fixing permissions... '
- cd $TEXMF
- files=`find . -perm -2 \( -type d -o -type f \) -print`
- test -z "$files" || chmod go-w $files
- cd $TETEXDIR
- files=`find . -perm -2 \( -type d -o -type f \) -print`
- test -z "$files" || { chmod go-w $files 2>$ERRLOG; show_error; }
- dirs=`find $TEXMF/fonts/tfm $TEXMF/fonts/pk $TEXMF/fonts/source/jknappen/* -type d -print 2>$ERRLOG`
- test -z "$dirs" || { chmod 1777 $dirs 2>$ERRLOG; show_error; }
- test -f $TEXMF/ls-R && { chmod 666 $TEXMF/ls-R 2>$ERRLOG; show_error; }
- echo 'Done.'
- }
-
- install_now()
- {
- umask 022
- cls; sanity_checks
- cls; prepare_directories
- umask 0
- cls; untgz
- { $platform_subdir_strip && rm -f $TETEXDIR/bin/$platform_subdir_strip_d; } >/dev/null 2>&1
- cls; fixperm
- umask 022
- locate_binaties
- man_fix_texmf
- opt_do_symlinks
- texmfcnf_fix_texmf
- texmfcnf_fix_tetexdir
- update
- init_tetex
- cls
- if test ! -z "$this_platform_bin"; then
- if test -z "$opt_symlinks_bin"; then
- bin=$this_platform_bin
- else
- bin=$opt_symlinks_bin
- fi
-
- cat <<eof
- Welcome to the teTeX TeX system!
-
- Some notes on how to proceed:
- - set up your PATH to include the directory containing the just
- installed binaries in $bin.
- Similarly, MANPATH and INFOPATH to include the relevant newly
- installed subdirectories.
- - run \`\`texconfig confall'' to check your setup
- - call texconfig to set up a few things: hyphenation, paper size for
- printing, printer mode (implies resolution), font generation, etc.
- - you need to run texhash after you install new files in
- $TEXMF
- - There are two mailing list for discussion and announces about the
- teTeX. See the FAQ (\$TEXMF/doc/tetex/teTeX-FAQ) for more about this.
- - See CTAN sites (systems/unix/teTeX/updates) for updates and corrections
- to the system. For information about CTAN, see \$TEXMF/doc/help/ctan.
- eof
- else
- cat <<eof
- Welcome to the teTeX TeX system!
-
- Some notes on how to proceed:
- - binaries for this platform are not installed. If you install the
- missing binaries later, make sure to run
- texconfig init
- - run \`\`texconfig confall'' to check your setup
- - call texconfig to set up a few things: hyphenation, paper size for
- printing, printer mode (implies resolution), font generation, etc.
- - you need to run texhash after you install new files in
- $TEXMF
- - There are two mailing list for discussion and announces about the
- teTeX. See the FAQ (\$TEXMF/doc/tetex/teTeX-FAQ) for more about this.
- - See CTAN sites (systems/unix/teTeX/updates) for updates and corrections
- to the system. For information about CTAN, see \$TEXMF/doc/help/ctan.
- eof
- fi
-
- exit
- }
-
- tetex_dump()
- {
- $echon "Building filename database... "
- echo '% This is file ls-R. Maintained by texhash and append_db.' > $TEXMF/ls-R
- (cd $TEXMF; \ls -LAR ./ /dev/null | grep -v '^\.*$' | sed 's@\.//@./@' ) 2>$ERRLOG >> $TEXMF/ls-R
- show_error
- chmod 666 $TEXMF/ls-R
- echo 'Done.'
-
- if test ! -z "$this_platform_bin"; then
- test "$debug" = true && { set; sleep 5; }
- $echon 'Creating base/fmt/mem files... '
- eval TEXMF=$TEXMF $this_platform_bin/texconfig init >$ERRLOG 2>&1
- show_error
- echo 'Done.'
- fi
- $echon "Setting permissions for fonts tree... "
- if test "x$opt_varfonts" = xX; then
- texconfig font ro
- else
- texconfig font rw
- fi >/dev/null 2>&1
- echo Done.
- }
-
- init_tetex()
- {
- tetex_dump
- maketex_setopt
- }
-
- update()
- {
- test "$opt_update" = X || return
- echo "locating files for update option... "
- update_get_texmf
- if test -d "$opt_update_oldtexmf"; then
- echo " old TEXMF: $opt_update_oldtexmf"
- else
- echo " old TEXMF: not found"
- fi
- update_get_xdvi_ad
- if test -f "$opt_update_xdviad"; then
- echo " old app-defaults file for xdvi: $opt_update_xdviad"
- rm -f $TEXMF/xdvi/XDvi
- cp "$opt_update_xdviad" $TEXMF/xdvi/XDvi
- else
- echo " old app-defaults file for xdvi: not found"
- fi
- if test -d "$opt_update_oldtexmf/dvips"; then
- echo " old dvips config files: $opt_update_oldtexmf/dvips"
- files=`(cd "$opt_update_oldtexmf/dvips"; find . -name config.\* -print)`
- (cd $TEXMF/dvips && rm -f `echo "$files" | sed 's@.*/@@'`)
- (cd "$opt_update_oldtexmf/dvips"; cp $files $TEXMF/dvips)
- else
- echo " old dvips config files: not found"
- fi
- }
-
- update_get_texmf()
- {
- opt_update_oldtexmf=`sed -n '/^TEXMF[ ]*=/!d; s/.*=[ ]*//; s/[ ].*//; s@\$TETEXDIR@'$opt_update_olddir'@; p' $opt_update_olddir/texmf.cnf 2>/dev/null`
- test ! -d "$opt_update_oldtexmf" && opt_update_oldtexmf="$opt_update_olddir/texmf"
- }
-
- update_get_xdvi_ad()
- {
- opt_update_xdviad=`find $opt_update_olddir/xdvi* $opt_update_oldtexmf \( -name XDvi -o -name XDvi.ad \) -print | sed q 2>/dev/null`
- test ! -f "$opt_update_xdviad" && opt_update_xdviad=
- }
-
- ################################################################
- # menus:
- ################################################################
- menu_main()
- {
- while true; do
- cls
- opt_savespace_man=X
- test "$opt_savespace_man_rm" = X || test "$opt_savespace_man_gzip" = X ||
- opt_savespace_man=' '
- textvar_show screen_1; echo
- case `getopt SDOIHQ 'Enter command'` in
- S) menu_series;;
- D) menu_directories;;
- O) menu_options;;
- I) install_now;;
- H) help help_1;;
- Q) exit_on_confirm;;
- esac
- done
- }
-
- menu_directories()
- {
- while true; do
- cls
- textvar_show screen_2; echo
- case `getopt 12RQ 'Enter command'` in
- 1) gets TETEXDIR; TETEXDIR=`dirname "$TETEXDIR/x" | sed 's@//*@/@g'`
- TEXMF=`echo $TETEXDIR/texmf | sed 's@//*@/@g'`;;
- 2) gets TEXMF; TEXMF=`dirname "$TEXMF/x" | sed 's@//*@/@g'`;;
- R) return;;
- Q) exit_on_confirm;;
- esac
- done
- }
-
- menu_options()
- {
- while true; do
- cls
- textvar_show screen_3; echo
- case `getopt ASMRQ 'Enter command'` in
- A) toggle opt_varfonts
- if test "$opt_varfonts" = X; then
- cls; textvar_show screen_3; echo
- opt_varfonts_dir=$opt_varfonts_dir_last
- test -z "$opt_varfonts_dir" && opt_varfonts_dir=/var/tmp/texfonts
- gets opt_varfonts_dir 'alternate directory'
- else
- opt_varfonts_dir_last=$opt_varfonts_dir
- opt_varfonts_dir=
- fi
- ;;
- S) toggle opt_symlinks
- if test "$opt_symlinks" = X; then
- cls; textvar_show screen_3; echo
- opt_symlinks_bin=$opt_symlinks_bin_last
- test -z "$opt_symlinks_bin" && opt_symlinks_bin=/usr/local/bin
- gets opt_symlinks_bin 'binary directory'
- opt_symlinks_man=$opt_symlinks_man_last
- test -z "$opt_symlinks_man" && opt_symlinks_man=`dirname $opt_symlinks_bin`/man
- gets opt_symlinks_man 'man directory '
- opt_symlinks_info=$opt_symlinks_info_last
- test -z "$opt_symlinks_info" && opt_symlinks_info=`dirname $opt_symlinks_bin`/info
- gets opt_symlinks_info 'info directory '
- else
- opt_symlinks_bin_last=$opt_symlinks_bin
- opt_symlinks_man_last=$opt_symlinks_man
- opt_symlinks_info_last=$opt_symlinks_info
- opt_symlinks_bin=; opt_symlinks_man=; opt_symlinks_info=
- fi
- ;;
- M) cls; textvar_show screen_3; echo
- opt_savespace_man=' '
- opt_savespace_man_rm=' '
- opt_savespace_man_gzip=' '
- yesno 'remove nroff sources' &&
- { opt_savespace_man_rm=X; opt_savespace_man=X; }
- yesno 'compress preprocessed manpages with gzip' &&
- { opt_savespace_man_gzip=X; opt_savespace_man=X; }
- ;;
- C) toggle opt_update
- if test "$opt_update" = X; then
- cls; textvar_show screen_3; echo
- opt_update_olddir=$opt_update_olddir_last
- test -z "$opt_update_olddir" && test -f /usr/local/tex/texmf.cnf &&
- opt_update_olddir=/usr/local/tex
- gets opt_update_olddir 'old TETEXDIR'
- test -f $opt_update_olddir/texmf.cnf && continue
- echo "File $opt_update_olddir/texmf.cnf does not exist."
- readln
- opt_update=' '
- opt_update_olddir=
- else
- opt_update_olddir_last=$opt_update_olddir
- opt_update_olddir=
- fi
- ;;
- R) return;;
- Q) exit_on_confirm;;
- esac
- done
- }
-
- menu_series()
- {
- while true; do
- cls
- textvar_show screen_4; echo
- menu_series_ans=`getopt PBGFDRQ 'Enter command'`
- case "$menu_series_ans" in
- P) series=bin;;
- B) series=base;;
- G) series=goodies;;
- F) series=fonts;;
- D) series=doc;;
- esac
- case "$menu_series_ans" in
- [PBGFD])
- cls; textvar_show screen_4;
- textvar_show s_${series}_h; echo
- case `getopt ANSLC "install series $series ([A]ll, [N]o, [S]elect, [L]ist, [C]ancel)"` in
- A) series_select_all $series; nobin_stat;;
- N) series_deselect_all $series; nobin_stat;;
- S) series_usersetup $series; nobin_stat;;
- L) series_list $series;;
- C) : ;;
- esac;;
- R) return;;
- Q) exit_on_confirm;;
- esac
- done
- }
-
- package_showinfo()
- {
- p=$1
- cls
- eval p_current_du=\$p_${p}_du
- eval p_current_n=\$p_${p}_n
- eval p_current_l=\$p_${p}_l
- eval p_current_v=\$p_${p}_v
- echo "Package: $p_current_n"
- echo "Series: $series"
- if [ ! -z "$p_current_v" ] ; then
- echo "Version: $p_current_v"
- fi
- echo "Status: $p_current_l"
- echo "Disk space: $p_current_du"
- textvar_show p_${p}_h
- }
-
- series_usersetup()
- {
- su_series=$1
- eval all_packages=\"\$s_${su_series}_lf\"
- for p in $all_packages; do
- package_showinfo $p
- echo
- p_current_s=false
- yesno "install package $p_current_n" && p_current_s=true
- eval p_${p}_s=$p_current_s
- done
- series_stat $su_series
- }
-
- exit_on_confirm()
- {
- cls
- yesno 'Really quit' && exit
- }
-
- ################################################################
- # global variables
- ################################################################
- here=`pwd`
- VERSION=0.4
- # prefix in the archives. DO NOT CHANGE THE FOLLOWING LINE!!
- tetex_prefix=teTeX
- TETEXDIR=/usr/local/$tetex_prefix
- TEXMF=$TETEXDIR/texmf
- man_texmf_old_fallback=$TEXMF
- man_tetexdir_old_fallback=$TETEXDIR
- TMPDIR=${TMP-/tmp}/inst.tmp.$$
- trap 'cd /; rm -rf "$TMPDIR"; rm -f "$TEXMF" 2>/dev/null; trap 0; exit 0' 0 1 2 15
- while test -d $TMPDIR; do
- tra "temporal directory $TMPDIR already exists"
- done
- mkdirhier $TMPDIR
- ERRLOG=${TMPDIR}/inst.errlog.$$
- : ${PAGER=more}
- mt_site_loc=maketex/maketex.site
-
- envvars='
- BIBINPUTS BSTINPUTS DVIPSHEADERS GFFONTS GLYPHFONTS MFBASES MFINPUTS
- MFPOOL PKFONTS TEXCONFIG TEXFONTS TEXFORMATS TEXINPUTS TEXMFCNF TEXPICTS
- TEXPKS TEXPOOL TFMFONTS VFFONTS DVIPSFONTS XDVIVFS XDVIFONTS DVILJFONTS
- '
-
- opt_varfonts=' '
- opt_varfonts_dir=
- opt_varfonts_dir_last=
- opt_symlinks=' '
- opt_symlinks_bin=
- opt_symlinks_man=
- opt_symlinks_info=
- opt_symlinks_bin_last=
- opt_symlinks_man_last=
- opt_symlinks_info_last=
- opt_savespace_man=' '
- opt_savespace_man_rm=' '
- opt_savespace_man_gzip=' '
- opt_update=' '
- opt_update_olddir=
- opt_update_olddir_last=
-
- this_platform=
-
- S_nobin_la='
- base
- goodies
- fonts
- doc
- '
-
- S_all_la="
- $S_nobin_la
- bin
- "
-
- s_base_la='
- tetex_base
- latex_base
- '
-
- # NEW PLATFORM: add entry in s_bin_la variable.
- s_bin_la='
- alpha_linux
- alpha_osf32
- alpha_osf40
- c1_bsd
- c2_bsd
- hppa_nextstep3
- hppa11_hpux10
- hppa11_hpux9
- i386_freebsd215
- i386_linux
- i386_linuxaout
- i386_nextstep3
- i386_solaris25
- m68k_hpux9
- m68k_nextstep3
- mab_nextstep3
- mips_irix53
- mips_irix62
- mips_ultrix43
- rs6000_aix414
- rs6000_aix420
- sparc_nextstep3
- sparc_solaris24
- sparc_solaris25
- sparc_sunos413
- '
-
- s_doc_la='
- ams_doc
- bibtex_doc
- eplain_doc
- fonts_doc
- general_doc
- generic_doc
- latex_doc
- makeindex_doc
- metapost_doc
- programs_doc
- '
-
- s_fonts_la='
- ams_fonts
- dc_fonts
- misc_fonts
- postscript_fonts
- sauter_fonts
- '
-
- s_goodies_la='
- amstex
- bibtex
- eplain
- latex_extra
- metapost
- pictex
- pstricks
- texdraw
- xypic
- '
-
- s_base_n=base
- s_bin_n=binaries
- s_doc_n=documentation
- s_fonts_n=fonts
- s_goodies_n=goodies
-
- s_base_d=base
- s_bin_d=binaries
- s_doc_d=doc
- s_fonts_d=fonts
- s_goodies_d=goodies
-
- s_base_h='
- This series contains the most basic packages that are needed for the
- basic functionality of teTeX and a small LaTeX system.
- '
-
- s_bin_h='
- This series contains the binaries for teTeX. There is one binary package
- for each supported platform containing all teTeX binaries for that
- platform.
- '
-
- s_doc_h='
- This series contains a lot of documentation about teTeX and the packages
- it contains. The whole series contains over 130 dvi files plus FAQs
- and some other documentation.
- '
-
- s_fonts_h='
- This series contains font packages: DC, oldgerman, sauter, bbold, bbm,
- stmary, pandora, wasy, AMS, concrete and support for PostScript fonts
- from Bitstream and Adobe.
- '
-
- s_goodies_h='
- This series contains some additional packages: AMSTeX, BibTeX, eplain,
- LaTeX-extra, METAPOST, PiCTeX, PStricks, TeXdraw and XYpic.
- '
-
- #############################################################################
- # packages:
- #############################################################################
-
-
- p_latex_base_l=required
- p_tetex_base_l=required
-
- p_ams_doc_l=recommended
- p_bibtex_doc_l=optional
- p_eplain_doc_l=optional
- p_fonts_doc_l=optional
- p_general_doc_l=recommended
- p_generic_doc_l=optional
- p_latex_doc_l=recommended
- p_makeindex_doc_l=optional
- p_metapost_doc_l=optional
- p_programs_doc_l=recommended
-
- p_ams_fonts_l=recommended
- p_dc_fonts_l=recommended
- p_misc_fonts_l=optional
- p_postscript_fonts_l=optional
- p_sauter_fonts_l=optional
-
- p_amstex_l=optional
- p_bibtex_l=recommended
- p_eplain_l=optional
- p_latex_extra_l=recommended
- p_metapost_l=optional
- p_pictex_l=optional
- p_pstricks_l=optional
- p_texdraw_l=optional
- p_xypic_l=optional
-
- p_latex_base_d=latex-base
- p_latex_base_du=1420
- p_latex_base_n='LaTeX base'
- p_latex_base_v='<1996/06/01>'
- p_latex_base_h='
- This package contains a minimal set of macros to use the LaTeX format.
- '
-
- p_tetex_base_d=tetex-base
- p_tetex_base_du=5080
- p_tetex_base_n='teTeX base'
- p_tetex_base_h='
- This package contains the most basic input files for teTeX: runtime
- configuration files, hyphenation tables, manpages and the computer
- modern fonts.
- '
-
- #############################################################################
- # The supported binaries. Add new platforms to the s_bin_la list and create
- # a p_PLATFORM st structure with the following variables:
- # _d: the directory name below bin for this platform
- # _du: disk usage
- # _n: name of the package
- # -h: help text
- #############################################################################
-
- # NEW PLATFORM: add p_*_{l,d,du,n,h} variables.
- p_alpha_linux_l='optional'
- p_alpha_linux_d=alpha-linux
- p_alpha_linux_du=13940
- p_alpha_linux_n='DEC Alpha/Linux'
- p_alpha_linux_h='
- This package contains all binaries for DEC Alpha/Linux platforms.
- '
-
- p_alpha_osf32_l='optional'
- p_alpha_osf32_d=alpha-osf3.2
- p_alpha_osf32_du=6840
- p_alpha_osf32_n='DEC Alpha/Digital Unix 3.2'
- p_alpha_osf32_h='
- This package contains all binaries for DEC Alpha/Digital Unix 3.2 platforms.
- '
-
- p_alpha_osf40_l=optional
- p_alpha_osf40_d=alpha-osf4.0
- p_alpha_osf40_du=6840
- p_alpha_osf40_n='DEC Alpha/Digital Unix 4.0'
- p_alpha_osf40_h='
- This package contains all binaries for DEC Alpha/Digital Unix 4.0 platforms.
- '
-
- p_c1_bsd_l='optional'
- p_c1_bsd_d=c1-bsd
- p_c1_bsd_du=12310
- p_c1_bsd_n='Convex C-110'
- p_c1_bsd_h='
- This package contains all binaries for Convex C-110 platforms.
- '
-
- p_c2_bsd_l='optional'
- p_c2_bsd_d=c2-bsd
- p_c2_bsd_du=12250
- p_c2_bsd_n='Convex C-210'
- p_c2_bsd_h='
- This package contains all binaries for Convex C-210 platforms.
- '
-
- p_hppa_nextstep3_l=optional
- p_hppa_nextstep3_d=hppa-nextstep3
- p_hppa_nextstep3_du=6307
- p_hppa_nextstep3_n='HPPA/NEXTSTEP 3'
- p_hppa_nextstep3_h='
- This package contains all binaries for HPPA/NEXTSTEP 3 platforms.
- '
-
- p_hppa11_hpux9_l=optional
- p_hppa11_hpux9_d=hppa1.1-hpux9
- p_hppa11_hpux9_du=6260
- p_hppa11_hpux9_n='HPPA/HP-UX 9.xx'
- p_hppa11_hpux9_h='
- This package contains all binaries for HPPA/HP-UX 9.xx platforms.
- '
-
- p_hppa11_hpux10_l=optional
- p_hppa11_hpux10_d=hppa1.1-hpux10
- p_hppa11_hpux10_du=6720
- p_hppa11_hpux10_n='HPPA/HP-UX 10.xx'
- p_hppa11_hpux10_h='
- This package contains all binaries for HPPA/HP-UX 10.xx platforms.
- '
-
- p_i386_freebsd215_l=optional
- p_i386_freebsd215_d=i386-freebsd2.1.5
- p_i386_freebsd215_du=3720
- p_i386_freebsd215_n='Intel x86/FreeBSD 2.1.5'
- p_i386_freebsd215_h='
- This package contains all binaries for Intel x86/FreeBSD 2.1.5 platforms.
- '
-
- p_i386_linux_l=optional
- p_i386_linux_d=i386-linux
- p_i386_linux_du=3430
- p_i386_linux_n='Intel x86/Linux (ELF)'
- p_i386_linux_h='
- This package contains all binaries for Linux on Intel x86 machines.
- The binaries are in ELF format and need ld.so version 1.7.3 or higher and
- libc version 5.0.9 or higher.
- '
-
- p_i386_linuxaout_l=optional
- p_i386_linuxaout_d=i386-linuxaout
- p_i386_linuxaout_du=3520
- p_i386_linuxaout_n='Intel x86/Linux (a.out)'
- p_i386_linuxaout_h='
- This package contains all binaries for Linux on x86 machines.
- The binaries are in the old a.out format and need version 4 of the
- C library (e.g. libc-4.6.26).
- '
-
- p_i386_nextstep3_l=optional
- p_i386_nextstep3_d=i386-nextstep3
- p_i386_nextstep3_du=4789
- p_i386_nextstep3_n='Intel x86/NEXTSTEP 3'
- p_i386_nextstep3_h='
- This package contains all binaries for Intel x86/NEXTSTEP 3 platforms.
- '
-
- p_i386_solaris25_l=optional
- p_i386_solaris25_d=i386-solaris2.5
- p_i386_solaris25_du=3800
- p_i386_solaris25_n='Intel x86/Solaris2.5'
- p_i386_solaris25_h='
- This package contains all binaries for Intel x86/Solaris2.5 platforms.
- '
-
- p_m68k_hpux9_l=optional
- p_m68k_hpux9_d=m68k-hpux9
- p_m68k_hpux9_du=7810
- p_m68k_hpux9_n='HP 400/HP-UX 9.xx'
- p_m68k_hpux9_h='
- This package contains all binaries for HP 400/HP-UX 9.xx platforms.
- '
-
- p_m68k_nextstep3_l=optional
- p_m68k_nextstep3_d=m68k-nextstep3
- p_m68k_nextstep3_du=4637
- p_m68k_nextstep3_n='Motorola 68k/NEXTSTEP 3'
- p_m68k_nextstep3_h='
- This package contains all binaries for Motorola 68k/NEXTSTEP 3 platforms.
- '
-
- p_mab_nextstep3_l=optional
- p_mab_nextstep3_d=mab-nextstep3
- p_mab_nextstep3_du=21419
- p_mab_nextstep3_n='NEXTSTEP mab'
- p_mab_nextstep3_h='
- This package contains all binaries for NEXTSTEP (NeXT,Intel,HP-PA,SPARC)
- platforms.
- '
-
- p_mips_irix53_l=optional
- p_mips_irix53_d=mips-irix5.3
- p_mips_irix53_du=6510
- p_mips_irix53_n='SGI Irix 5.3'
- p_mips_irix53_h='
- This package contains all binaries for SGI Indigo machines running
- Irix-5.3.
- '
-
- p_mips_irix62_l=optional
- p_mips_irix62_d=mips-irix6.2
- p_mips_irix62_du=6220
- p_mips_irix62_n='SGI Irix 6.2'
- p_mips_irix62_h='
- This package contains all binaries for SGI Indigo machines running
- Irix-6.2.
- '
-
- p_mips_ultrix43_l=optional
- p_mips_ultrix43_d=mips-ultrix4.3
- p_mips_ultrix43_du=9424
- p_mips_ultrix43_n='Mips/Ultrix 4.3'
- p_mips_ultrix43_h='
- This package contains all binaries for Mips/Ultrix 4.3 platforms.
- '
-
- p_rs6000_aix414_l=optional
- p_rs6000_aix414_d=rs6000-aix4.1.4
- p_rs6000_aix414_du=5750
- p_rs6000_aix414_n='IBM RS6000 AIX 4.1.4'
- p_rs6000_aix414_h='
- This package contains all binaries for IBM RS600 machines running
- AIX 4.1.4.
- '
-
- p_rs6000_aix420_l=optional
- p_rs6000_aix420_d=rs6000-aix4.2.0
- p_rs6000_aix420_du=5390
- p_rs6000_aix420_n='IBM RS6000 AIX 4.2.0'
- p_rs6000_aix420_h='
- This package contains all binaries for IBM RS600 machines running
- AIX 4.2.0.
- '
-
- p_sparc_nextstep3_l=optional
- p_sparc_nextstep3_d=sparc-nextstep3
- p_sparc_nextstep3_du=5726
- p_sparc_nextstep3_n='SUN Sparc/NEXTSTEP 3'
- p_sparc_nextstep3_h='
- This package contains all binaries for SUN Sparcs running NEXTSTEP 3.
- '
-
- p_sparc_solaris24_l=optional
- p_sparc_solaris24_d=sparc-solaris2.4
- p_sparc_solaris24_du=4540
- p_sparc_solaris24_n='SUN Sparc Solaris 2.4'
- p_sparc_solaris24_h='
- This package contains all binaries for SUN Sparcs running Solaris 2.4.
- '
-
- p_sparc_solaris25_l=optional
- p_sparc_solaris25_d=sparc-solaris2.5
- p_sparc_solaris25_du=4510
- p_sparc_solaris25_n='SUN Sparc Solaris 2.5'
- p_sparc_solaris25_h='
- This package contains all binaries for SUN Sparcs running Solaris 2.5.
- '
-
- p_sparc_sunos413_l=optional
- p_sparc_sunos413_d=sparc-sunos4.1.3
- p_sparc_sunos413_du=6080
- p_sparc_sunos413_n='SUN Sparc SunOS 4.1.3'
- p_sparc_sunos413_h='
- This package contains all binaries for SUN Sparcs running SunOS 4.1.3.
- '
-
- p_ams_doc_d=ams-doc
- p_ams_doc_du=600
- p_ams_doc_n='AMS documentation'
- p_ams_doc_h='
- This package contains documentation for the AMS (= american mathematical
- society) fonts, AMSLaTeX and AMSTeX. A good thing, if you need lots of
- math in your documents.
- '
-
- p_bibtex_doc_d=bibtex-doc
- p_bibtex_doc_du=170
- p_bibtex_doc_n='BibTeX documentation'
- p_bibtex_doc_h='
- This package contains documentation for the BibTeX programm. BibTeX is
- a tool to make a bibliography for (La)TeX.
- '
-
- p_eplain_doc_d=eplain-doc
- p_eplain_doc_du=360
- p_eplain_doc_n='eplain documentation'
- p_eplain_doc_h='
- This package contains documentation for the extended plain format (eplain).
- '
-
- p_fonts_doc_d=fonts-doc
- p_fonts_doc_du=410
- p_fonts_doc_n='fonts documentation'
- p_fonts_doc_h='
- This package contains documentation for some font packages.
- '
-
- p_general_doc_d=general-doc
- p_general_doc_du=1510
- p_general_doc_n='general documentation'
- p_general_doc_h='
- This package contains some general information about TeX: a list of
- ftp servers, a draft for the TeX Directory Standard (TDS), The TeX and
- LaTeX Catalogue, TeX FAQs from the German and UK TeX usergroups.
- '
-
- p_generic_doc_d=generic-doc
- p_generic_doc_du=3840
- p_generic_doc_n='generic documentation'
- p_generic_doc_h='
- This package contains documentation for macro packages that can be
- used for several format files: babel, texdraw, pstricks, xypic.
- '
-
- p_latex_doc_d=latex-doc
- p_latex_doc_du=5470
- p_latex_doc_n='LaTeX documentation'
- p_latex_doc_h='
- This package contains documentation for LaTeX: over 100 dvi files and some
- examples.
- '
-
- p_makeindex_doc_d=makeindex-doc
- p_makeindex_doc_du=110
- p_makeindex_doc_n='makeindex documentation'
- p_makeindex_doc_h='
- This package contains documentation for the Makeindex program.
- '
-
- p_metapost_doc_d=metapost-doc
- p_metapost_doc_du=1560
- p_metapost_doc_n='MetaPost documentation'
- p_metapost_doc_h='
- This package contains documentation for the MetaPost system.
- '
-
- p_programs_doc_d=programs-doc
- p_programs_doc_du=1210
- p_programs_doc_n='Kpathsea documentation'
- p_programs_doc_h='
- This package contains documentation about the Kpathsea library and some
- programmes (dvipsk, info, makeinfo). The Kpathsea library is used by some
- programmes in teTeX to locate files on the disk. Its most important
- features are the filename database (ls-R) (speeds up recursive directory
- searches), runtime configuration (search paths can be set up in file)
- and automatic font generation.
- '
-
- p_ams_fonts_d=ams-fonts
- p_ams_fonts_du=2270
- p_ams_fonts_n='AMS fonts'
- p_ams_fonts_h='
- This package contains the AMS fonts.
- '
-
- p_dc_fonts_d=dc-fonts
- p_dc_fonts_du=1110
- p_dc_fonts_n='DC fonts'
- p_dc_fonts_h='
- This package contains the DC fonts. These are full 256 character fonts
- containing lots of national characters.
- '
-
- p_misc_fonts_d=misc-fonts
- p_misc_fonts_du=2100
- p_misc_fonts_n='misc. fonts'
- p_misc_fonts_h='
- This package contains: symbol fonts (wasy), special fonts for math (rsfs,
- stmary, bbm, bbold), alternate text fonts (concrete, gothic, pandora).
- '
-
- p_postscript_fonts_d=postscript-fonts
- p_postscript_fonts_du=3010
- p_postscript_fonts_n='PostScript fonts'
- p_postscript_fonts_h='
- This package contains support files to use some PostScript fonts
- from Adobe and Bitstream for TeX.
- '
-
- p_sauter_fonts_d=sauter-fonts
- p_sauter_fonts_du=410
- p_sauter_fonts_n='sauter fonts'
- p_sauter_fonts_h='
- This package contains the sauter fonts. It allows to use some fonts
- at (nearly) arbitrary sizes.
- '
-
- p_amstex_du=160
- p_amstex_n='AMSTeX'
- p_amstex_h='
- This package contains the AMSTeX package. AMSTeX is an extension of the
- plain TeX format with better support of mathematics and easy access to
- the AMS fonts.
- '
-
- p_bibtex_du=300
- p_bibtex_n='BibTeX'
- p_bibtex_h='
- This package contains some support files for the BibTeX program.
- BibTeX is a tool to make a bibliography for (La)TeX.
- '
-
- p_eplain_d=eplain
- p_eplain_du=80
- p_eplain_n='expanded plain TeX'
- p_eplain_h='
- This package the expanded plain format (eplain).
- '
-
- p_latex_extra_d=latex-extra
- p_latex_extra_du=2780
- p_latex_extra_n='LaTeX extra'
- p_latex_extra_h='
- This package contains a lot of extra packages for LaTeX: amslatex, fancyhdr,
- koma-script, mflogo, psnfss, seminar, cite and many many more...
- '
-
- p_metapost_d=metapost
- p_metapost_du=150
- p_metapost_n='MetaPost'
- p_metapost_h='
- This package contains files for the MetaPost program. MetaPost is similar
- to Metafont, but it outputs to PostScript format.
- '
-
- p_pictex_d=pictex
- p_pictex_du=280
- p_pictex_n='PiCTeX'
- p_pictex_h='
- This package contains the PiCTeX macros to draw portable pictures with
- TeX and LaTeX.
- '
-
- p_pstricks_d=pstricks
- p_pstricks_du=220
- p_pstricks_n='PS Tricks'
- p_pstricks_h='
- This package contains a package for PostScript macros for generic TeX.
- '
-
- p_texdraw_d=texdraw
- p_texdraw_du=40
- p_texdraw_n='TeXdraw macros'
- p_texdraw_h='
- This package contains macros for PostScript drawings for TeX.
- '
-
- p_xypic_d=xypic
- p_xypic_du=830
- p_xypic_n='XY-pic macros'
- p_xypic_h='
- This package contains macros for typesetting graphs and diagrams in TeX.
- '
-
- ################################################################
- # screens:
- ################################################################
- screen_1='====================> teTeX $VERSION installation procedure <====================
-
- detected platform: $this_platform_n
-
- <S> series:
- binaries: $s_bin_ns out of $s_bin_nf, disk space required: $s_bin_dus kB
- other (summary): $S_nobin_ns out of $S_nobin_nf, disk space required: $S_nobin_dus kB
- total disk space: $s_total_dus kB
-
- <D> directories:
- TETEXDIR = $TETEXDIR
- TEXMF = $TEXMF
-
- <O> options:
- [$opt_varfonts] alternate directory for automatically generated fonts
- [$opt_symlinks] create symlinks in standard directories
- [$opt_savespace_man] save space for manpages
-
- Other commands:
- <I> start installation, <H> help, <Q> quit
-
- '
-
- screen_2='Current directories setup:
- ==============================================================================
-
- <1> TETEXDIR: $TETEXDIR
- <2> TEXMF $TEXMF
-
- Other options:
- ==============================================================================
- <R> return to main menu
- <Q> quit
- '
-
- screen_3='Current options setup:
- ==============================================================================
-
- <A> alternate directory for automatically generated fonts: [$opt_varfonts]
- directory name: $opt_varfonts_dir
- <S> create symlinks in standard directories: [$opt_symlinks]
- binaries to: $opt_symlinks_bin
- manpages to: $opt_symlinks_man
- info to: $opt_symlinks_info
- <M> save space for manpages [$opt_savespace_man]
- remove nroff sources [$opt_savespace_man_rm]
- compress preprocessed manpages with gzip [$opt_savespace_man_gzip]
-
- Other options:
- ==============================================================================
- <R> return to main menu
- <Q> quit
- '
-
- screen_4='Current series setup:
- ==============================================================================
- <P> platforms: $s_bin_ns out of $s_bin_nf, disk space required: $s_bin_dus kB
- <B> base: $s_base_ns out of $s_base_nf, disk space required: $s_base_dus kB
- <G> goodies: $s_goodies_ns out of $s_goodies_nf, disk space required: $s_goodies_dus kB
- <F> fonts: $s_fonts_ns out of $s_fonts_nf, disk space required: $s_fonts_dus kB
- <D> doc: $s_doc_ns out of $s_doc_nf, disk space required: $s_doc_dus kB
- total disk space: $s_total_dus kB
-
- ==============================================================================
- <R> return to main menu
- <Q> quit
- '
-
- screen_6='teTeX can be used on multiple platforms by having a subdirectory for each
- installed binary package in $TETEXDIR/bin.
-
- However, if you do not plan to add binaries for other platforms to
- your teTeX installation, your binaries can directly be put into the
- $TETEXDIR/bin directory.'
-
- help_1='
- This is the installation program of the teTeX distribution.
-
- The installation procedure is really simple: just go through the
- menus and select "start installation" if all options are set up
- all right.
-
- To select a menu item (a letter or a number makred with brackets)
- just enter the corresponding letter or number and press return
- (the letters are case insensitive).
-
- Right now, the each menu item is explained in detail:
-
- ======================================================================
- The detected platform:
- ======================================================================
-
- From the list of supported platforms, the installation procedure
- tries to find out which binaries do run best on your system, if it
- is supported. These binaries are then pre-selected. If you plan an
- installation for a hetrogenous network, you may need to add binaries
- for other platforms via the series menue (see below).
-
-
- ======================================================================
- The series menu (<S>)
- ======================================================================
-
- The series menu allows you to select and deselect packages. The
- packages are grouped in some series:
-
- binaries: you need one binary package for each platform you use
- base: this series contains a minimal TeX+LaTeX system
-
- All other series are "add-ons":
-
- goodies: useful extra stuff, including much about LaTeX
- fonts: many extra fonts: amsfonts, PostScript fonts, DC, ...
- doc: much documentation. But one cannot have enough, right?
-
- ======================================================================
- The directories menu (<D>)
- ======================================================================
-
- The teTeX distribution will be installed in a directory of your choice.
- This directory is called TETEXDIR. You may choose any directory you like
- since there are no absolute paths compiled into the binaries. Instead, a
- extension of the Kpathsea library is used (selfdir extension) and all
- paths are relative to the location of the binaries.
-
- The platform independend files are stored in a directory tree called
- TEXMF. TEXMF defaults to TETEXDIR/texmf, but you can change this, if you
- want (many systems use /ust/lib/texmf or /usr/local/lib/texmf)
-
- ======================================================================
- The options menu (<O>)
- ======================================================================
-
- The options are optional part of the installation, as they are not
- always applicable or useful.
-
- "alternate directory":
- ======================
-
- If you choose an alternate directory for automatically generated fonts,
- you can mount your TEXMF tree readonly (as long as you do not want to
- perform administrative tasks: change configuration, install new inputs
- and the like).
-
- There are two good reasons to do this:
- - TEXMF is in your /usr partition and you want to mount it readonly
- (or in another partition that you mount readonly)
- - TEXMF will be accessable via NFS and you do not want to give
- write permissions to your NFS clients
-
- If the second case applies to you, please note that the filename
- database (ls-R) and the automatically generated fonts will be installed
- in the alternate directory you choose. If this directory is local to
- each client, you need to run texhash on each machine to build the
- filename database there. Another disadvantage is that new fonts are not
- shared in that case.
-
-
- "symlinks in standard directories"
- ==================================
-
- To make your binaries, manpages and infopages available to your system,
- there are two common ways:
- 1) install them in "standard places" that are searched for these files
- 2) change your search paths to include the new directories
-
- If you select the "symlinks" option, symbolic links will be installed in
- the directories you choose. Note that if you share the teTeX installation
- accross several machines via NFS and if the chosen "standard places" are
- not shared, you need to create the symbolic links on each client, too
- (or use method 2 on your clients).
-
- If you do not use the "symlinks" option, you propably need to set up
- your search paths (PATH, MANPATH, INFOPATH).
-
-
- "save space for manpages"
- =========================
-
- Remove the sources for the manpages, if you do not want to keep them
- (the distribution contains preprocessed manpages).
-
- You may compress the preprocessed manpages with gzip, if your system
- supports this.
-
-
- "use configuration from a previous teTeX installation"
- ======================================================
-
- If you have an old version of teTeX, you may consider using some
- configuration files from the old system and thus save the time for
- reconfiguring. This option supports the xdvi and dvips configuration
- (papertypes, modes, paper offsets for printers,...), but not your
- hyphenation tables for (La)TeX.
-
- ======================================================================
- Other commands (<I>, <H> and <Q>)
- ======================================================================
-
- Well, this is easy to explain:
- <I> starts the installation after you are confident with set setup
- <H> displays this help
- <Q> quits the installation program
- '
-
-
- guess()
- {
- cat > $TMPDIR/config.guess <<'eof-for-guess'
- #! /bin/sh
- # Attempt to guess a canonical system name.
- # Copyright (C) 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
- #
- # This file is free software; you can redistribute it and/or modify it
- # under the terms of the GNU General Public License as published by
- # the Free Software Foundation; either version 2 of the License, or
- # (at your option) any later version.
- #
- # This program is distributed in the hope that it will be useful, but
- # WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- # General Public License for more details.
- #
- # You should have received a copy of the GNU General Public License
- # along with this program; if not, write to the Free Software
- # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- #
- # As a special exception to the GNU General Public License, if you
- # distribute this file as part of a program that contains a
- # configuration script generated by Autoconf, you may include it under
- # the same distribution terms that you use for the rest of that program.
-
- # Written by Per Bothner <bothner@cygnus.com>.
- # The master version of this file is at the FSF in /home/gd/gnu/lib.
- #
- # This script attempts to guess a canonical system name similar to
- # config.sub. If it succeeds, it prints the system name on stdout, and
- # exits with 0. Otherwise, it exits with 1.
- #
- # The plan is that this can be called by configure scripts if you
- # don't specify an explicit system type (host/target name).
- #
- # Only a few systems have been added to this list; please add others
- # (but try to keep the structure clean).
- #
-
- # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
- # (ghazi@noc.rutgers.edu 8/24/94.)
- if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
- PATH=$PATH:/.attbin ; export PATH
- fi
-
- UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
- UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
- UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
- UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-
- trap 'rm -f dummy.c dummy.o dummy; exit 1' 1 2 15
-
- # Note: order is significant - the case branches are not exclusive.
-
- case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
- alpha:OSF1:V*:*)
- # After 1.2, OSF1 uses "V1.3" for uname -r.
- echo alpha-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^V//'`
- exit 0 ;;
- alpha:OSF1:*:*)
- # 1.2 uses "1.2" for uname -r.
- echo alpha-dec-osf${UNAME_RELEASE}
- exit 0 ;;
- 21064:Windows_NT:50:3)
- echo alpha-dec-winnt3.5
- exit 0 ;;
- amiga:NetBSD:*:*)
- echo m68k-cbm-netbsd${UNAME_RELEASE}
- exit 0 ;;
- arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- echo arm-acorn-riscix${UNAME_RELEASE}
- exit 0;;
- Pyramid*:OSx*:*:*)
- if test "`(/bin/universe) 2>/dev/null`" = att ; then
- echo pyramid-pyramid-sysv3
- else
- echo pyramid-pyramid-bsd
- fi
- exit 0 ;;
- sun4*:SunOS:5.*:*)
- echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- i86pc:SunOS:5.*:*)
- echo i386-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- sun4*:SunOS:6*:*)
- # According to config.sub, this is the proper way to canonicalize
- # SunOS6. Hard to guess exactly what SunOS6 will be like, but
- # it's likely to be more like Solaris than SunOS4.
- echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- sun4*:SunOS:*:*)
- case "`/usr/bin/arch -k`" in
- Series*|S4*)
- UNAME_RELEASE=`uname -v`
- ;;
- esac
- # Japanese Language versions have a version number like `4.1.3-JL'.
- echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
- exit 0 ;;
- sun3*:SunOS:*:*)
- echo m68k-sun-sunos${UNAME_RELEASE}
- exit 0 ;;
- atari*:NetBSD:*:*)
- echo m68k-atari-netbsd${UNAME_RELEASE}
- exit 0 ;;
- sun3*:NetBSD:*:*)
- echo m68k-sun-netbsd${UNAME_RELEASE}
- exit 0 ;;
- mac68k:NetBSD:*:*)
- echo m68k-apple-netbsd${UNAME_RELEASE}
- exit 0 ;;
- RISC*:ULTRIX:*:*)
- echo mips-dec-ultrix${UNAME_RELEASE}
- exit 0 ;;
- VAX*:ULTRIX*:*:*)
- echo vax-dec-ultrix${UNAME_RELEASE}
- exit 0 ;;
- mips:*:4*:UMIPS)
- echo mips-mips-riscos4sysv
- exit 0 ;;
- mips:*:5*:RISCos)
- echo mips-mips-riscos${UNAME_RELEASE}
- exit 0 ;;
- m88k:CX/UX:7*:*)
- echo m88k-harris-cxux7
- exit 0 ;;
- m88k:*:4*:R4*)
- echo m88k-motorola-sysv4
- exit 0 ;;
- m88k:*:3*:R3*)
- echo m88k-motorola-sysv3
- exit 0 ;;
- AViiON:dgux:*:*)
- # DG/UX returns AViiON for all architectures
- UNAME_PROCESSOR=`uname -p`
- if [ $UNAME_PROCESSOR = mc88100 -o $UNAME_PROCESSOR = mc88100 ] ; then
- if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \
- -o ${TARGET_BINARY_INTERFACE}x = x ] ; then
- echo m88k-dg-dgux${UNAME_RELEASE}
- else
- echo m88k-dg-dguxbcs${UNAME_RELEASE}
- fi
- else echo i586-dg-dgux${UNAME_RELEASE}
- fi
- exit 0 ;;
- M88*:DolphinOS:*:*) # DolphinOS (SVR3)
- echo m88k-dolphin-sysv3
- exit 0 ;;
- M88*:*:R3*:*)
- # Delta 88k system running SVR3
- echo m88k-motorola-sysv3
- exit 0 ;;
- XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
- echo m88k-tektronix-sysv3
- exit 0 ;;
- Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
- echo m68k-tektronix-bsd
- exit 0 ;;
- *:IRIX*:*:*)
- echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
- exit 0 ;;
- ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
- i[34]86:AIX:*:*)
- echo i386-ibm-aix
- exit 0 ;;
- *:AIX:2:3)
- if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
- sed 's/^ //' << EOF >dummy.c
- #include <sys/systemcfg.h>
-
- main()
- {
- if (!__power_pc())
- exit(1);
- puts("powerpc-ibm-aix3.2.5");
- exit(0);
- }
- EOF
- ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0
- rm -f dummy.c dummy
- echo rs6000-ibm-aix3.2.5
- elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
- echo rs6000-ibm-aix3.2.4
- else
- echo rs6000-ibm-aix3.2
- fi
- exit 0 ;;
- *:AIX:*:4)
- if /usr/sbin/lsattr -EHl proc0 | grep POWER >/dev/null 2>&1; then
- IBM_ARCH=rs6000
- else
- IBM_ARCH=powerpc
- fi
- if [ -x /usr/bin/oslevel ] ; then
- IBM_REV=`/usr/bin/oslevel`
- else
- IBM_REV=4.${UNAME_RELEASE}
- fi
- echo ${IBM_ARCH}-ibm-aix${IBM_REV}
- exit 0 ;;
- *:AIX:*:*)
- echo rs6000-ibm-aix
- exit 0 ;;
- ibmrt:4.4BSD:*|romp-ibm:BSD:*)
- echo romp-ibm-bsd4.4
- exit 0 ;;
- ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC NetBSD and
- echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
- exit 0 ;; # report: romp-ibm BSD 4.3
- *:BOSX:*:*)
- echo rs6000-bull-bosx
- exit 0 ;;
- DPX/2?00:B.O.S.:*:*)
- echo m68k-bull-sysv3
- exit 0 ;;
- 9000/[34]??:4.3bsd:1.*:*)
- echo m68k-hp-bsd
- exit 0 ;;
- hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
- echo m68k-hp-bsd4.4
- exit 0 ;;
- 9000/[3478]??:HP-UX:*:*)
- case "${UNAME_MACHINE}" in
- 9000/31? ) HP_ARCH=m68000 ;;
- 9000/[34]?? ) HP_ARCH=m68k ;;
- 9000/7?? | 9000/8?[679] ) HP_ARCH=hppa1.1 ;;
- 9000/8?? ) HP_ARCH=hppa1.0 ;;
- esac
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- echo ${HP_ARCH}-hp-hpux${HPUX_REV}
- exit 0 ;;
- 3050*:HI-UX:*:*)
- sed 's/^ //' << EOF >dummy.c
- #include <unistd.h>
- int
- main ()
- {
- long cpu = sysconf (_SC_CPU_VERSION);
- /* The order matters, because CPU_IS_HP_MC68K erroneously returns
- true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
- results, however. */
- if (CPU_IS_PA_RISC (cpu))
- {
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
- default: puts ("hppa-hitachi-hiuxwe2"); break;
- }
- }
- else if (CPU_IS_HP_MC68K (cpu))
- puts ("m68k-hitachi-hiuxwe2");
- else puts ("unknown-hitachi-hiuxwe2");
- exit (0);
- }
- EOF
- ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0
- rm -f dummy.c dummy
- echo unknown-hitachi-hiuxwe2
- exit 0 ;;
- 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
- echo hppa1.1-hp-bsd
- exit 0 ;;
- 9000/8??:4.3bsd:*:*)
- echo hppa1.0-hp-bsd
- exit 0 ;;
- hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
- echo hppa1.1-hp-osf
- exit 0 ;;
- hp8??:OSF1:*:*)
- echo hppa1.0-hp-osf
- exit 0 ;;
- parisc*:Lites*:*:*)
- echo hppa1.1-hp-lites
- exit 0 ;;
- C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
- echo c1-convex-bsd
- exit 0 ;;
- C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit 0 ;;
- C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
- echo c34-convex-bsd
- exit 0 ;;
- C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
- echo c38-convex-bsd
- exit 0 ;;
- C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
- echo c4-convex-bsd
- exit 0 ;;
- CRAY*X-MP:*:*:*)
- echo xmp-cray-unicos
- exit 0 ;;
- CRAY*Y-MP:*:*:*)
- echo ymp-cray-unicos${UNAME_RELEASE}
- exit 0 ;;
- CRAY*C90:*:*:*)
- echo c90-cray-unicos${UNAME_RELEASE}
- exit 0 ;;
- CRAY-2:*:*:*)
- echo cray2-cray-unicos
- exit 0 ;;
- hp3[0-9][05]:NetBSD:*:*)
- echo m68k-hp-netbsd${UNAME_RELEASE}
- exit 0 ;;
- i[34]86:BSD/386:*:* | *:BSD/OS:*:*)
- echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
- exit 0 ;;
- *:FreeBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
- exit 0 ;;
- *:NetBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
- exit 0 ;;
- *:GNU:*:*)
- echo `echo ${UNAME_MACHINE}|sed -e 's,/.*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
- exit 0 ;;
- *:Linux:*:*)
- # The BFD linker knows what the default object file format is, so
- # first see if it will tell us.
- ld_help_string=`ld --help 2>&1`
- if echo $ld_help_string | grep >/dev/null 2>&1 "supported emulations: elf_i[345]86"; then
- echo "${UNAME_MACHINE}-unknown-linux" ; exit 0
- elif echo $ld_help_string | grep >/dev/null 2>&1 "supported emulations: i[345]86linux"; then
- echo "${UNAME_MACHINE}-unknown-linuxaout" ; exit 0
- elif echo $ld_help_string | grep >/dev/null 2>&1 "supported emulations: i[345]86coff"; then
- echo "${UNAME_MACHINE}-unknown-linuxcoff" ; exit 0
- elif test "${UNAME_MACHINE}" = "alpha" ; then
- echo alpha-unknown-linux ; exit 0
- else
- # Either a pre-BFD a.out linker (linuxoldld) or one that does not give us
- # useful --help. Gcc wants to distinguish between linuxoldld and linuxaout.
- test ! -d /usr/lib/ldscripts/. \
- && echo "${UNAME_MACHINE}-unknown-linuxoldld" && exit 0
- # Determine whether the default compiler is a.out or elf
- cat >dummy.c <<EOF
- main(argc, argv)
- int argc;
- char *argv[];
- {
- #ifdef __ELF__
- printf ("%s-unknown-linux\n", argv[1]);
- #else
- printf ("%s-unknown-linuxaout\n", argv[1]);
- #endif
- return 0;
- }
- EOF
- ${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0
- rm -f dummy.c dummy
- fi ;;
- # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions
- # are messed up and put the nodename in both sysname and nodename.
- i[34]86:DYNIX/ptx:4*:*)
- echo i386-sequent-sysv4
- exit 0 ;;
- i[34]86:*:4.*:* | i[34]86:SYSTEM_V:4.*:*)
- if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
- echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE}
- else
- echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}
- fi
- exit 0 ;;
- i[34]86:*:3.2:*)
- if test -f /usr/options/cb.name; then
- UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
- echo ${UNAME_MACHINE}-unknown-isc$UNAME_REL
- elif /bin/uname -X 2>/dev/null >/dev/null ; then
- UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
- (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
- (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
- && UNAME_MACHINE=i586
- echo ${UNAME_MACHINE}-unknown-sco$UNAME_REL
- else
- echo ${UNAME_MACHINE}-unknown-sysv32
- fi
- exit 0 ;;
- Intel:Mach:3*:*)
- echo i386-unknown-mach3
- exit 0 ;;
- paragon:*:*:*)
- echo i860-intel-osf1
- exit 0 ;;
- i860:*:4.*:*) # i860-SVR4
- if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
- echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
- else # Add other i860-SVR4 vendors below as they are discovered.
- echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
- fi
- exit 0 ;;
- mini*:CTIX:SYS*5:*)
- # "miniframe"
- echo m68010-convergent-sysv
- exit 0 ;;
- M680[234]0:*:R3V[567]*:*)
- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
- 3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0)
- uname -p 2>/dev/null | grep 86 >/dev/null \
- && echo i486-ncr-sysv4.3 && exit 0 ;;
- 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
- uname -p 2>/dev/null | grep 86 >/dev/null \
- && echo i486-ncr-sysv4 && exit 0 ;;
- m680[234]0:LynxOS:2.[23]*:*)
- echo m68k-lynx-lynxos${UNAME_RELEASE}
- exit 0 ;;
- mc68030:UNIX_System_V:4.*:*)
- echo m68k-atari-sysv4
- exit 0 ;;
- i[34]86:LynxOS:2.[23]*:*)
- echo i386-lynx-lynxos${UNAME_RELEASE}
- exit 0 ;;
- TSUNAMI:LynxOS:2.[23]*:*)
- echo sparc-lynx-lynxos${UNAME_RELEASE}
- exit 0 ;;
- rs6000:LynxOS:2.[23]*:*)
- echo rs6000-lynx-lynxos${UNAME_RELEASE}
- exit 0 ;;
- RM*:SINIX-*:*:*)
- echo mips-sni-sysv4
- exit 0 ;;
- *:SINIX-*:*:*)
- if uname -p 2>/dev/null >/dev/null ; then
- UNAME_MACHINE=`(uname -p) 2>/dev/null`
- echo ${UNAME_MACHINE}-sni-sysv4
- else
- echo ns32k-sni-sysv
- fi
- exit 0 ;;
- esac
-
- #echo '(No uname command or uname output not recognized.)' 1>&2
- #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
- cat >dummy.c <<EOF
- #ifdef _SEQUENT_
- # include <sys/types.h>
- # include <sys/utsname.h>
- #endif
- main ()
- {
- #if defined (sony)
- #if defined (MIPSEB)
- /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
- I don't know.... */
- printf ("mips-sony-bsd\n"); exit (0);
- #else
- #include <sys/param.h>
- printf ("m68k-sony-newsos%s\n",
- #ifdef NEWSOS4
- "4"
- #else
- ""
- #endif
- ); exit (0);
- #endif
- #endif
-
- #if defined (__arm) && defined (__acorn) && defined (__unix)
- printf ("arm-acorn-riscix"); exit (0);
- #endif
-
- #if defined (hp300) && !defined (hpux)
- printf ("m68k-hp-bsd\n"); exit (0);
- #endif
-
- #if defined (NeXT)
- #if !defined (__ARCHITECTURE__)
- #define __ARCHITECTURE__ "m68k"
- #endif
- int version;
- version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
- printf ("%s-next-nextstep%s\n", __ARCHITECTURE__, version==2 ? "2" : "3");
- exit (0);
- #endif
-
- #if defined (MULTIMAX) || defined (n16)
- #if defined (UMAXV)
- printf ("ns32k-encore-sysv\n"); exit (0);
- #else
- #if defined (CMU)
- printf ("ns32k-encore-mach\n"); exit (0);
- #else
- printf ("ns32k-encore-bsd\n"); exit (0);
- #endif
- #endif
- #endif
-
- #if defined (__386BSD__)
- printf ("i386-unknown-bsd\n"); exit (0);
- #endif
-
- #if defined (sequent)
- #if defined (i386)
- printf ("i386-sequent-dynix\n"); exit (0);
- #endif
- #if defined (ns32000)
- printf ("ns32k-sequent-dynix\n"); exit (0);
- #endif
- #endif
-
- #if defined (_SEQUENT_)
- struct utsname un;
-
- uname(&un);
-
- if (strncmp(un.version, "V2", 2) == 0) {
- printf ("i386-sequent-ptx2\n"); exit (0);
- }
- if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
- printf ("i386-sequent-ptx1\n"); exit (0);
- }
- printf ("i386-sequent-ptx\n"); exit (0);
-
- #endif
-
- #if defined (vax)
- #if !defined (ultrix)
- printf ("vax-dec-bsd\n"); exit (0);
- #else
- printf ("vax-dec-ultrix\n"); exit (0);
- #endif
- #endif
-
- #if defined (alliant) && defined (i860)
- printf ("i860-alliant-bsd\n"); exit (0);
- #endif
-
- exit (1);
- }
- EOF
-
- ${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy && rm dummy.c dummy && exit 0
- rm -f dummy.c dummy
-
- # Apollos put the system type in the environment.
-
- test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
-
- # Convex versions that predate uname can use getsysinfo(1)
-
- if [ -x /usr/convex/getsysinfo ]
- then
- case `getsysinfo -f cpu_type` in
- c1*)
- echo c1-convex-bsd
- exit 0 ;;
- c2*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit 0 ;;
- c34*)
- echo c34-convex-bsd
- exit 0 ;;
- c38*)
- echo c38-convex-bsd
- exit 0 ;;
- c4*)
- echo c4-convex-bsd
- exit 0 ;;
- esac
- fi
-
- #echo '(Unable to guess system type)' 1>&2
-
- exit 1
- eof-for-guess
- cd $TMPDIR;
- sh $TMPDIR/config.guess
- }
-
- #debug=true
- debug=
-
- ################################################################
- # main()
- ################################################################
- init
- menu_main
-