#!/bin/sh # Public domain. Originally written 2005 by Karl Berry. this_dir=`pwd` tl_sourcedir=`pwd`/source echo "" echo " TeX Live for OpenBSD built script " echo "" echo "You are about to build TeX Live from the development sources." echo "Please specify whether you also want to include xindy, context" echo "and asymptote in the process." echo "" echo "Do I have to get the latest development sources? (You ought to" echo "have done so before launching this script.)" read get_dev_src?'[y/n] ' if [[ ${get_dev_src} == "y" ]]; then ./checkout-tl.sh && echo "... Ok." fi echo "Include clisp and xindy?" read with_clisp?'[y/n] ' enable_xindy="" # Context preset_context_ver=2.11.02 echo "Include Context v${preset_context_ver}?" read with_context?'[y/n] ' if [[ ${with_context} == "y" ]]; then context_ver=${preset_context_ver} fi unset preset_context_ver # Asymptote echo "Include Asymptote?" read with_asymptote?'[y/n] ' # TL echo "Build TL?" read build_tl?'[y/n] ' # First build: clisp if [[ ${with_clisp} == "y" ]]; then mkdir source/clisp && cd source/clisp clisp_basedir=`pwd` clisp_toolsdir=$clisp_basedir/clisp-tools clisp_builddir=$clisp_basedir/clisp-build mkdir $clisp_toolsdir wget=wget # or "curl -O" or whatever #libsigsegv_ver=libsigsegv-2.13 libsigsegv_ver=$(curl -s https://tug.org/svn/texlive/trunk/Build/source/utils/README?view=co | grep libsigsegv_ver= | sed 's/.*=//') cd $clisp_basedir $wget http://ftp.gnu.org/gnu/libsigsegv/$libsigsegv_ver.tar.gz gzip -dc $libsigsegv_ver.tar.gz | tar xf - cd $libsigsegv_ver ./configure -C --prefix=$clisp_toolsdir --disable-shared --enable-static \ && make && make check && make install # iconv #libiconv_ver=libiconv-1.16 libiconv_ver=$(curl -s https://tug.org/svn/texlive/trunk/Build/source/utils/README?view=co | grep libiconv_ver= | sed 's/.*=//') cd $clisp_basedir $wget http://ftp.gnu.org/gnu/libiconv/$libiconv_ver.tar.gz gzip -dc $libiconv_ver.tar.gz | tar xf - cd $libiconv_ver ./configure -C --prefix=$clisp_toolsdir \ --disable-shared --enable-static --disable-nls \ && make && make check && make install #clisp_ver=clisp-2.49.92 clisp_ver=$(curl -s https://tug.org/svn/texlive/trunk/Build/source/utils/README?view=co | grep clisp_ver= | sed 's/.*=//') cd $clisp_basedir $wget https://alpha.gnu.org/gnu/clisp/$clisp_ver.tar.bz2 bunzip2 -dc $clisp_ver.tar.bz2 | tar xf - cd $clisp_ver ./configure CPPFLAGS=-DUNIX_BINARY_DISTRIB --prefix=$clisp_toolsdir \ --without-readline --without-dynamic-modules \ --disable-nls \ --with-libsigsegv-prefix=$clisp_toolsdir \ --with-libiconv-prefix=$clisp_toolsdir \ $clisp_builddir \ && (cd $clisp_builddir && make) # define --enable-xindy variable enable_xindy="--enable-xindy CLISP=$clisp_builddir/clisp" fi # If Context is required, then retrieve and build it first if [[ ${with_context} == "y" ]]; then cd $tl_sourcedir # github may be outdated, says the readme file # curl -L https://github.com/contextgarden/luametatex/archive/refs/tags/v$context_ver.tar.gz > luametatex-$context_ver.tar.gz # tar xzf luametatex-$context_ver.tar.gz # cd luametatex-$context_ver if [[ -d luametatex ]];then rm -f luametatex-{$context_ver}.tar.xz rm -rf luametatex fi rsync tug.org::tldevsrc/Master/source/luametatex-$context_ver.tar.xz . xzcat luametatex-$context_ver.tar.xz | tar xf - luametatex_src_dir=$(xzcat luametatex-$context_ver.tar.xz | tar tf - | head -1) cd ${luametatex_src_dir} sh build.sh fi function include_context { cd ${tl_sourcedir} if [[ -d ${tl_sourcedir}/inst/bin ]];then tl_bindir=${tl_sourcedir}/inst/bin/`ls ${tl_sourcedir}/inst/bin` cp ${luametatex_src_dir}/build/native/luametatex $tl_bindir cd ${tl_bindir} ln -s luametatex context ln -s luametatex mtxrun ln -s ../../texmf-dist/scripts/context/lua/context.lua context.lua ln -s ../../texmf-dist/scripts/context/lua/mtxrun.lua mtxrun.lua ln -s ../../texmf-dist/scripts/context-texlive/stubs-mkiv/unix/luatools luatools ln -s ../../texmf-dist/scripts/context-texlive/stubs-mkiv/unix/contextjit contextjit ln -s ../../texmf-dist/scripts/context-texlive/stubs-mkiv/unix/mtxrunjit mtxrunjit ln -s ../../texmf-dist/scripts/context-texlive/stubs/unix/texexec texexec ln -s ../../texmf-dist/scripts/context-texlive/stubs/unix/texmfstart texmfstart fi } # Build Asymptote if [[ ${with_asymptote} == "y" ]];then cd ${tl_sourcedir}/utils/asymptote ./configure --prefix=/tmp/asyinst --enable-texlive-build \ --enable-static CXXFLAGS=-std=c++11 \ --disable-curl --disable-lsp --disable-gsl --disable-fftw --disable-readline sed -i.bak -e 's/^LIBS = /LIBS = -static /' Makefile gmake strip asy fi function include_asymptote { cd ${tl_sourcedir} if [[ -d ${tl_sourcedir}/inst/bin ]];then tl_bindir=${tl_sourcedir}/inst/bin/`ls ${tl_sourcedir}/inst/bin` cp utils/asymptote/asy ${tl_bindir} cd ${tl_bindir} ln -s ../../texmf-dist/asymptote/GUI/xasy.py xasy fi } # Now build TL if [[ ${build_tl} == "y" ]]; then cd ${tl_sourcedir} export TL_MAKE=gmake ./Build ${enable_xindy} if [[ ${with_context} == "y" ]]; then include_context fi if [[ ${with_asymptote} == "y" ]];then include_asymptote fi else if [[ ${with_context} == "y" ]]; then include_context fi if [[ ${with_asymptote} == "y" ]];then include_asymptote fi fi cd ${this_dir}