1 # builds "hard" prerequisites and llpp
5 command -v $1 >/dev
/null
2>&1
10 mupdfrev
=803470e161539f9013f854188e57505f4878e891
11 while getopts j
:f
:t
:r
:F opt
; do
13 j
) jobs="-j $OPTARG";;
17 r
) mupdfrev
="$OPTARG";;
21 "usage: $0 [-j jobs] [-f filter] [-t build type] [-r revision] [opt]"
25 shift $
(($OPTIND - 1))
31 if executable_p wget
; then
36 if executable_p curl
; then
42 echo "no program to fetch remote urls found"
47 lablgl
=http
://wwwfun.kurims.kyoto-u.ac.jp
/soft
/lsl
/dist
/lablgl-1.05.
tar.gz
48 baseurl
="http://git.ghostscript.com/"
51 mutgz
=mupdf-
$mupdfrev.tgz
52 muurl
="${baseurl}?p=mupdf.git;a=snapshot;h=$mupdfrev;sf=tgz"
54 test -d lablgl-1.05 || \
55 (dl
$lablgl $
(basename $lablgl) && tar -xzf lablgl-1.05.
tar.gz
)
56 test -e $mutgz || dl
$muurl $mutgz
58 (mkdir
$mudir && tar --strip-components 1 -C $mudir -xzf $mutgz)
63 test $m = jbig2dec
&& p
=$m || p
=thirdparty
/$m
64 test $m = openjpeg
&& e
=opj_config.h.
in.user || e
=README
65 u
="${baseurl}?p=$p.git;a=snapshot;h=$r;sf=tgz"
66 test -e $t || dl
$u $t
67 test -e $mudir/thirdparty
/$m/$e ||
68 (rm -fr $mudir/thirdparty
/$m && mkdir
$mudir/thirdparty
/$m &&
69 tar -xzf $t --strip-components 1 -C $mudir/thirdparty
/$m)
73 grep -v -E "$filt" <<-EOF | fetch
74 2ef0a19842ae1172bec153225328aaaeaf130a18 freetype
75 11b4c3203dc5a9551720760570c82408c303cd1c jbig2dec
76 219d59dcfd0e6ce8a3d8c5510e29237f0b5078ed jpeg
77 4c7d23d2cd00cee7822a61d1e8472439bd6d53c9 openjpeg
78 c16b1b18ddaaf090caf321af831bccac6381a381 zlib
81 executable_p gmake
&& make=gmake ||
make=make
84 && sed 17d Makefile.config.linux.mdk
> Makefile.config \
85 && $make lib $
(test "$1" = opt
&& echo libopt
) \
88 LIBDIR
=$root/lib
/ocaml \
89 DLLDIR
=$root/lib
/ocaml
/stublibs \
90 INSTALLDIR
=$root/lib
/ocaml
/lablGL
)
92 opjconfig
=$root/$mudir/thirdparty
/openjpeg
/libopenjpeg
/opj_config.h
93 expr "$filt" : '.*openjpeg.*' >/dev
/null ||
{
94 cat >>$opjconfig <<EOF
96 #define OPJ_BIG_ENDIAN 1
101 (cd $mudir && $make $jobs build
=$btyp $ojbe)
105 srcpath
=$
(dirname $0)
107 tp
=$root/$mudir/thirdparty
110 ccopt
="$ccopt -I $tp/jbig2dec"
111 ccopt
="$ccopt -I $tp/jpeg"
112 ccopt
="$ccopt -I $tp/freetype/include"
113 ccopt
="$ccopt -I $tp/openjpeg/libopenjpeg"
114 ccopt
="$ccopt -I $tp/zlib"
115 ccopt
="$ccopt -I $root/$mudir/include"
117 cclib
="$cclib -L$root/$mudir/build/$btyp"
118 cclib
="$cclib -lmupdf"
119 cclib
="$cclib -lz -ljpeg -lopenjpeg -ljbig2dec -lpthread -lcrypto"
122 ccopt
="$ccopt -D_GNU_SOURCE"
123 test -n "$usefontconfig" && {
124 ccopt
="$ccopt -DUSE_FONTCONFIG $(pkg-config --cflags fontconfig)"
125 cclib
="$cclib $(pkg-config --libs fontconfig)"
128 test -n "$useegl" && {
129 ccopt
="$ccopt -DUSE_EGL $(pkg-config --cflags egl)"
130 cclib
="$cclib $(pkg-config --libs egl)"
133 expr "$filt" : '.*freetype.*' >/dev
/null
&& {
134 ccopt
="$ccopt $(freetype-config --cflags) -include ft2build.h"
135 cclib
="$cclib $(freetype-config --libs)"
137 ccopt
="$ccopt -include $tp/freetype/include/ft2build.h"
138 cclib
="$cclib -lfreetype"
141 echo Building llpp...
143 sh
$srcpath/mkhelp.sh
$srcpath/keystoml.ml
$srcpath/KEYS
> help.ml
145 if test "$1" = "opt"; then
146 executable_p ocamlopt.opt
&& comp
=ocamlopt.opt || comp
=ocamlopt
151 executable_p ocamlc.opt
&& comp
=ocamlc.opt || comp
=ocamlc
157 $comp -c -o link.o
-ccopt "$ccopt" $srcpath/link.c
158 $comp -c -o bo.
$osuf $srcpath/le
/bo.ml
159 $comp -c -o help.
$osuf help.ml
160 $comp -c -o utils.
$osuf $srcpath/utils.ml
161 $comp -c -o wsi.cmi
$srcpath/wsi.mli
162 $comp -c -o wsi.
$osuf $srcpath/wsi.ml
163 $comp -c -o parser.
$osuf $srcpath/parser.ml
164 $comp -c -o config.
$osuf -I $root/lib
/ocaml
/lablGL
$srcpath/config.ml
165 $comp -c -pp "sed -f $srcpath/pp.sed" -o main.
$osuf \
166 -I $root/lib
/ocaml
/lablGL
$srcpath/main.ml
169 -I $root/lib
/ocaml
/lablGL \
170 str.
$asuf unix.
$asuf lablgl.
$asuf \