logo

live-bootstrap

Mirror of <https://github.com/fosslinux/live-bootstrap>

pass2.sh (4001B)


  1. # SPDX-FileCopyrightText: 2022 Dor Askayo <dor.askayo@gmail.com>
  2. # SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
  3. # SPDX-FileCopyrightText: 2021 Paul Dersey <pdersey@gmail.com>
  4. # SPDX-FileCopyrightText: 2023 fosslinux <fosslinux@aussies.space>
  5. #
  6. # SPDX-License-Identifier: GPL-3.0-or-later
  7. src_prepare() {
  8. default
  9. # Remove unused generated files
  10. rm etc/Makefile.in etc/configure
  11. rm zlib/aclocal.m4 zlib/configure
  12. # Regenerate top-level (autogen + autotools)
  13. autogen Makefile.def
  14. ACLOCAL=aclocal-1.15 autoreconf-2.69 -fi
  15. # Regenerate autoconf
  16. for dir in bfd binutils gas gold gprof intl ld libctf libiberty libsframe opcodes; do
  17. cd $dir
  18. ACLOCAL=aclocal-1.15 AUTOMAKE=automake-1.15 autoreconf-2.69 -fi
  19. cd ..
  20. done
  21. # Regenerate directories with Makefile.am only
  22. pushd gold
  23. automake-1.15 -fai testsuite/Makefile
  24. popd
  25. pushd gprofng
  26. automake-1.15 -fai doc/Makefile
  27. automake-1.15 -fai gp-display-html/Makefile
  28. automake-1.15 -fai src/Makefile
  29. popd
  30. # intl/ Makefile is a bit broken because of new gettext
  31. sed -i 's/@USE_INCLUDED_LIBINTL@/no/' intl/Makefile.in
  32. # There is no way to add -all-static to libtool LDFLAGS (such a thing doesn't exist)
  33. # -all-static is required for static binaries with libtool
  34. sed -i 's:\(--mode=link $(CCLD)\):\1 -all-static:' {bfd,binutils,opcodes,ld,libctf,gas,gprof}/Makefile.in
  35. # Rebuild bison files
  36. touch -- */*.y
  37. rm binutils/arparse.c binutils/arparse.h
  38. rm binutils/defparse.c binutils/defparse.h
  39. rm binutils/mcparse.c binutils/mcparse.h
  40. rm binutils/rcparse.c binutils/rcparse.h
  41. rm binutils/sysinfo.c binutils/sysinfo.h
  42. rm gas/config/bfin-parse.c gas/config/bfin-parse.h
  43. rm gas/config/loongarch-parse.c gas/config/loongarch-parse.h
  44. rm gas/config/m68k-parse.c gas/config/rl78-parse.c
  45. rm gas/config/rl78-parse.h gas/config/rx-parse.c
  46. rm gas/config/rx-parse.h gas/itbl-parse.c
  47. rm gas/itbl-parse.h gold/yyscript.c
  48. rm gold/yyscript.h intl/plural.c
  49. rm ld/deffilep.c ld/deffilep.h
  50. rm ld/ldgram.c ld/ldgram.h
  51. # Rebuild flex generated files
  52. touch -- */*.l */*/*.l
  53. rm binutils/arlex.c binutils/deflex.c binutils/syslex.c
  54. rm gas/config/bfin-lex.c gas/config/loongarch-lex.c gas/itbl-lex.c
  55. rm ld/ldlex.c
  56. # Remove prebuilt texinfo files
  57. find . -type f -name '*.info*' \
  58. -not -wholename './binutils/sysroff.info' \
  59. -delete
  60. # Remove pregenerated opcodes files
  61. rm opcodes/i386-init.h opcodes/i386-tbl.h opcodes/i386-mnem.h
  62. rm opcodes/ia64-asmtab.c
  63. rm opcodes/z8k-opc.h
  64. rm opcodes/aarch64-asm-2.c opcodes/aarch64-opc-2.c opcodes/aarch64-dis-2.c
  65. rm $(grep -l 'MACHINE GENERATED' opcodes/*.c opcodes/*.h)
  66. rm libiberty/functions.texi
  67. # Regenerate MeP sections
  68. ./bfd/mep-relocs.pl
  69. # Manpages
  70. find . -type f \( -name '*.1' -or -name '*.man' \) -delete
  71. }
  72. src_configure() {
  73. mkdir build
  74. cd build
  75. LDFLAGS="-static" \
  76. ../configure \
  77. --prefix="${PREFIX}" \
  78. --libdir="${LIBDIR}" \
  79. --build=i386-unknown-linux-musl \
  80. --host=i386-unknown-linux-musl \
  81. --target=i386-unknown-linux-musl \
  82. --enable-static \
  83. --disable-nls \
  84. --disable-multilib \
  85. --disable-plugins \
  86. --disable-gprofng \
  87. --enable-threads \
  88. --enable-64-bit-bfd \
  89. --enable-gold \
  90. --enable-ld=default \
  91. --enable-install-libiberty \
  92. --enable-deterministic-archives \
  93. --with-system-zlib \
  94. --program-prefix="" \
  95. --with-sysroot= \
  96. --srcdir=..
  97. }
  98. src_install() {
  99. default
  100. # Create triplet symlinks
  101. pushd "${DESTDIR}${PREFIX}/bin"
  102. for f in *; do
  103. ln -s "${PREFIX}/bin/${f}" "i386-unknown-linux-musl-${f}"
  104. done
  105. popd
  106. # FIXME: Binutils' manpages dates are not reproducible
  107. rm -r "${DESTDIR}${PREFIX}/share/man"
  108. }