1#!/bin/sh
2# Release the QuickJS source code
3
4set -e
5
6version=`cat VERSION`
7
8if [ "$1" = "-h" ] ; then
9    echo "release.sh [all]"
10    echo ""
11    echo "all: build all the archives. Otherwise only build the quickjs source archive."
12    exit 1
13fi
14
15extras="no"
16binary="no"
17quickjs="no"
18
19if [ "$1" = "all" ] ; then
20    extras="yes"
21    binary="yes"
22    quickjs="yes"
23elif [ "$1" = "binary" ] ; then
24    binary="yes"
25else
26    quickjs="yes"
27fi
28
29#################################################"
30# extras
31
32if [ "$extras" = "yes" ] ; then
33
34d="quickjs-${version}"
35name="quickjs-extras-${version}"
36outdir="/tmp/${d}"
37
38rm -rf $outdir
39mkdir -p $outdir $outdir/unicode $outdir/tests
40
41cp unicode/* $outdir/unicode
42cp -a tests/bench-v8 $outdir/tests
43
44( cd /tmp && tar Jcvf /tmp/${name}.tar.xz ${d} )
45
46fi
47
48#################################################"
49# binary release
50
51if [ "$binary" = "yes" ] ; then
52
53make -j4 qjs run-test262
54make -j4 CONFIG_M32=y qjs32 run-test262-32
55strip qjs run-test262 qjs32 run-test262-32
56
57d="quickjs-linux-x86_64-${version}"
58outdir="/tmp/${d}"
59
60rm -rf $outdir
61mkdir -p $outdir
62
63cp qjs run-test262 $outdir
64
65( cd /tmp/$d && rm -f ../${d}.zip && zip -r ../${d}.zip . )
66
67d="quickjs-linux-i686-${version}"
68outdir="/tmp/${d}"
69
70rm -rf $outdir
71mkdir -p $outdir
72
73cp qjs32 $outdir/qjs
74cp run-test262-32 $outdir/run-test262
75
76( cd /tmp/$d && rm -f ../${d}.zip && zip -r ../${d}.zip . )
77
78fi
79
80#################################################"
81# quickjs
82
83if [ "$quickjs" = "yes" ] ; then
84
85make build_doc
86
87d="quickjs-${version}"
88outdir="/tmp/${d}"
89
90rm -rf $outdir
91mkdir -p $outdir $outdir/doc $outdir/tests $outdir/examples
92
93cp Makefile VERSION TODO Changelog readme.txt release.sh unicode_download.sh \
94   qjs.c qjsc.c qjscalc.js repl.js \
95   quickjs.c quickjs.h quickjs-atom.h \
96   quickjs-libc.c quickjs-libc.h quickjs-opcode.h \
97   cutils.c cutils.h list.h \
98   libregexp.c libregexp.h libregexp-opcode.h \
99   libunicode.c libunicode.h libunicode-table.h \
100   libbf.c libbf.h \
101   jscompress.c unicode_gen.c unicode_gen_def.h \
102   run-test262.c test262o.conf test262.conf \
103   test262o_errors.txt test262_errors.txt \
104   $outdir
105
106cp tests/*.js tests/*.patch tests/bjson.c $outdir/tests
107
108cp examples/*.js examples/*.c $outdir/examples
109
110cp doc/quickjs.texi doc/quickjs.pdf doc/quickjs.html \
111   doc/jsbignum.texi doc/jsbignum.html doc/jsbignum.pdf \
112   $outdir/doc
113
114( cd /tmp && tar Jcvf /tmp/${d}.tar.xz ${d} )
115
116fi
117