blob: 17fe0dbe296138e3b72a39ae85117852c8d030da (
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
138
139
140
141
142
143
144
145
146
147
148
|
#!/bin/sh
# $Id$
# Public domain. Originally written 2008, Karl Berry.
# Info about updating asymptote.
#
# Do not just run this script. It won't work. It is necessary to run the
# commands one at a time and think about what is being done.
#
# Also, the script uses various paths and convenience variables that I
# define for myself; feel free to peruse tug.org:~karl/.bash_login, etc.
# --karl
test "x$1" = x--build || exit 1
renice +19 -p $$ >/dev/null 2>&1
#
if false && $update_sources_from_ctan; then
# this part is about copying the sources from CTAN to TL.
cd $B/source/utils/
# be sure no dregs:
(cd asymptote && make distclean; rm -f Makefile; sup && sat)
\cp -arf /home/ftp/tex-archive/graphics/asymptote/ .
cd asymptote
ver=`awk -F\" '{print $2}' revision.cc | sed 1q` # the newly-released version
echo $ver
edit ../README for $ver
# show list of new files to add:
svn status | sed -n 's/^\?//p'
svn add `!!`
# show list of files to remove:
diff -qr . /home/ftp/tex-archive/graphics/asymptote/ \
| egrep -v ' differ' | egrep -v '\.svn' | tee /tmp/asyrm
sed -e 's,: ,/,' -e 's/^Only in //' /tmp/asyrm
svn rm `!!`
# final check and commit:
svn status | fgrep \? # # don't worry about binaries.
svn commit -m"asy $ver sources" . ../README
exit $?
#
elif test "x$1" = x--build; then
# this part is about building the x86 linux asymptote on tug.org.
# Despite all the dire warnings above, this part actually can be run
# as a script, because it's so often necessary to redo.
unset GREP_OPTIONS CDPATH
PATH=/usr/bin:/usr/sbin; export PATH # system gcc for sake of shared libs
PATH=$lb:$PATH # get our kpsewhich
svn=/usr/local/bin/svn # so we need our svn explicitly
set -x
rhtoolset=/opt/rh/devtoolset-10/enable
test -s $rhtoolset && . $rhtoolset
set -e
cd /home/texlive/karl/Build/source/utils/asymptote
$svn update
$svn revert asy-keywords.el
$svn status
if test -f Makefile; then
make clean
$svn revert doc/asy-latex.pdf
rm -f Makefile
fi
rm -rf config.cache config.h config.log config.status errors.temp
rm -rf /tmp/ainst autom4te.cache
./configure --prefix=/tmp/ainst \
--with-latex=/tmp/ainst/latex --with-context=/tmp/ainst/context \
--disable-fftw --disable-gl --disable-gsl --disable-lsp \
--enable-texlive-build CFLAGS=-g CXXFLAGS=-std=c++17 #-ansi
make
make check
make install-prebuilt
exit 0
#
elif false && $update_runtime_from_ainst; then
# this part is about copying the results of a successful build
# and install (from the previous section) into the Master/texmf runtime.
# This should be done only when new binaries are being commited,
# because support files and binaries are required to match versions.
cp="cp -afv"
xu=$B/source/utils
xy=$xu/asymptote
cd $xy
ver=`awk -F\" '{print $2}' revision.cc | sed 1q`; echo $ver
#
$cp binaries/i386-windows/texlive/asy.exe $pg/asymptote/
$cp binaries/x86_64-windows/texlive/asy.exe $pg/asymptote64/
# also check dlls
cd /tmp/ainst
$cp share/info/{*/,}*.info $xist/doc/info
$cp share/man/man1/asy.1 $xist/doc/man/man1/asy.1
$cp share/man/man1/xasy.1x $xist/doc/man/man1/xasy.1
$cp -r share/doc/asymptote $xist/doc
#
$cp -r share/asymptote $xist
#
$cp latex/asymptote/* $xist/tex/latex/asymptote/
$cp context*/asymptote/* $xist/tex/context/third/asymptote/
make -C $xist/doc/man
ci="$xu/README \
$xy \
$pb/tl-update-asy \
$pg/asymptote* \
$xist/doc/info/ $xist/doc/man $xist/doc/asymptote \
$xist/asymptote/ $xist/tex/*/asymptote"
svn status $ci | sed -n 's/^\?//p'
svn add `!!`
cd /tmp/ainst
xmf=/home/texlive/karl/Master/texmf-dist
diff -qr share/asymptote/ $xmf/asymptote/ | fgrep -v .svn
#svn rm ...
diff -qr share/doc/asymptote/ $xmf/doc/asymptote/ | fgrep -v .svn
#svn rm ...
svn status $ci # just to see
scom -m"asymptote $ver support files, windows binaries" $ci
fi
# the production build on x86_64-linux and i386-linux:
#
# cd .../Build/source/utils
# docker run -it -v "$(pwd)/asymptote:/asymptote" --entrypoint bash debian:10
#
# In the docker container you are dropped in:
# apt update
# apt upgrade
# # note we do NOT install libtirpc-dev because it cannot disabled by configure
# apt install build-essential pkg-config libeigen3-dev libcurl4-openssl-dev libreadline-dev libboost-filesystem-dev flex libglu1-mesa-dev freeglut3-dev libosmesa6-dev libreadline6-dev zlib1g-dev bison libglm-dev libncurses-dev
# cd /asymptote
# ./configure --prefix=/tmp/asyinst --enable-static --enable-texlive-build CXXFLAGS=-std=c++11 --disable-gsl --disable-fftw --disable-lsp --disable-curl
# sed -i -e 's/^LIBS = /LIBS = -static-libgcc -static-libstdc++ /' Makefile
# make -j6
# exit
# Strip and copy the resulting asy.
# For i386 binaries:
# docker run -it -v "$(pwd)/asymptote:/asymptote" --entrypoint bash i386/debian:10
|