summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: e9932d24186e7cccfa14253c5eb48632485c8dd1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# Maintainer: Pellegrino Prevete <pellegrinoprevete@gmail.com>
# Contributor: Olivier Mehani <olivier.mehani@inria.fr>

# shellcheck disable=SC2034
_pkg="gcc"
target="mipsel-linux"
pkgname="${target}-${_pkg}3-initial"
pkgver=3.3.6
pkgrel=1
pkgdesc="GNU C compiler (bootstrap, mipsel-linux)"
url="http://www.gnu.org/software/${_pkg}"
arch=("x86_64")
provides=("${target}-${_pkg}3")
depends=("glibc" "${target}-binutils")
source=("ftp://ftp.gnu.org/gnu/${_pkg}/${_pkg}-${pkgver}/${_pkg}-core-${pkgver}.tar.bz2")
sha256sums=('4f9bee8ac57711508d6b8031d5ecfefc16fcf37ec81568b3f8344ef5f4cdfeb6')
options=(!strip)

_n_cpu="$(getconf _NPROCESSORS_ONLN)"
_make_opts=(-j "${_n_cpu}")

# shellcheck disable=SC2154
build() {
  local _target

  CFLAGS=""
  CXXFLAGS=""
  CPPFLAGS=""
  LDFLAGS=""
  export CFLAGS
  export CXXFLAGS
  export CPPFLAGS
  export LDFLAGS
  export PATH="${PATH}:${_bu_bin}"
  export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/lib"

  local _cflags=(-D_FORTIFY_SOURCE=0
                 -O2
                 -Wno-implicit-function-declaration
                 -I/usr/include
                 -L/usr/lib
                 # -ldl
                 -static)

  local _ldflags=(-I/usr/include
                  # -rdynamic
                  -L/usr/lib
                  # -ldl
                  -Bstatic
                  -s)

  local _libs=(-L/usr/lib)
               # -ldl
               # /usr/lib/libmpc.so
               # /usr/lib/libmpfr.so
               # /usr/lib/libgmp.so)

  local _build_opts=(${_make_opts[@]}
                     CFLAGS="${_cflags[*]}"
                     CXXFLAGS="${_cflags[*]}"
                     CPPFLAGS="${_cflags[*]}"
                     LDFLAGS="${_ldflags[*]}"
                     LIBS="${_libs[*]}")

  cd "${srcdir}/${_pkg}-${pkgver}"

  for _target in "${target}"; do
    rm -rf "build-${_target}"
    mkdir -p "build-${_target}"
    cd "build-${_target}"
    local _configure_opts=(--prefix="/usr"
                           --target="${_target}"
                           --host=${CHOST}
                           --build=${CHOST}
                           --infodir="/usr/${_target}/share/info"
                           --mandir="/usr/${_target}/share/man"
                           --with-gnu-as
                           --with-gnu-ld
                           --disable-shared
                           --disable-libiberty
                           --disable-nls
                           --disable-threads)

    LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/lib" \
    CC="/usr/bin/gcc" \
    CXX="/usr/bin/g++" \
    CFLAGS="${_cflags[*]}" \
    CXXFLAGS="${_cxxflags[*]}" \
    LDFLAGS="${_ldflags[*]}" \
    LIBS="${_libs[*]}" \
    "../configure" ${_configure_opts[@]}

    LD_LIBRARY_PATH=/usr/lib \
    CC="/usr/bin/gcc" \
    CXX="/usr/bin/g++" \
    CFLAGS="${_cflags[*]}" \
    CXXFLAGS="${_cxxflags[*]}" \
    LDFLAGS="${_ldflags[*]}" \
    LIBS="${_libs[*]}" \
    make "${_build_opts[@]}"

    cd ..
  done

}

package() {
  local _target
  cd "${srcdir}/${_pkg}-${pkgver}"
  for _target in "${target}"; do
    cd "build-${_target}"
    make DESTDIR="${pkgdir}" "${_make_opts[@]}" install
    rm -rf "${pkgdir}/usr/lib/libiberty.a"
    rm -rf "${pkgdir}/usr/${target}/share/info/dir"
    cd ..
  done
}