make_nonbs 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. #!/bin/bash
  2. if [ $(id -u) != 0 ]; then
  3. echo "Must be root to run this"
  4. exit 5
  5. fi
  6. cd "$( dirname "$0" )"
  7. IS64ONLY=0
  8. if [ "$(uname -r|grep Microsoft)" != "" ]; then
  9. IS64ONLY=1
  10. echo "Warning 32-bit toolchains do not run."
  11. fi
  12. export VLMCSD_VERSION=$(git describe)
  13. export VERBOSE=3
  14. export DNS_PARSER=internal
  15. MAKEFLAGS="-j200 -B"
  16. REUSEOBJFLAGS="-j200"
  17. SMALLCC="-pipe -fno-common -fno-exceptions -fno-stack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fmerge-all-constants"
  18. SMALLLD="-pipe -Wl,--hash-style=sysv -Wl,-z,norelro -Wl,--build-id=none"
  19. SMALL="$SMALLCC $SMALLLD"
  20. rm -f vlmcs vlmcsdmulti vlmcsd 2>/dev/null
  21. rm -fr ../binaries
  22. mkdir -p ../../debian/root/x/binaries/Linux/intel/glibc
  23. mkdir -p ../../debian/root/x/binaries/Linux/intel/uclibc
  24. mkdir -p ../../debian/root/x/binaries/Linux/intel/static
  25. mkdir -p ../../debian/root/x/binaries/Linux/intel/musl
  26. mkdir -p ../../debian/root/x/binaries/Linux/sparc/glibc
  27. mkdir -p ../../debian/root/x/binaries/Linux/s390/glibc
  28. mkdir -p ../../debian/root/x/binaries/Android/arm/bionic
  29. mkdir -p ../../debian/root/x/binaries/Android/arm/static
  30. mkdir -p ../../debian/root/x/binaries/Android/intel/bionic
  31. mkdir -p ../../debian/root/x/binaries/Android/intel/static
  32. mkdir -p ../../debian/root/x/binaries/Android/mips/bionic
  33. mkdir -p ../../debian/root/x/binaries/Android/mips/static
  34. mkdir -p ../../debian/root/x/binaries/Linux/arm/little-endian/glibc
  35. mkdir -p ../../debian/root/x/binaries/Linux/arm/little-endian/musl
  36. mkdir -p ../../debian/root/x/binaries/Linux/arm/little-endian/uclibc
  37. mkdir -p ../../debian/root/x/binaries/Linux/arm/little-endian/static
  38. mkdir -p ../../debian/root/x/binaries/Linux/arm/big-endian/uclibc
  39. mkdir -p ../../debian/root/x/binaries/Linux/arm/big-endian/static
  40. mkdir -p ../../debian/root/x/binaries/Linux/mips/little-endian/glibc
  41. mkdir -p ../../debian/root/x/binaries/Linux/mips/little-endian/uclibc
  42. mkdir -p ../../debian/root/x/binaries/Linux/mips/little-endian/static
  43. mkdir -p ../../debian/root/x/binaries/Linux/mips/little-endian/musl
  44. mkdir -p ../../debian/root/x/binaries/Linux/mips/big-endian/uclibc
  45. mkdir -p ../../debian/root/x/binaries/Linux/mips/big-endian/static
  46. mkdir -p ../../debian/root/x/binaries/Linux/mips/big-endian/glibc
  47. mkdir -p ../../debian/root/x/binaries/Linux/mips/big-endian/musl
  48. mkdir -p ../../debian/root/x/binaries/Linux/ppc/little-endian/glibc
  49. mkdir -p ../../debian/root/x/binaries/Linux/ppc/big-endian/glibc
  50. mkdir -p ../../debian/root/x/binaries/Linux/ppc/big-endian/uclibc
  51. mkdir -p ../../debian/root/x/binaries/Linux/ppc/big-endian/musl
  52. mkdir -p ../../debian/root/x/binaries/Linux/ppc/big-endian/static
  53. mkdir -p ../../debian/root/x/binaries/MacOSX/intel
  54. mkdir -p ../../debian/root/x/binaries/MacOSX/ppc
  55. mkdir -p ../../debian/root/x/binaries/iOS/arm
  56. mkdir -p ../../debian/root/x/binaries/FreeBSD/intel
  57. mkdir -p ../../debian/root/x/binaries/NetBSD/intel
  58. mkdir -p ../../debian/root/x/binaries/OpenBSD/intel
  59. mkdir -p ../../debian/root/x/binaries/DragonFly/intel
  60. mkdir -p ../../debian/root/x/binaries/Solaris/intel
  61. mkdir -p ../../debian/root/x/binaries/Windows/intel
  62. mkdir -p ../../debian/root/x/binaries/Minix/intel
  63. mkdir -p ../../debian/root/x/binaries/Hurd/intel
  64. ../../bin/prepare-debian
  65. OLDHOME=$HOME
  66. export HOME=/root
  67. chroot ../../debian /root/x/hotbird64-mass-build/make_bs
  68. chroot ../../debian /root/x/hotbird64-mass-build/make_multilib_linux
  69. export HOME=$OLDHOME
  70. rm -f *_all.c vlmcsd.o vlmcs.o vlmcsdmulti.o 2> /dev/null
  71. export STAGING_DIR=.
  72. cd ../src
  73. pwd
  74. # Linux x32 glibc
  75. export FEATURES=full
  76. export MULTI_NAME=../../debian/root/x/binaries/Linux/intel/glibc/vlmcsdmulti-x32-glibc
  77. export CLIENT_NAME=../../debian/root/x/binaries/Linux/intel/glibc/vlmcs-x32-glibc
  78. export PROGRAM_NAME=../../debian/root/x/binaries/Linux/intel/glibc/vlmcsd-x32-glibc
  79. export CC=gcc
  80. export CFLAGS="$SMALLCC"
  81. export PLATFORMFLAGS="-flto=16 -fwhole-program -mx32 -march=nocona -mtune=generic"
  82. export LDFLAGS="-fuse-ld=bfd $SMALLLD -Wl,--hash-style=gnu"
  83. export THREADS=0
  84. export NOPROCFS=0
  85. export AUXV=1
  86. make DNS_PARSER=OS $MAKEFLAGS allmulti
  87. if [ $? != 0 ]; then
  88. echo Error creating $CLIENT_NAME and/or $PROGRAM_NAME
  89. exit $?
  90. fi
  91. # Linux x32 glibc threads
  92. export FEATURES=full
  93. export PROGRAM_NAME=../../debian/root/x/binaries/Linux/intel/glibc/vlmcsd-x32-glibc-threads
  94. export CC=gcc
  95. export CFLAGS="$SMALLCC"
  96. export PLATFORMFLAGS="-flto=16 -fwhole-program -mx32 -march=nocona -mtune=generic"
  97. export LDFLAGS="-fuse-ld=bfd $SMALLLD -Wl,--hash-style=gnu -lpthread"
  98. export THREADS=1
  99. export NOPROCFS=0
  100. export AUXV=1
  101. make DNS_PARSER=OS $MAKEFLAGS $PROGRAM_NAME
  102. if [ $? != 0 ]; then
  103. echo Error creating $PROGRAM_NAME
  104. exit $?
  105. fi
  106. cd ..
  107. make alldocs
  108. mkdir -p /usr/local/man/man1 2>/dev/null
  109. mkdir -p /usr/local/man/man5 2>/dev/null
  110. mkdir -p /usr/local/man/man8 2>/dev/null
  111. mkdir -p /usr/local/man/man7 2>/dev/null
  112. cp -a man/vlmcs.1 man/vlmcsdmulti.1 /usr/local/man/man1/
  113. cp -a man/vlmcsd-floppy.7 man/vlmcsd.7 /usr/local/man/man7/
  114. cp -a man/vlmcsd.8 /usr/local/man/man8/
  115. cp -a man/vlmcsd.ini.5 /usr/local/man/man5/
  116. pbzip2 -f -9 /usr/local/man/man7/vlmcsd-floppy.7 /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
  117. mandb >/dev/null 2>&1