make_multilib_linux 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. #!/bin/bash
  2. export VLMCSD_VERSION="svn`svnversion`"
  3. SMALLCC="-pipe -fno-common -fno-exceptions -fno-stack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fmerge-all-constants"
  4. SMALLLD="-pipe -Wl,--hash-style=sysv -Wl,-z,norelro -Wl,--build-id=none"
  5. SMALL="$SMALLCC $SMALLLD"
  6. rm -f vlmcsd vlmcs vlmcsdmulti vlmcsd-s390* vlmcsd-sparc64* vlmcsd-mips64* vlmcs-* vlmcsdmulti-*
  7. ## IBM S/390
  8. export CFLAGS="$SMALLCC"
  9. export PLATFORMFLAGS="-flto=jobserver -fwhole-program -m31 -mesa -mpacked-stack -msmall-exec"
  10. export LDFLAGS="$SMALLLD -Wl,--hash-style=gnu"
  11. export THREADS=0
  12. export FEATURES=full
  13. export CC=s390x-linux-gnu-gcc
  14. export VERBOSE=3
  15. export MULTI_NAME=vlmcsdmulti-s390-glibc
  16. export CLIENT_NAME=vlmcs-s390-glibc
  17. export PROGRAM_NAME=vlmcsd-s390-glibc
  18. make -B -j`nproc` allmulti
  19. sstrip -z $CLIENT_NAME $PROGRAM_NAME $MULTI_NAME
  20. export PLATFORMFLAGS="-flto=jobserver -fwhole-program -m64 -mzarch -mpacked-stack -msmall-exec"
  21. export MULTI_NAME=vlmcsdmulti-s390x-glibc
  22. export CLIENT_NAME=vlmcs-s390x-glibc
  23. export PROGRAM_NAME=vlmcsd-s390x-glibc
  24. make -B -j`nproc` allmulti
  25. sstrip -z $CLIENT_NAME $PROGRAM_NAME $MULTI_NAME
  26. ## SPARC64
  27. export PLATFORMFLAGS="-flto=jobserver -fwhole-program -mcpu=v7"
  28. export LDFLAGS="$SMALLLD"
  29. export CC=sparc64-linux-gnu-gcc
  30. export MULTI_NAME=vlmcsdmulti-sparc64v9-glibc
  31. export CLIENT_NAME=vlmcs-sparc64v9-glibc
  32. export PROGRAM_NAME=vlmcsd-sparc64v9-glibc
  33. make -B -j`nproc` allmulti
  34. sstrip -z $CLIENT_NAME $PROGRAM_NAME $MULTI_NAME
  35. ## MIPS64 BIG-ENDIAN
  36. export PLATFORMFLAGS="-flto=jobserver -fwhole-program -mips64 -mno-mips16"
  37. export LDFLAGS="$SMALLLD"
  38. export CC=mips64-linux-gnuabi64-gcc
  39. export MULTI_NAME=vlmcsdmulti-mips64-glibc
  40. export CLIENT_NAME=vlmcs-mips64-glibc
  41. export PROGRAM_NAME=vlmcsd-mips64-glibc
  42. make -B -j`nproc` allmulti
  43. sstrip -z $CLIENT_NAME $PROGRAM_NAME $MULTI_NAME
  44. export PLATFORMFLAGS="-flto=jobserver -fwhole-program -mips64 -mmicromips"
  45. export MULTI_NAME=vlmcsdmulti-mips64mm-glibc
  46. export CLIENT_NAME=vlmcs-mips64mm-glibc
  47. export PROGRAM_NAME=vlmcsd-mips64mm-glibc
  48. make -B -j`nproc` allmulti
  49. sstrip -z $CLIENT_NAME $PROGRAM_NAME $MULTI_NAME
  50. ## MIPS64 LITTLE-ENDIAN
  51. export PLATFORMFLAGS="-flto=jobserver -fwhole-program -mips64 -mno-mips16"
  52. export LDFLAGS="$SMALLLD"
  53. export CC=mips64el-linux-gnuabi64-gcc
  54. export MULTI_NAME=vlmcsdmulti-mips64el-glibc
  55. export CLIENT_NAME=vlmcs-mips64el-glibc
  56. export PROGRAM_NAME=vlmcsd-mips64el-glibc
  57. make -B -j`nproc` allmulti
  58. sstrip -z $CLIENT_NAME $PROGRAM_NAME $MULTI_NAME
  59. export PLATFORMFLAGS="-flto=jobserver -fwhole-program -mips64 -mmicromips"
  60. export MULTI_NAME=vlmcsdmulti-mips64elmm-glibc
  61. export CLIENT_NAME=vlmcs-mips64elmm-glibc
  62. export PROGRAM_NAME=vlmcsd-mips64elmm-glibc
  63. make -B -j`nproc` allmulti
  64. sstrip -z $CLIENT_NAME $PROGRAM_NAME $MULTI_NAME
  65. if [ "$1" == "nocopy" ]; then
  66. exit 0
  67. fi
  68. mkdir -p /usr/local/man/man1 2>/dev/null
  69. mkdir -p /usr/local/man/man5 2>/dev/null
  70. mkdir -p /usr/local/man/man8 2>/dev/null
  71. mkdir -p /usr/local/man/man7 2>/dev/null
  72. cp -a vlmcs.1 vlmcsdmulti.1 /usr/local/man/man1/
  73. cp -a vlmcsd.7 /usr/local/man/man7/
  74. cp -a vlmcsd.8 /usr/local/man/man8/
  75. cp -a vlmcsd.ini.5 /usr/local/man/man5/
  76. pbzip2 -f -9 /usr/local/man/man5/vlmcsd.ini.5 /usr/local/man/man1/vlmcs.1 /usr/local/man/man1/vlmcsdmulti.1 /usr/local/man/man7/vlmcsd.7 /usr/local/man/man8/vlmcsd.8
  77. scp -p vlmcsdmulti-s390-glibc vlmcs-s390-glibc vlmcsd-s390-glibc vlmcsdmulti-s390x-glibc vlmcs-s390x-glibc vlmcsd-s390x-glibc ubuntu64.internal:x/binaries/Linux/s390/glibc
  78. scp -p vlmcsdmulti-sparc64v9-glibc vlmcs-sparc64v9-glibc vlmcsd-sparc64v9-glibc ubuntu64.internal:x/binaries/Linux/sparc/glibc
  79. scp -p vlmcsdmulti-mips64-glibc vlmcs-mips64-glibc vlmcsd-mips64-glibc vlmcsdmulti-mips64mm-glibc vlmcs-mips64mm-glibc vlmcsd-mips64mm-glibc ubuntu64.internal:x/binaries/Linux/mips/big-endian/glibc
  80. scp -p vlmcsdmulti-mips64el-glibc vlmcs-mips64el-glibc vlmcsd-mips64el-glibc vlmcsdmulti-mips64elmm-glibc vlmcs-mips64elmm-glibc vlmcsd-mips64elmm-glibc ubuntu64.internal:x/binaries/Linux/mips/little-endian/glibc
  81. scp -p -P 2222 vlmcsdmulti-s390-glibc vlmcs-s390-glibc vlmcsd-s390-glibc vlmcsdmulti-s390x-glibc vlmcs-s390x-glibc vlmcsd-s390x-glibc s390:vlmcsd
  82. scp -p -P 2222 vlmcsdmulti-s390-glibc vlmcsdmulti-s390x-glibc s390:/usr/local/sbin