aboutsummaryrefslogtreecommitdiff
path: root/tl-build.sh
blob: fa0b1bcc4a282b46f04fb1c6c2921a9185f1263b (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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#!/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.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}