release.sh (3838B)
1 #!/bin/sh 2 # Release the QuickJS source code 3 4 set -e 5 6 version=`cat VERSION` 7 8 if [ "$1" = "-h" ] ; then 9 echo "release.sh [release_list]" 10 echo "" 11 echo "release_list: extras binary win_binary cosmo_binary quickjs" 12 13 exit 1 14 fi 15 16 release_list="extras binary win_binary cosmo_binary quickjs" 17 18 if [ "$1" != "" ] ; then 19 release_list="$1" 20 fi 21 22 #################################################" 23 # extras 24 25 if echo $release_list | grep -w -q extras ; then 26 27 d="quickjs-${version}" 28 name="quickjs-extras-${version}" 29 outdir="/tmp/${d}" 30 31 rm -rf $outdir 32 mkdir -p $outdir $outdir/unicode $outdir/tests 33 34 cp unicode/* $outdir/unicode 35 cp -a tests/bench-v8 tests/octane tests/cli $outdir/tests 36 37 ( cd /tmp && tar Jcvf /tmp/${name}.tar.xz ${d} ) 38 39 fi 40 41 #################################################" 42 # Windows binary release 43 44 if echo $release_list | grep -w -q win_binary ; then 45 46 # win64 47 48 dlldir=/usr/x86_64-w64-mingw32/sys-root/mingw/bin 49 cross_prefix="x86_64-w64-mingw32-" 50 d="quickjs-win-x86_64-${version}" 51 outdir="/tmp/${d}" 52 53 rm -rf $outdir 54 mkdir -p $outdir 55 56 make clean 57 make CONFIG_WIN32=y clean 58 59 make CONFIG_WIN32=y CONFIG_LTO=y qjs.exe 60 cp qjs.exe $outdir 61 ${cross_prefix}strip $outdir/qjs.exe 62 cp $dlldir/libwinpthread-1.dll $outdir 63 64 ( cd /tmp/$d && rm -f ../${d}.zip && zip -r ../${d}.zip . ) 65 66 make CONFIG_WIN32=y clean 67 68 # win32 69 70 dlldir=/usr/i686-w64-mingw32/sys-root/mingw/bin 71 cross_prefix="i686-w64-mingw32-" 72 d="quickjs-win-i686-${version}" 73 outdir="/tmp/${d}" 74 75 rm -rf $outdir 76 mkdir -p $outdir 77 78 make clean 79 make CONFIG_WIN32=y clean 80 81 make CONFIG_WIN32=y CONFIG_M32=y CONFIG_LTO=y qjs.exe 82 cp qjs.exe $outdir 83 ${cross_prefix}strip $outdir/qjs.exe 84 cp $dlldir/libwinpthread-1.dll $outdir 85 86 ( cd /tmp/$d && rm -f ../${d}.zip && zip -r ../${d}.zip . ) 87 88 fi 89 90 #################################################" 91 # Linux binary release 92 93 if echo $release_list | grep -w -q binary ; then 94 95 make clean 96 make CONFIG_WIN32=y clean 97 make -j4 CONFIG_LTO=y qjs run-test262 98 strip qjs run-test262 99 100 d="quickjs-linux-x86_64-${version}" 101 outdir="/tmp/${d}" 102 103 rm -rf $outdir 104 mkdir -p $outdir 105 106 cp qjs run-test262 $outdir 107 108 ( cd /tmp/$d && rm -f ../${d}.zip && zip -r ../${d}.zip . ) 109 110 make clean 111 make -j4 CONFIG_LTO=y CONFIG_M32=y qjs run-test262 112 strip qjs run-test262 113 114 d="quickjs-linux-i686-${version}" 115 outdir="/tmp/${d}" 116 117 rm -rf $outdir 118 mkdir -p $outdir 119 120 cp qjs run-test262 $outdir 121 122 ( cd /tmp/$d && rm -f ../${d}.zip && zip -r ../${d}.zip . ) 123 124 fi 125 126 #################################################" 127 # Cosmopolitan binary release 128 129 if echo $release_list | grep -w -q cosmo_binary ; then 130 131 export PATH=$PATH:$HOME/cosmocc/bin 132 133 d="quickjs-cosmo-${version}" 134 outdir="/tmp/${d}" 135 136 rm -rf $outdir 137 mkdir -p $outdir 138 139 make clean 140 make CONFIG_COSMO=y -j4 qjs run-test262 141 cp qjs run-test262 $outdir 142 cp readme-cosmo.txt $outdir/readme.txt 143 144 ( cd /tmp/$d && rm -f ../${d}.zip && zip -r ../${d}.zip . ) 145 146 fi 147 148 #################################################" 149 # quickjs 150 151 if echo $release_list | grep -w -q quickjs ; then 152 153 make build_doc 154 155 d="quickjs-${version}" 156 outdir="/tmp/${d}" 157 158 rm -rf $outdir 159 mkdir -p $outdir $outdir/doc $outdir/tests $outdir/examples 160 161 cp Makefile VERSION TODO Changelog readme.txt LICENSE \ 162 release.sh unicode_download.sh \ 163 qjs.c qjsc.c repl.js \ 164 quickjs.c quickjs.h quickjs-atom.h \ 165 quickjs-libc.c quickjs-libc.h quickjs-opcode.h \ 166 cutils.c cutils.h list.h \ 167 libregexp.c libregexp.h libregexp-opcode.h \ 168 libunicode.c libunicode.h libunicode-table.h \ 169 dtoa.c dtoa.h \ 170 unicode_gen.c unicode_gen_def.h \ 171 run-test262.c test262o.conf test262.conf \ 172 test262o_errors.txt test262_errors.txt \ 173 $outdir 174 175 cp tests/*.js tests/*.patch tests/bjson.c $outdir/tests 176 177 cp examples/*.js examples/*.c examples/*.json $outdir/examples 178 179 cp doc/quickjs.texi doc/quickjs.pdf doc/quickjs.html \ 180 $outdir/doc 181 182 ( cd /tmp && tar Jcvf /tmp/${d}.tar.xz ${d} ) 183 184 fi