build-rev.sh 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. #!/bin/bash
  2. if [ "$1" = "" -o "$2" = "" ]; then
  3. echo "usage: $0 <datestr> <revision> <outdir> [branch]"
  4. exit 0
  5. fi
  6. DATE=$1
  7. shift
  8. REVISION=$1
  9. shift
  10. GITBASE=$HOME/megazeux
  11. if [ "$2" = "" ]; then
  12. OUTDIR=$1/trunk-$DATE-$REVISION
  13. else
  14. OUTDIR=$1/$2-$DATE-$REVISION
  15. fi
  16. if [ ! -d $GITBASE ]; then
  17. echo "Could not find specified Git basedir, aborting."
  18. exit 1
  19. fi
  20. [ -d "$OUTDIR" ] && rm -rf $OUTDIR
  21. mkdir -p $OUTDIR/source
  22. pushd $GITBASE >/dev/null
  23. git reset --hard $REVISION >/dev/null 2>&1
  24. if [ "$?" != "0" ]; then
  25. echo "git reset --hard failed; aborting."
  26. exit 1
  27. fi
  28. rm -rf build
  29. make source >/dev/null 2>&1
  30. SRCPKG=$GITBASE/build/dist/source/*.tar.xz
  31. if [ -f "$SRCPKG" ]; then
  32. echo "Failed to compile source package; aborting."
  33. exit 2
  34. fi
  35. [ -d /tmp/megazeux ] && rm -rf /tmp/megazeux
  36. mkdir /tmp/megazeux
  37. for PLATFORM in amiga gp2x nds psp wii windows-x86 windows-x64; do
  38. tar -C/tmp/megazeux -xf $SRCPKG
  39. pushd /tmp/megazeux/mzx* >/dev/null
  40. $GITBASE/scripts/build.sh $PLATFORM $PWD >/dev/null 2>&1
  41. if [ -d build/dist/$PLATFORM ]; then
  42. mv build/dist/$PLATFORM /tmp/megazeux
  43. else
  44. mkdir /tmp/megazeux/$PLATFORM
  45. fi
  46. mv build/logs/$PLATFORM/* /tmp/megazeux/$PLATFORM
  47. popd >/dev/null
  48. rm -rf /tmp/megazeux/mzx*
  49. done
  50. pushd /tmp/megazeux >/dev/null
  51. export CONCURRENCY_LEVEL=3
  52. mkdir ubuntu
  53. for CHROOT in ubuntu-i386 ubuntu-amd64; do
  54. tar -xf $SRCPKG
  55. MZX=`echo mzx* | sed 's,^mzx,megazeux-,' | sed 's,-2,-2.,'`
  56. mv mzx* $MZX
  57. pushd $MZX >/dev/null
  58. dchroot -d -c $CHROOT -- \
  59. debuild --preserve-envvar=CONFIG_FLAGS -us -uc >/dev/null 2>&1
  60. popd >/dev/null
  61. rm -rf $MZX
  62. mv megazeux* ubuntu
  63. done
  64. popd >/dev/null
  65. mv $SRCPKG $OUTDIR/source
  66. rm -rf build
  67. mv /tmp/megazeux/* $OUTDIR
  68. rm -rf /tmp/megazeux
  69. popd >/dev/null