aboutsummaryrefslogtreecommitdiff
path: root/tl-build.sh
blob: caa9e1406719ae0e59b6448ea51ce7062d6de396 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#!/bin/sh

# Public domain.  Originally written 2005 by Karl Berry.

this_dir=`pwd`
tl_sourcedir=`pwd`/source

echo "Include clisp and xindy?"
read with_clisp?'[y/n] '
enable_xindy=""

# Context
preset_context_ver=2.11.01
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
	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
	sh build.sh
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
	sed -i -e 's/^LIBS = /LIBS = -static /' Makefile
	gmake
	strip asy
fi

# Now build TL
if [[ ${build_tl} == "y" ]]; then
    cd ${tl_sourcedir}
    export TL_MAKE=gmake
    ./Build ${enable_xindy}
    if [[ ${with_context} == "y" ]]; then
	    cd ${tl_sourcedir}
	    tl_bindir=${tl_sourcedir}/inst/bin/`ls ${tl_sourcedir}/inst/bin`
	    cp luametatex-$context_ver/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
    if [[ ${with_asymptote} == "y" ]];then
	    cd ${tl_sourcedir}
	    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
fi

cd ${this_dir}