And some more
[llpp/slowscroll.git] / buildall.sh
blob8d2ebb52a80850138af25a1ac17582e4ec9828ca
1 # builds "hard" prerequisites and llpp
2 set -e
4 jobs=1
5 while getopts j: opt; do
6 case "$opt" in
7 j) jobs="$OPTARG";;
8 ?)
9 printf "usage: $0 [-j N] [opt]\n";
10 exit 1;;
11 esac
12 done
13 shift $(($OPTIND - 1))
15 mkdir -p 3rdp
16 cd 3rdp
17 root=$(pwd)
19 lablgl=http://wwwfun.kurims.kyoto-u.ac.jp/soft/lsl/dist/lablgl-1.04.tar.gz
20 baseurl="http://git.ghostscript.com/"
22 mupdfrev=1b4b5fdfa6b74827631d42efd2a61226125f036b
23 mudir=mupdf-$(printf "%.7s" $mupdfrev)
24 mutgz=mupdf-$mupdfrev.tgz
25 muurl="${baseurl}?p=mupdf.git;a=snapshot;h=$mupdfrev;sf=tgz"
27 test -d lablGL-1.04 || (wget -nc $lablgl && tar -xzf lablgl-1.04.tar.gz)
28 test -e $mutgz || wget -nc $muurl -O $mutgz
29 test -d $mudir || tar -xzf $mutgz
31 while read m r; do
32 d=$m-$(printf "%.7s" $r)
33 t=$m-$r.tgz
34 test $m = jbig2dec && p=$m || p=thirdparty/$m
35 u="${baseurl}?p=$p.git;a=snapshot;h=$r;sf=tgz"
36 test -e $t || wget -nc $u -O $t
37 test -e $mudir/thirdparty/$m/README ||
38 (rm -fr $mudir/thirdparty/$m && tar -xzf $t && mv $d $mudir/thirdparty/$m)
39 done <<-EOF
40 freetype 2ef0a19842ae1172bec153225328aaaeaf130a18
41 jbig2dec 3e6c1b0670740be3b138228dcc134bf5e6c1eceb
42 jpeg 219d59dcfd0e6ce8a3d8c5510e29237f0b5078ed
43 openjpeg d5693f4ec8635d81defc92619c02134b6b785b06
44 zlib c16b1b18ddaaf090caf321af831bccac6381a381
45 EOF
47 executable_p() {
48 command -v $1 >/dev/null 2>&1
51 executable_p gmake && make=gmake || make=make
53 (cd lablGL-1.04 \
54 && sed 17d Makefile.config.linux.mdk > Makefile.config \
55 && $make -j 1 lib $(test "$1" = opt && echo libopt) \
56 && $make -j 1 install \
57 BINDIR=$root/bin \
58 LIBDIR=$root/lib/ocaml \
59 DLLDIR=$root/lib/ocaml/stublibs \
60 INSTALLDIR=$root/lib/ocaml/lablGL)
62 (cd $mudir && $make -j "$jobs" build=release)
64 cd ..
66 srcpath=$(dirname $0)
68 tp=$root/$mudir/thirdparty
70 ccopt="-O"
71 ccopt="$ccopt -I $tp/jbig2dec"
72 ccopt="$ccopt -I $tp/jpeg"
73 ccopt="$ccopt -I $tp/freetype/include"
74 ccopt="$ccopt -I $tp/openjpeg/libopenjpeg"
75 ccopt="$ccopt -I $tp/zlib"
76 ccopt="$ccopt -I $root/$mudir/fitz -I $root/$mudir/pdf -I $root/$mudir/xps"
77 ccopt="$ccopt -I $root/$mudir/cbz"
79 ccopt="$ccopt -include $tp/freetype/include/ft2build.h -D_GNU_SOURCE"
81 cclib="$cclib -L$root/$mudir/build/release"
82 cclib="$cclib -lfitz"
83 cclib="$cclib -lz -ljpeg -lopenjpeg -ljbig2dec -lfreetype -lpthread"
84 cclib="$cclib -lX11"
86 echo Building llpp...
88 sh $srcpath/mkhelp.sh $srcpath/keystoml.ml $srcpath/KEYS > help.ml
90 if test "$1" = "opt"; then
91 executable_p ocamlopt.opt && comp=ocamlopt.opt || comp=ocamlopt
92 cmsuf=cmx
93 dolink() {
94 $comp -o llpp \
95 -I $root/lib/ocaml/lablGL \
96 str.cmxa unix.cmxa lablgl.cmxa \
97 link.o \
98 -cclib "$cclib" \
99 help.cmx \
100 utils.cmx \
101 parser.cmx \
102 wsi.cmx \
103 main.cmx
105 else
106 executable_p ocamlc.opt && comp=ocamlc.opt || comp=ocamlc
107 cmsuf=cmo
108 dolink() {
109 $comp -custom -o llpp \
110 -I $root/lib/ocaml/lablGL \
111 str.cma unix.cma lablgl.cma \
112 link.o \
113 -cclib "$cclib" \
114 help.cmo \
115 utils.cmo \
116 parser.cmo \
117 wsi.cmo \
118 main.cmo
122 $comp -c -o link.o -ccopt "$ccopt" $srcpath/link.c
123 $comp -c -o help.$cmsuf help.ml
124 $comp -c -o utils.$cmsuf $srcpath/utils.ml
125 $comp -c -o wsi.cmi $srcpath/wsi.mli
126 $comp -c -o wsi.$cmsuf $srcpath/wsi.ml
127 $comp -c -o parser.$cmsuf $srcpath/parser.ml
128 $comp -c -o main.$cmsuf -I $root/lib/ocaml/lablGL $srcpath/main.ml
129 dolink
131 echo All done