Newer
Older
dub_jkp / release.sh
@Sebastian Wilzbach Sebastian Wilzbach on 6 Apr 2018 901 bytes Use -flto=full for the release builds
  1. #!/usr/bin/env bash
  2.  
  3. set -eux -o pipefail
  4.  
  5. VERSION=$(git describe --abbrev=0 --tags)
  6. ARCH="${ARCH:-64}"
  7. CUSTOM_FLAGS=()
  8. unameOut="$(uname -s)"
  9. case "$unameOut" in
  10. Linux*)
  11. OS=linux
  12. CUSTOM_FLAGS+=("-L--export-dynamic")
  13. ;;
  14. Darwin*)
  15. OS=osx
  16. CUSTOM_FLAGS+=("-L-dead_strip")
  17. ;;
  18. *) echo "Unknown OS: $unameOut"; exit 1
  19. esac
  20.  
  21. if [[ $(basename "$DMD") =~ ldmd.* ]] ; then
  22. CUSTOM_FLAGS+=("-flto=full")
  23. # ld.gold is required on Linux
  24. if [ ${OS:-} == "linux" ] ; then
  25. CUSTOM_FLAGS+=("-linker=gold")
  26. fi
  27. fi
  28.  
  29. case "$ARCH" in
  30. 64) ARCH_SUFFIX="x86_64";;
  31. 32) ARCH_SUFFIX="x86";;
  32. *) echo "Unknown ARCH: $ARCH"; exit 1
  33. esac
  34.  
  35. archiveName="dub-$VERSION-$OS-$ARCH_SUFFIX.tar.gz"
  36.  
  37. echo "Building $archiveName"
  38. DFLAGS="-release -m$ARCH ${CUSTOM_FLAGS[@]}" DMD="$(command -v $DMD)" ./build.sh
  39. tar cvfz "bin/$archiveName" -C bin dub