make_multilib_linux 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. #!/bin/bash
  2. export VLMCSD_VERSION=$(git describe)
  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. cd "$( dirname "$0" )"
  7. gmake -C .. clean
  8. BINDIR="../bin"
  9. MANDIR="../man"
  10. cd ../src
  11. mkdir -p ../binaries/Linux/intel/glibc
  12. mkdir -p ../binaries/Linux/intel/uclibc
  13. mkdir -p ../binaries/Linux/intel/static
  14. mkdir -p ../binaries/Linux/intel/musl
  15. mkdir -p ../binaries/Linux/sparc/glibc
  16. mkdir -p ../binaries/Linux/s390/glibc
  17. mkdir -p ../binaries/Android/arm/bionic
  18. mkdir -p ../binaries/Android/arm/static
  19. mkdir -p ../binaries/Android/intel/bionic
  20. mkdir -p ../binaries/Android/intel/static
  21. mkdir -p ../binaries/Android/mips/bionic
  22. mkdir -p ../binaries/Android/mips/static
  23. mkdir -p ../binaries/Linux/arm/little-endian/glibc
  24. mkdir -p ../binaries/Linux/arm/little-endian/musl
  25. mkdir -p ../binaries/Linux/arm/little-endian/uclibc
  26. mkdir -p ../binaries/Linux/arm/little-endian/static
  27. mkdir -p ../binaries/Linux/arm/big-endian/uclibc
  28. mkdir -p ../binaries/Linux/arm/big-endian/static
  29. mkdir -p ../binaries/Linux/mips/little-endian/glibc
  30. mkdir -p ../binaries/Linux/mips/little-endian/uclibc
  31. mkdir -p ../binaries/Linux/mips/little-endian/static
  32. mkdir -p ../binaries/Linux/mips/little-endian/musl
  33. mkdir -p ../binaries/Linux/mips/big-endian/uclibc
  34. mkdir -p ../binaries/Linux/mips/big-endian/static
  35. mkdir -p ../binaries/Linux/mips/big-endian/glibc
  36. mkdir -p ../binaries/Linux/mips/big-endian/musl
  37. mkdir -p ../binaries/Linux/ppc/little-endian/glibc
  38. mkdir -p ../binaries/Linux/ppc/big-endian/glibc
  39. mkdir -p ../binaries/Linux/ppc/big-endian/uclibc
  40. mkdir -p ../binaries/Linux/ppc/big-endian/musl
  41. mkdir -p ../binaries/Linux/ppc/big-endian/static
  42. mkdir -p ../binaries/MacOSX/intel
  43. mkdir -p ../binaries/MacOSX/ppc
  44. mkdir -p ../binaries/iOS/arm
  45. mkdir -p ../binaries/FreeBSD/intel
  46. mkdir -p ../binaries/NetBSD/intel
  47. mkdir -p ../binaries/OpenBSD/intel
  48. mkdir -p ../binaries/DragonFly/intel
  49. mkdir -p ../binaries/Solaris/intel
  50. mkdir -p ../binaries/Windows/intel
  51. mkdir -p ../binaries/Minix/intel
  52. mkdir -p ../binaries/Hurd/intel
  53. ## IBM S/390
  54. export CFLAGS="$SMALLCC"
  55. export PLATFORMFLAGS="-flto=jobserver -fwhole-program -m31 -mesa -mpacked-stack -msmall-exec"
  56. export LDFLAGS="$SMALLLD -Wl,--hash-style=gnu"
  57. export THREADS=0
  58. export FEATURES=full
  59. export CC=s390x-linux-gnu-gcc
  60. export VERBOSE=3
  61. export MULTI_NAME=~/x/binaries/Linux/s390/glibc/vlmcsdmulti-s390-glibc
  62. export CLIENT_NAME=~/x/binaries/Linux/s390/glibc/vlmcs-s390-glibc
  63. export PROGRAM_NAME=~/x/binaries/Linux/s390/glibc/vlmcsd-s390-glibc
  64. make -B -j`nproc` allmulti
  65. export PLATFORMFLAGS="-flto=jobserver -fwhole-program -m64 -mzarch -mpacked-stack -msmall-exec"
  66. export MULTI_NAME=~/x/binaries/Linux/s390/glibc/vlmcsdmulti-s390x-glibc
  67. export CLIENT_NAME=~/x/binaries/Linux/s390/glibc/vlmcs-s390x-glibc
  68. export PROGRAM_NAME=~/x/binaries/Linux/s390/glibc/vlmcsd-s390x-glibc
  69. make -B -j`nproc` allmulti
  70. ## SPARC64
  71. export PLATFORMFLAGS="-flto=jobserver -fwhole-program -mcpu=v7"
  72. export LDFLAGS="$SMALLLD"
  73. export CC=sparc64-linux-gnu-gcc
  74. export MULTI_NAME=~/x/binaries/Linux/sparc/glibc/vlmcsdmulti-sparc64v9-glibc
  75. export CLIENT_NAME=~/x/binaries/Linux/sparc/glibc/vlmcs-sparc64v9-glibc
  76. export PROGRAM_NAME=~/x/binaries/Linux/sparc/glibc/vlmcsd-sparc64v9-glibc
  77. make -B -j`nproc` allmulti
  78. ## MIPS64 BIG-ENDIAN
  79. export PLATFORMFLAGS="-flto=jobserver -fwhole-program -mips64 -mno-mips16"
  80. export LDFLAGS="$SMALLLD"
  81. export CC=mips64-linux-gnuabi64-gcc
  82. export MULTI_NAME=~/x/binaries/Linux/mips/big-endian/glibc/vlmcsdmulti-mips64-glibc
  83. export CLIENT_NAME=~/x/binaries/Linux/mips/big-endian/glibc/vlmcs-mips64-glibc
  84. export PROGRAM_NAME=~/x/binaries/Linux/mips/big-endian/glibc/vlmcsd-mips64-glibc
  85. make -B -j`nproc` allmulti
  86. export PLATFORMFLAGS="-flto=jobserver -fwhole-program -mips64 -mmicromips"
  87. export MULTI_NAME=~/x/binaries/Linux/mips/big-endian/glibc/vlmcsdmulti-mips64mm-glibc
  88. export CLIENT_NAME=~/x/binaries/Linux/mips/big-endian/glibc/vlmcs-mips64mm-glibc
  89. export PROGRAM_NAME=~/x/binaries/Linux/mips/big-endian/glibc/vlmcsd-mips64mm-glibc
  90. make -B -j`nproc` allmulti
  91. ## MIPS64 LITTLE-ENDIAN
  92. export PLATFORMFLAGS="-flto=jobserver -fwhole-program -mips64 -mno-mips16"
  93. export LDFLAGS="$SMALLLD"
  94. export CC=mips64el-linux-gnuabi64-gcc
  95. export MULTI_NAME=~/x/binaries/Linux/mips/little-endian/glibc/vlmcsdmulti-mips64el-glibc
  96. export CLIENT_NAME=~/x/binaries/Linux/mips/little-endian/glibc/vlmcs-mips64el-glibc
  97. export PROGRAM_NAME=~/x/binaries/Linux/mips/little-endian/glibc/vlmcsd-mips64el-glibc
  98. make -B -j`nproc` allmulti
  99. export PLATFORMFLAGS="-flto=jobserver -fwhole-program -mips64 -mmicromips"
  100. export MULTI_NAME=~/x/binaries/Linux/mips/little-endian/glibc/vlmcsdmulti-mips64elmm-glibc
  101. export CLIENT_NAME=~/x/binaries/Linux/mips/little-endian/glibc/vlmcs-mips64elmm-glibc
  102. export PROGRAM_NAME=~/x/binaries/Linux/mips/little-endian/glibc/vlmcsd-mips64elmm-glibc
  103. make -B -j`nproc` allmulti
  104. if [ "$1" == "nocopy" ]; then
  105. exit 0
  106. fi
  107. scp -p -P 2222 ~/x/binaries/Linux/s390/glibc/vlmcsdmulti-s390-glibc ~/x/binaries/Linux/s390/glibc/vlmcs-s390-glibc ~/x/binaries/Linux/s390/glibc/vlmcsd-s390-glibc ~/x/binaries/Linux/s390/glibc/vlmcsdmulti-s390x-glibc ~/x/binaries/Linux/s390/glibc/vlmcs-s390x-glibc ~/x/binaries/Linux/s390/glibc/vlmcsd-s390x-glibc s390:vlmcsd
  108. scp -p -P 2222 ~/x/binaries/Linux/s390/glibc/vlmcsdmulti-s390-glibc ~/x/binaries/Linux/s390/glibc/vlmcsdmulti-s390x-glibc s390:/usr/local/sbin