make-release 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. #!/bin/bash
  2. set -e
  3. set -x
  4. tag="$1"; shift
  5. [ -n "$tag" ] || exit 1
  6. sw="$1"; shift || true
  7. [ -n "$sw" ] || sw="$tag"
  8. test -n "$DEBUG_RELEASE" || DEBUG_RELEASE=1
  9. builds=(win32 win64)
  10. win32_machine='i686-pc-mingw32'
  11. win32_CFLAGS='-march=i686'
  12. win64_machine='x86_64-w64-mingw32'
  13. win64_CFLAGS=''
  14. IDIR="$PWD"
  15. OUTDIR="$PWD"
  16. TMPROOT="$PWD/make-release-tmp"
  17. TMPDIR="${TMPROOT}/${sw}-tmp"
  18. mkdir -vp "$TMPDIR"
  19. # Source release
  20. git branch TMP "$tag"
  21. git clone . "$TMPDIR" -b TMP --depth 1
  22. git branch -D TMP
  23. cd "$TMPDIR"
  24. git submodule update --init
  25. git archive --prefix "$sw"/ --format tar "$tag" | tar xvp
  26. (
  27. cd libblkmaker
  28. git archive --prefix "libblkmaker/" --format tar HEAD | tar -C "../$sw" -xvp
  29. )
  30. cd "$sw"
  31. NOSUBMODULES=1 \
  32. NOCONFIGURE=1 \
  33. ./autogen.sh
  34. cd ..
  35. zip -r "$OUTDIR/${sw}.zip" "$sw"
  36. tar cjvpf "$OUTDIR/${sw}.tbz2" "$sw"
  37. SRCDIR="$TMPDIR/$sw"
  38. dlls='
  39. backtrace.dll
  40. pdcurses.dll
  41. libcurl-4.dll
  42. pthreadGC2.dll
  43. libjansson-4.dll
  44. libusb-1.0.dll
  45. zlib1.dll
  46. '
  47. docs='
  48. AUTHORS
  49. COPYING
  50. NEWS
  51. README
  52. API-README
  53. FPGA-README
  54. SCRYPT-README
  55. '
  56. for build in "${builds[@]}"; do
  57. PKGNAME="${sw}-${build}"
  58. PKGDIR="$TMPDIR/$PKGNAME"
  59. cd "$TMPDIR"
  60. mkdir -vp "$PKGDIR"
  61. for v in machine CFLAGS; do
  62. eval "${v}"="'$(eval echo "\${${build}_${v}}")'"
  63. done
  64. if test "x$DEBUG_RELEASE" = "x1"; then
  65. CFLAGS="${CFLAGS} -g"
  66. fi
  67. libdir="/usr/$machine/usr/bin/$dll"
  68. for dll in $dlls; do
  69. libdir="/usr/$machine/usr/lib"
  70. [ -e "$libdir/$dll" ] ||
  71. libdir="/usr/$machine/usr/bin"
  72. cp -v -L "$libdir/$dll" "$PKGDIR"
  73. "$machine"-strip "$PKGDIR/$dll"
  74. done
  75. for doc in $docs; do
  76. sed 's/$/\r/' <"$doc" >"$PKGDIR/${doc}.txt"
  77. done
  78. cp -av "bitstreams" "$PKGDIR/"
  79. NOCONFIGURE=1 \
  80. ./autogen.sh
  81. ./configure \
  82. --prefix='C:\\Program Files\\BFGMiner\\' \
  83. CFLAGS="${CFLAGS} -Wall" \
  84. --disable-cpumining \
  85. --enable-opencl \
  86. --enable-adl \
  87. --enable-bitforce \
  88. --enable-icarus \
  89. --enable-modminer \
  90. --enable-ztex \
  91. --enable-scrypt \
  92. --host="$machine"
  93. make $MAKEOPTS
  94. if test "x$DEBUG_RELEASE" != "x1"; then
  95. "$machine"-strip \
  96. libblkmaker/.libs/*.dll \
  97. *.exe
  98. fi
  99. cp -v \
  100. *.exe \
  101. libblkmaker/.libs/*.dll \
  102. *.cl \
  103. example.conf \
  104. windows-build.txt \
  105. API.class \
  106. miner.php \
  107. "$PKGDIR/"
  108. make clean
  109. cd "$PKGDIR/.."
  110. zip -r "$OUTDIR/$PKGNAME.zip" "$PKGNAME"
  111. done
  112. cd "$IDIR"