1#!/bin/sh 2# 3# qhull-zip.sh version -- Make zip and tgz files for Qhull release 4# 5# requires road-script.sh from http://www.qhull.org/road/ 6# for check_err_log, log_step, log_note, exit_err, exit_if_fail, etc. 7# 8# wzzip from http://www.winzip.com/wzcline.htm 9# can not use path with $zip_file 10# odd error messages if can't locate directory 11# 12# $Id: //main/2019/qhull/eg/qhull-zip.sh#39 $$Change: 3039 $ 13# $DateTime: 2020/09/03 21:26:22 $$Author: bbarber $ 14 15if [[ $# -ne 3 ]]; then 16 echo 'Missing date stamp -- eg/qhull-zip.sh 2020 2020.2 8.0.2' 17 echo 'Build Release Win32 binaries -- build/... from Perforce, make cleanall, retarget vcxproj files, restart DevStudio' 18 echo 'Check libqhull_r and libqhull are the same. See qh_code.htm#convert' 19 exit 20fi 21versionyear=$1 22version=$2 23versionunix=$3 24 25echo $TMP 26 27err_program=qhull-zip 28err_log=$TMP/qhull-zip.log 29[[ -e $HOME/bash/etc/road-script.sh ]] && source $HOME/bash/etc/road-script.sh \ 30 || source /etc/road-script.sh 31 32check_err_log $LINENO "$err_log" 33check_err_log $LINENO "$err_step_log" 34log_step $LINENO "Logging to $err_log\n... and $err_step_log" 35 36log_note $LINENO "Find Qhull directory" 37if [[ ! -d qhull/eg && ! -d ../qhull/eg && -d ../../qhull/eg ]]; then 38 exit_err $LINENO "qhull/eg directory not found at or above $PWD" 39fi 40if [[ ! -d qhull/eg ]]; then 41 if [[ -d ../qhull/eg ]]; then 42 cd .. 43 else 44 cd ../.. # Tested above 45 fi 46fi 47root_dir=$(pwd) 48echo root_dir= $root_dir 49 50TEMP_DIR="$TMP/qhull-zip-$(ro_today2)" 51TEMP_FILE="$TMP/qhull-zip-$(ro_today2).txt" 52 53qhull_zip_file=qhull-$version.zip # no path or spaces 54qhull_tgz_file=qhull-$versionyear-src-$versionunix.tgz 55qhullmd5_file=qhull-$version.md5sum 56 57exit_if_fail $LINENO "rm -f $qhull_zip_file $qhull_tgz_file $qhullmd5_file" 58 59if [[ -e /bin/msysinfo || -e /bin/msys-z.dll ]]; then 60 61 ############################# 62 log_step $LINENO "Check for DevStudio 32-bit release build without q_test2" 63 ############################# 64 65 ls -l qhull/bin/*.exe qhull/bin/*.dll 66 qhull/bin/rbox 4 D2 | qhull/bin/qhull Tsz | grep "size in bytes" 67 qhull/bin/rbox 4 D2 | qhull/bin/qhull Tsz | grep "size in bytes" | grep "ridge 20" 68 exit_if_err $LINENO "Not a 32-bit build (expecting 'ridge 20')" 69 70 if grep eg/q_test2 qhull/Makefile; then 71 exit_err $LINENO "Change eg/q_test2 to eg/q_test in Makefile.testall" 72 fi 73 74 log_step $LINENO "Check 'p4 diff se' for modified files" 75 if (p4 diff -se qhull/... | grep -v vcxp | grep qhull); then 76 exit_err $LINENO "Submit modified files to Perforce" 77 fi 78 79 if [[ -d src/qhull_qh ]]; then 80 exit_err $LINENO "Delete src/qhull_qh/" 81 fi 82fi 83 84############################# 85log_step $LINENO "Check files" 86############################# 87 88exit_if_fail $LINENO "cd qhull" 89if ! grep "if 0 .* QHULL_CRTDBG" src/libqhull/user.h >/dev/null; then 90 exit_err $LINENO "QHULL_CRTDBG is defined in src/libqhull/user.h" 91elif ! grep "if 0 .* QHULL_CRTDBG" src/libqhull_r/user_r.h >/dev/null; then 92 exit_err $LINENO "QHULL_CRTDBG is defined in src/libqhull_r/user_r.h" 93elif ! grep "^#define qh_QHpointer 0" src/libqhull/user.h >/dev/null; then 94 exit_err $LINENO "qh_QHpointer is defined in src/libqhull/user.h" 95fi 96 97if (od -a Makefile src/libqhull/Makefile src/libqhull_r/Makefile build/*.pc.in html/*.man eg/*.sh eg/q_eg eg/q_egtest eg/q_test | grep cr >/dev/null); then 98 for f in Makefile src/*/Makefile build/*.pc.in html/*.man eg/*.sh eg/q_eg eg/q_egtest eg/q_test; do echo $f; od -a $f | grep cr | head -1; done 99 exit_err $LINENO "A UNIX file contains DOS line endings. Use d2u and binary type" 100fi 101 102NOT_OK=$(grep -h "^ " Makefile src/libqhull/Makefile src/libqhull_r/Makefile | grep -vE '^[ \t]+[$()a-zA-Z_/]+\.[oh]|bin/testqset_r qtest') 103if [[ -n "$NOT_OK" ]]; then 104 exit_err $LINENO "A Makefile contains a leading space instead of tabs:\n$NOT_OK" 105fi 106 107TXTFILES=$(find *.diz *.htm *.txt html/ src/ working/qhull-news.html -type f -name '*.c' -o -name '*.cpp' -o -name '*.def' -o -name '*.diz' -o -name '*.h' -o -name '*.htm*' -o -name '*.txt' -o -name '*.pri' -o -name '*.pro' -o -name '*.txt' -o -name '*.txt' -o -name '*.xml') 108NOT_OK=$(for f in $TXTFILES; do if (od -a $f | grep '[^r0-9 ] *nl' >/dev/null); then echo $f; fi; done) 109if [[ -n "$NOT_OK" ]]; then 110 exit_err $LINENO "Text files with Unix line endings:\n$NOT_OK\nu2d *.diz *.htm *.txt html/*.txt html/*.htm html/*.xml src/*.pr* src/*.txt src/*/*.c;\nu2d src/*/*.cpp src/*/*.def src/*/*.h src/*/*.htm src/*/*.pro src/*/*.txt working/qhull-news.html" 111fi 112exit_if_fail $LINENO "cd .." 113 114 115############################# 116log_step $LINENO "Check environment" 117############################# 118 119[[ $(type -p md5sum) ]] || exit_err $LINENO "md5sum is missing" 120[[ $(cp --help || grep '[-]-parents') ]] || exit_err $LINENO "cp does not have --parents option" 121 122############################# 123log_step $LINENO "Define functions" 124############################# 125 126function check_zip_file #zip_file 127{ 128 local zip_file=$1 129 local HERE=$(ro_here) 130 log_note $HERE "Check $zip_file" 131 ls -l $zip_file >>$err_log 132 exit_if_err $HERE "Did not create $zip_file" 133 wzunzip -ybc -t $zip_file | grep -E -v -e '( OK|Zip)' >>$err_log 134 exit_if_err $HERE "Error while checking $zip_file" 135} 136 137function check_tgz_file #tgz_file 138{ 139 local tgz_file=$1 140 local HERE=$(ro_here) 141 log_note $HERE "Check $tgz_file" 142 ls -l $tgz_file >>$err_log 143 exit_if_err $HERE "Did not create $tgz_file" 144 tar -tzf $tgz_file >/dev/null 2>>$err_log 145 exit_if_err $HERE "Can not extract -- tar -tzf $tgz_file" 146} 147 148function convert_to_unix #dir $qhull_2ufiles -- convert files to Unix, preserving modtime from $root_dir 149{ 150 local temp_dir=$1 151 local HERE=$(ro_here) 152 log_note $HERE "Convert files to unix format in $1" 153 for f in $(find $temp_dir -type f | grep -E '^([^.]*|.*\.(ac|am|bashrc|c|cfg|cpp|css|d|dpatch|h|htm|html|man|pl|pri|pro|profile|sh|sql|termcap|txt|xml|xsd|xsl))$'); do 154 exit_if_fail $HERE "d2u '$f' && touch -r '$root_dir/${f#$temp_dir/}' '$f'" 155 done 156 for f in $qhull_2ufiles; do 157 exit_if_fail $HERE "d2u '$temp_dir/$f' && touch -r '$root_dir/$f' '$temp_dir/$f'" 158 done 159} 160 161function create_md5sum #md5_file -- create md5sum of current directory 162{ 163 local md5_file=$1 164 local HERE=$(ro_here) 165 log_step $HERE "Compute $md5_file" 166 exit_if_fail $HERE "rm -f $md5_file" 167 find . -type f | sed 's|^\./||' | LC_COLLATE=C sort | xargs md5sum >>$md5_file 168 exit_if_err $HERE "md5sum failed" 169 log_note $HERE "$(md5sum $md5_file)" 170} 171 172function findf #name [path] 173{ 174 find . -type f -name "*$2*" -not -path "*.git*" | egrep -i "${1:-.}" 175} 176 177############################# 178log_step $LINENO "Configure $0 for $(pwd)/qhull" 179############################# 180 181md5_zip_file=qhull-$version-zip.md5sum 182md5_tgz_file=qhull-$versionyear-src-$versionunix-tgz.md5sum 183 184# recursive 185qhull_dirs="qhull/build/CMakeModules qhull/eg qhull/html qhull/src" 186qhull_files="qhull/build/*.sln qhull/build/*.vcproj qhull/build/qhulltest/*.vcproj \ 187 qhull/build/*.vcxproj qhull/build/config.cmake.in qhull/build/qhulltest/*.vcxproj \ 188 qhull/Announce.txt qhull/CMakeLists.txt qhull/COPYING.txt qhull/File_id.diz \ 189 qhull/build/qhull.pc.in qhull/build/README-build.txt qhull/QHULL-GO.lnk \ 190 qhull/README.txt qhull/REGISTER.txt qhull/index.htm qhull/Makefile \ 191 qhull/bin/qconvex.exe qhull/bin/qdelaunay.exe qhull/bin/qhalf.exe \ 192 qhull/bin/qhull.exe qhull/bin/*qhull_r.dll qhull/bin/qvoronoi.exe \ 193 qhull/bin/rbox.exe qhull/bin/user_eg.exe qhull/bin/user_eg2.exe \ 194 qhull/bin/testqset_r.exe \ 195 qhull/bin/user_eg3.exe qhull/bin/testqset.exe qhull/bin/msvcr80.dll" 196qhull_ufiles="$qhull_dirs qhull/build/*.sln qhull/build/*.vcproj \ 197 qhull/build/*.vcxproj qhull/build/config.cmake.in \ 198 qhull/Announce.txt qhull/CMakeLists.txt qhull/COPYING.txt \ 199 qhull/File_id.diz qhull/build/qhull.pc.in qhull/QHULL-GO.lnk qhull/README.txt \ 200 qhull/REGISTER.txt qhull/index.htm qhull/Makefile" 201qhull_d2ufiles="Makefile src/libqhull/Makefile src/libqhull_r/Makefile \ 202 qhull/build/config.cmake.in \ 203 src/*/DEPRECATED.txt src/*/*.pro src/*/*.htm html/*.htm html/*.txt \ 204 src/libqhull/MBorland eg/q_eg eg/q_egtest eg/q_test " 205 206 207if [[ -e /bin/msysinfo || -e /bin/msys-z.dll ]]; then 208 209 ############################# 210 log_step $LINENO "Check qhull_files for zip directory" 211 ############################# 212 213 ls -l $qhull_files $qhull_dirs >>$err_log 214 exit_if_err $LINENO "Missing files for zip directory. Release build only" 215fi 216 217############################# 218log_step $LINENO "Clean distribution directories" 219############################# 220 221rm -r qhull/build/* 222p4 sync -f qhull/build/... 223exit_if_err $LINENO "Can not 'p4 sync -f qhull.sln *.vcproj'" 224rm qhull/build/user_egp.vcproj qhull/build/qhullp.vcproj 225cd qhull && make clean 226exit_if_err $LINENO "Can not 'make clean'" 227cd .. 228# Includes many files from 'cleanall' (Makefile) 229rm -f qhull/src/qhull-all.pro.user* qhull/src/libqhull/BCC32tmp.cfg 230rm -f qhull/eg/eg.* qhull/eg/qhull-benchmark.log qhull/eg/qhull-benchmark-show.log 231rm -f qhull/bin/qhulltest.exe qhull/bin/qhulltest qhull/bin/qhullp.exe 232rm -f qhull/bin/user_egp.exe qhull/bin/libqhull_*.dll 233rm -f qhull/src/libqhull/*.exe qhull/src/libqhull/*.a qhull/src/libqhull/*.dll 234rm -f qhull/src/libqhull_r/*.exe qhull/src/libqhull_r/*.a qhull/src/libqhull_r/*.dll 235rm -f qhull/src/libqhull/qconvex.c qhull/src/libqhull/unix.c 236rm -f qhull/src/libqhull/qdelaun.c qhull/src/libqhull/qhalf.c 237rm -f qhull/src/libqhull/qvoronoi.c qhull/src/libqhull/rbox.c 238rm -f qhull/src/libqhull/user_eg.c qhull/src/libqhull/user_eg2.c 239rm -f qhull/src/libqhull/testqset.c 240rm -f qhull/src/libqhull_r/qconvex_r.c qhull/src/libqhull_r/unix_r.c 241rm -f qhull/src/libqhull_r/qdelaun_r.c qhull/src/libqhull_r/qhalf_r.c 242rm -f qhull/src/libqhull_r/qvoronoi_r.c qhull/src/libqhull_r/rbox_r.c 243rm -f qhull/src/libqhull_r/user_eg_r.c qhull/src/libqhull_r/user_eg2_r.c 244rm -f qhull/src/libqhull_r/testqset_r.c 245find qhull/ -type f -name x -o -name 'x.*' -o -name '*.x' | xargs -r rm 246set noglob 247 248if [[ (-e /bin/msysinfo || -e /bin/msys-z.dll) && $(type -p wzzip) && $(type -p wzunzip) ]]; then 249 250 ############################# 251 log_step $LINENO "Build zip directory as $TEMP_DIR/qhull" 252 ############################# 253 254 ls -l $qhull_files $qhull_dirs >>$err_log 255 exit_if_err $LINENO "Missing files for zip directory. Release build only" 256 257 log_note $LINENO "Copy \$qhull_files \$qhull_dirs to $TEMP_DIR/qhull" 258 exit_if_fail $LINENO "rm -rf $TEMP_DIR && mkdir $TEMP_DIR" 259 exit_if_fail $LINENO "cp -r -p --parents $qhull_files $qhull_dirs $TEMP_DIR" 260 261 ############################# 262 log_step $LINENO "Write md5sum to $md5_tgz_file" 263 ############################# 264 265 exit_if_fail $LINENO "pushd $TEMP_DIR/qhull" 266 create_md5sum $md5_zip_file 267 exit_if_fail $LINENO "cp -p $md5_zip_file $root_dir" 268 269 ############################# 270 log_step $LINENO "Write $qhull_zip_file" 271 ############################# 272 273 log_note $LINENO "Write \$qhull_files to $qhull_zip_file" 274 exit_if_fail $LINENO "cd .. && mv qhull qhull-$version && md5sum qhull-$version/$md5_zip_file >>$root_dir/$qhullmd5_file" 275 wzzip -P -r -u $qhull_zip_file qhull-$version >>$err_log 276 exit_if_err $LINENO "wzzip does not exist or error while zipping files" 277 check_zip_file $qhull_zip_file 278 exit_if_fail $LINENO "popd" 279 exit_if_fail $LINENO "mv $TEMP_DIR/$qhull_zip_file ." 280fi 281 282############################# 283log_step $LINENO "Build tgz directory as $TEMP_DIR/qhull" 284############################# 285 286log_note $LINENO "Archive these files as $qhull_tgz_file" 287ls -l $qhull_ufiles >>$err_log 288exit_if_err $LINENO "Missing files for tgz" 289 290exit_if_fail $LINENO "rm -rf $TEMP_DIR && mkdir -p $TEMP_DIR" 291exit_if_fail $LINENO "cp -r -p --parents $qhull_ufiles $TEMP_DIR" 292 293if [[ $IS_WINDOWS && $(type -p d2u) ]]; then 294 log_step $LINENO "Convert to Unix line endings" 295 convert_to_unix "$TEMP_DIR" 296fi 297 298############################# 299log_step $LINENO "Write md5sum to $md5_tgz_file" 300############################# 301 302exit_if_fail $LINENO "pushd $TEMP_DIR && cd qhull" 303create_md5sum $md5_tgz_file 304exit_if_fail $LINENO "cp -p $md5_tgz_file $root_dir" 305 306exit_if_fail $LINENO "cd .. && mv qhull qhull-$version && md5sum qhull-$version/$md5_tgz_file >>$root_dir/$qhullmd5_file" 307 308############################# 309log_step $LINENO "Write $qhull_tgz_file" 310############################# 311 312exit_if_fail $LINENO "tar -zcf $root_dir/$qhull_tgz_file * && popd" 313check_tgz_file $qhull_tgz_file 314 315log_note $LINENO "md5sum of zip and tgz files" 316 317for f in $qhull_zip_file $qhull_tgz_file; do 318 if [[ -r $f ]]; then 319 exit_if_fail $LINENO "md5sum $f >>$qhullmd5_file" 320 fi 321done 322 323############################# 324log_step $LINENO "Extract zip and tgz files to $TEMP_DIR" 325############################# 326 327exit_if_fail $LINENO "rm -rf $TEMP_DIR" 328if [[ -r $root_dir/$qhull_zip_file ]]; then 329 exit_if_fail $LINENO "mkdir -p $TEMP_DIR/zip && cd $TEMP_DIR/zip" 330 log_step $LINENO "Current directory is /c/Git/$TEMP_DIR/zip" 331 exit_if_fail $LINENO "wzunzip -yb -d $root_dir/$qhull_zip_file" 332 log_step $LINENO "Search for date stamps into zip/Dates.txt" 333 find . -type f | grep -vE '/bin/|q_benchmark|q_test' | xargs grep '\-20' | grep -v -E '(page=|ISBN|sql-2005|utility-2000|written 2002-2003|tail -n -20|Spinellis|WEBSIDESTORY|D:06-5-2007|server-2005)' >Dates.txt 334 find . -type f | grep -vE '/bin/|q_benchmark|q_test' | xargs grep -i 'qhull *20' >>Dates.txt 335 find . -type f | grep -vE '/bin/|q_benchmark|q_test' | xargs grep -E 'SO=|SO |VERSION|FIXUP' >>Dates.txt 336 log_step $LINENO "Search for error codes into zip/Errors-matched.txt" 337 (find */src -type f) | grep -vE '_test\.cpp|\.log|Changes\.txt' | xargs grep -Eh ', [67][0-9][0-9][0-9]|"QH[67][0-9]|qh_fprintf_stderr\([67][0-9][0-9][0-9]' | sed -r 's/^[^Q67]*QH//' | sed -r 's/^.*qh_fprintf_stderr\(//' | sed -r 's/^[^67]*(errfile|ferr|fp|stderr), //' | sed 's/\\n"[,\)].*/ EOL/' | sed -r 's/_r([: ])/\1/' | sort >Errors.txt 338 (cat Errors.txt | sed 's/, .*//'; for ((i=6001; i<6400; i++)); do echo $i; done; for ((i=7001; i<7200; i++)); do echo $i; done) | sort | uniq -c | grep -v '^ *3 ' | sed -r 's/^[^0-9]*([0-9]) (.*)/\2 \1 NOT-MATCHED/' >Errors-not-matched.txt 339 cat Errors.txt | grep -v 'EOL$' | sort -u >Errors-matched.txt 340 log_step $LINENO "Search for mismatched '*_r.h' references to zip/FileRef.txt" 341 grep -E '[^_][^_][^ *][.][ch]($|[^a-z>])|/libqhull/' */src/*/*_r.* */src/*/*_ra.* */src/libqhull_r/Makefile | grep -vE 'float.h|/html/| l.h.s. |libqhullcpp|mem.c for a standalone|qglobal.h|QhullError.|QhullSet.|string.h|unused.h|user.h and user_r.h' >FileRef.txt 342 grep -E '_r[.]|_ra[.]|/libqhull_r/' */src/qconvex/qconvex.c */src/qconvex/qconvex.c */src/qdelaunay/qdelaun.c */src/qhalf/qhalf.c */src/qvoronoi/qvoronoi.c */src/testqset/* | grep -vE 'user.h and user_r.h' >>FileRef.txt 343 log_step $LINENO "Search for mismatched option links in htm files to Links-single.txt" 344 findf htm | xargs grep 'qh-opt.*\#' | tee Links-all.txt | sed -r -e 's/^[^:]*://' -e 's/qh-opt/\nqh-opt/g' | grep 'qh-opt.*<' | sed -r -e 's/<.*//' | LC_ALL=C sort | uniq -c >Links-counts.txt 345 grep ' 1 ' Links-counts.txt >Links-single.txt 346 log_step $LINENO "Search for other internal links to Links-check-other.txt" 347 findf htm | xargs grep -E 'http[^#]*htm#|href="?#|name=' | tee Links-other.txt | sed -e 's/#/\n#/g' -e 's/name="/\n#/g' -e 's/name=/\nname=/g' | grep -E '^#|name=' | sed -r -e 's/[" ].*//' | grep -vE ';|#[1-9][0-9]|#3dd|#[Hdv]$|[0-9][0-9]$|[a-z]T$|QJ$|convex|option|startup|voronoi|name=(as_q|num|sitesearch)' | LC_ALL=C sort | uniq -c | grep ' 1 ' >Links-check-other.txt 348 log_step $LINENO "Search for mismatched link quotes" 349 findf htm | xargs grep -E '"' | sed -e 's/"[^"]*"//g' | grep '"' | grep -vE 'html/qhull|html/rbox|working/debian' > Links-check-quotes.txt 350fi 351if [[ -r $root_dir/$qhull_tgz_file ]]; then 352 exit_if_fail $LINENO "mkdir -p $TEMP_DIR/tgz && cd $TEMP_DIR/tgz" 353 log_step $LINENO "Current directory is $TEMP_DIR/tgz" 354 exit_if_fail $LINENO "tar -zxf $root_dir/$qhull_tgz_file" 355fi 356log_step $LINENO "Check Changes.txt" 357head -60 */src/Changes.txt | tail -17 358 359############################# 360log_step $LINENO "=====================================================================" 361log_step $LINENO "Check *qhull-zip-.../zip/Dates.txt and rbox.c for timestamps that need updating" 362log_step $LINENO "Check *qhull-zip-.../zip/Errors-matched.txt for mismatched codes, errors not ending in NL, errors on multiple lines, and recently missing codes" 363log_step $LINENO " OK (\\n in error message) -- counters 6429,7027,.., 6023, 6233, 6237, 7089" 364log_step $LINENO "Check *qhull-zip-.../zip/Errors-not-matched.txt for unused error codes (count==1, without text) or multiply-defined codes (count>2, 7079 OK)" 365log_step $LINENO "Check *qhull-zip-.../zip/Links-single.txt for single use option links (matched names OK) in Links-all.txt" 366log_step $LINENO "Check *qhull-zip-.../zip/Links-check-other.txt for unknown tags in Links-other.txt" 367log_step $LINENO "Check *qhull-zip-.../zip/Links-check-quotes.txt for quotes that cross a line" 368log_step $LINENO "Check q_egtest examples in Geomview" 369log_step $LINENO "Check for 16 projects in Release mode, including qhulltest" 370log_step $LINENO "Check build dependencies for programs." 371log_step $LINENO "Check source dependencies and help prompts once a release" 372log_step $LINENO " prompts: see qhull-zip.sh for command" 373# N=qvoronoi; ($N . | grep -vE '^$|^Except|^Qhull' | sed 's/ */\n/g'; $N - | grep -vE '^ *#|^Qhull|0 roundoff|comments|options:' | sed 's/^ *//') | grep -vE '^$' | sort >x.1 374log_step $LINENO " check QhullFacet/qh_printfacetheader, QhullRidge/qh_printridge, QhullVertex/qh_printvertex" 375log_step $LINENO " check for internal errors while merging with pinched vertices, see qhull-zip.sh for command" 376# ../eg/qtest.sh 10 '10000 s C1,2e-13 D3' 'd Q14' | grep -vE 'topology|precision|CPU|Maximum' 377log_step $LINENO " check solution for ' = ' (comments OK)" 378log_step $LINENO "Test qhull with 32-bit devstudio release, compare and update with q_test-ok.txt" 379log_step $LINENO " make testall 2>&1 | tee eg/q_test.x" 380 381log_step $LINENO "Test CMake build" 382log_step $LINENO " cd $TEMP_DIR/tgz/qhull*/build" 383log_step $LINENO " cmake -G \"MSYS Makefiles\" .. && cmake .." 384log_step $LINENO " make" 385log_step $LINENO " mkdir -p ../bin/ && cp -p lib*.dll *.exe ../bin/" 386log_step $LINENO " cd ..; make test" 387log_step $LINENO "Test Linux compile" 388log_step $LINENO " cd .. && scp $qhull_tgz_file qhull@qhull.org:" 389log_step $LINENO " rm -rf qhull-$version; tar zxf $qhull_tgz_file && cd qhull-$version && make >../make.x 2>&1" 390log_step $LINENO " more ../make.x" 391log_step $LINENO " export DESTDIR=.; make install; cd usr/local/lib" 392log_step $LINENO " make test" 393log_step $LINENO " eg/q_test >eg/q_test.x 2>&1" 394log_step $LINENO "Update 'Qhull wiki.md', qhull-news.htm (#problems, #bugs), qh-code.htm#enhance" 395log_step $LINENO "Test qhull and compare to q_test-ok.txt" 396log_step $LINENO " cd $TEMP_DIR/zip/qhull* && make testall >/d/bash/local/qhull/eg/q_test.x 2>&1" 397log_step $LINENO "Build and test 64-bit qhulltest. Compare to eg/qhulltest-ok.txt" 398log_step $LINENO " cd /d/bash/local/qhull && bin/qhulltest --all >eg/qhulltest.x 2>&1" 399log_step $LINENO "Compare source directories: Copy 'qhull/' to 'downloads/qhull-YYYY/'" 400log_step $LINENO " If comparing 2020 to 2019 -- find qhull-2020 -type f ! -path "./.git*" ! -path "*working*" | xargs sed -i 's/2020/2019/g'" 401log_step $LINENO "Benchmark qhull. Compare to eg/q_benchmark-ok.txt" 402log_step $LINENO " cd $TEMP_DIR/zip/qhull* && make benchmark >/d/bash/local/qhull/eg/q_benchmark.x 2>&1" 403log_step $LINENO "Build qhull with gcc" 404log_step $LINENO " cd $TEMP_DIR/zip/qhull* && make SO=dll" 405log_step $LINENO " cp -p lib/libqhull*.dll bin && make testall >/d/bash/local/qhull/eg/q_test-make.x 2>&1" 406log_step $LINENO "Create qhull_qh and compare with libqhull, qconvex, etc. See qh_code.htm#convert" 407log_step $LINENO " eg/make-qhull_qh.sh libqhull_r" 408log_step $LINENO " Ignore 'Id: //.*' and 'DateTime: 20.*' Edit>FullRefresh" 409log_step $LINENO " Compare qhull*exports.def and add new functions" 410log_step $LINENO "Build and test libqhull. user_eg3 not built" 411log_step $LINENO " make cleanall && cd src/libqhull && make cleanall && make && cp *.exe ../../bin && cd ../.. && make test && ls -l bin/qhull.exe" 412log_step $LINENO " make testall >/d/bash/local/qhull/eg/q_test-libqhull.x 2>&1" 413log_step $LINENO "Build and test libqhull with qh_QHpointer" 414log_step $LINENO " e src/libqhull/user.h" 415log_step $LINENO " make cleanall && cd src/libqhull && make cleanall && make && cp *.exe ../../bin && cd ../.. && make test && ls -l bin/qhull.exe" 416log_step $LINENO " bin/rbox c | bin/qhull FO Tz | grep QHpointer" 417log_step $LINENO " make testall 2>&1 | tee eg/q_test-qh_QHpointer.x" 418log_step $LINENO "Build and test libqhull_r. user_eg3 not built" 419log_step $LINENO " make cleanall && cd src/libqhull_r && make cleanall && make && cp *.exe ../../bin && cd ../.. && make test && ls -l bin/qhull.exe" 420log_step $LINENO " make testall >/d/bash/local/qhull/eg/q_test-libqhull_r.x 2>&1" 421log_step $LINENO "Build and test libqhull_r with qh_NOmem" 422log_step $LINENO "Build and test libqhull_r with qh_NOmerge" 423log_step $LINENO "Build and test libqhull_r with qh_NOtrace" 424log_step $LINENO "Build and test libqhull_r with qh_KEEPstatistics 0" 425log_step $LINENO "Build and check Makefile/qhullx. user_eg* not built" 426log_step $LINENO " make cleanall && make qhullx && make test && ls -l bin/qhull.exe" 427log_step $LINENO "Benchmark libqhull_r with gcc" 428log_step $LINENO " make benchmark >/d/bash/local/qhull/eg/q_benchmark-libqhull_r.x 2>&1" 429log_step $LINENO "Check Qhull-go (double-click)" 430log_step $LINENO "Compare Changes.txt with previous release" 431log_step $LINENO "Compare README.txt with previous release" 432log_step $LINENO "Compare previous zip release, Dates.txt, and md5sum" 433log_step $LINENO "Compare zip and tgz for CRLF vs LF" 434log_step $LINENO " C:/Git$TEMP_DIR/" 435log_step $LINENO "Compare qh_prompt* for unix_r.c,qconvex.c,etc." 436log_step $LINENO "Check html links with Firefox Link Analyzer (fast but doesn't check #..." 437log_step $LINENO " Replace old links with web.archive.org (archive.is)" 438log_step $LINENO "Check all files for FIXUP comments, including Makefile, html, etc." 439log_step $LINENO "Extract zip to download/ and compare directories" 440log_step $LINENO "Retest 32-bit release builds and 64-bit qhulltest" 441log_step $LINENO "Check for 32-bit release executables from DevStudio (<500K and 'Ts' 32-bit allocations)" 442log_step $LINENO "Check for virus with Windows Defender" 443log_step $LINENO "Check object dependencies with 'objdump -p user_eg.exe'" 444log_step $LINENO "Copy tarballs to qhull.org" 445log_step $LINENO " cd .. && ls -l qhull-2020.2* qhull*8.0.2*" 446log_step $LINENO " scp -p qhull-2020.2* qhull*8.0.2* qhull@qhull.org:web/download/" 447log_step $LINENO "Add md5sums to end of qh-get.htm" 448log_step $LINENO "Add release labels to git" 449log_step $LINENO "Finished successfully" 450############################# 451 452