mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2026-04-18 12:13:42 +02:00
145 lines
4.2 KiB
Plaintext
145 lines
4.2 KiB
Plaintext
# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
|
|
|
|
_pkgbase=newlib
|
|
_targets="
|
|
mips-mti-elf
|
|
msp430-elf
|
|
arm-none-eabi
|
|
"
|
|
pkgname="$_pkgbase"
|
|
pkgver="3.0.0.20180831"
|
|
pkgrel=1
|
|
pkgdesc="A C standard library implementation intended for use on embedded systems"
|
|
url="http://www.sourceware.org/newlib/"
|
|
makedepends="texinfo"
|
|
arch="all !mips !mips64"
|
|
license="BSD"
|
|
source="
|
|
ftp://sourceware.org/pub/${_pkgbase}/${_pkgbase}-${pkgver}.tar.gz
|
|
"
|
|
options="!check"
|
|
|
|
for target in $_targets; do
|
|
targetnorm="${target//-/_}"
|
|
subpackages="${_pkgbase}-${target}:${targetnorm} ${subpackages}"
|
|
makedepends="binutils-${target} gcc-${target} ${makedepends}"
|
|
done
|
|
|
|
builddir="$srcdir/$_pkgbase-$pkgver"
|
|
|
|
# This package installes two version of the newlib library to remain compatible
|
|
# with projects expecting the GNU ARM Embedded Toolchain [1]. The nano version
|
|
# appends the postix "_nano" to the libaries. The is not an arbitrary choice,
|
|
# it matches the specs in "/usr/arm-none-eabi/lib/nano.specs", which is
|
|
# part of the default newlib installation.
|
|
# [1]: https://launchpad.net/gcc-arm-embedded/
|
|
|
|
build() {
|
|
for target in $_targets; do
|
|
mkdir "${builddir}/build-$target" "${builddir}/build-$target-nano"
|
|
# nano version
|
|
cd "${builddir}/build-$target-nano"
|
|
"$builddir"/configure \
|
|
--target=$target \
|
|
--prefix=/usr/ \
|
|
--infodir=/deleteme/info \
|
|
--mandir=/deleteme/man \
|
|
--htmldir=/deleteme/html \
|
|
--pdfdir=/deleteme/pdf \
|
|
--disable-newlib-supplied-syscalls \
|
|
--disable-nls \
|
|
--disable-newlib-fseek-optimization \
|
|
--disable-newlib-fvwrite-in-streamio \
|
|
--disable-newlib-unbuf-stream-opt \
|
|
--disable-newlib-wide-orient \
|
|
--enable-lite-exit \
|
|
--enable-newlib-global-atexit \
|
|
--enable-newlib-nano-formatted-io \
|
|
--enable-newlib-nano-malloc \
|
|
--enable-newlib-reent-small \
|
|
CC_FOR_TARGET="$target"-gcc \
|
|
GCC_FOR_TARGET="$target"-gcc \
|
|
AR_FOR_TARGET="$target"-ar \
|
|
AS_FOR_TARGET="$target"-as \
|
|
LD_FOR_TARGET="$target"-ld \
|
|
NM_FOR_TARGET="$target"-nm \
|
|
OBJDUMP_FOR_TARGET="$target"-objdump \
|
|
RANLIB_FOR_TARGET="$target"-ranlib \
|
|
READELF_FOR_TARGET="$target"-readelf \
|
|
STRIP_FOR_TARGET="$target"-strip \
|
|
CFLAGS="-Os -ffunction-sections -fdata-sections -fshort-wchar"
|
|
make
|
|
|
|
# regular version
|
|
cd "${builddir}/build-$target"
|
|
"$builddir"/configure \
|
|
--host=$CHOST \
|
|
--target=$target \
|
|
--prefix=/usr \
|
|
--infodir=/deleteme/info \
|
|
--mandir=/deleteme/man \
|
|
--htmldir=/deleteme/html \
|
|
--pdfdir=/deleteme/pdf \
|
|
--disable-newlib-supplied-syscalls \
|
|
--disable-nls \
|
|
--enable-newlib-io-long-long \
|
|
--enable-newlib-register-fini \
|
|
CC_FOR_TARGET="$target"-gcc \
|
|
GCC_FOR_TARGET="$target"-gcc \
|
|
AR_FOR_TARGET="$target"-ar \
|
|
AS_FOR_TARGET="$target"-as \
|
|
LD_FOR_TARGET="$target"-ld \
|
|
NM_FOR_TARGET="$target"-nm \
|
|
OBJDUMP_FOR_TARGET="$target"-objdump \
|
|
RANLIB_FOR_TARGET="$target"-ranlib \
|
|
READELF_FOR_TARGET="$target"-readelf \
|
|
STRIP_FOR_TARGET="$target"-strip \
|
|
CFLAGS="-O2 -ffunction-sections -fdata-sections -pipe"
|
|
make
|
|
done
|
|
}
|
|
|
|
package() {
|
|
for target in $_targets; do
|
|
depends="$depends $_pkgbase-$target"
|
|
done
|
|
mkdir -p "$pkgdir"
|
|
}
|
|
|
|
_install_subpkg() {
|
|
pkgdesc="A C standard library implementation intended for ${target}"
|
|
target="${subpkgname#$_pkgbase-}"
|
|
depends="binutils-${target} gcc-${target} ${depends}"
|
|
mkdir -p "$subpkgdir"
|
|
# install nano version
|
|
cd "${builddir}/build-${target}-nano"
|
|
make -j1 DESTDIR="$subpkgdir" install
|
|
# rename nano version libs
|
|
cd "${subpkgdir}/usr/$target/lib"
|
|
for file in $(find . -regex ".*\(c\|g\|rdimon\)\.a"); do
|
|
mv "$file" "${file%.a}_nano.a"
|
|
done
|
|
mkdir -p "${subpkgdir}/usr/$target/include/nano"
|
|
mv "${subpkgdir}/usr/$target/include/newlib.h" \
|
|
"${subpkgdir}/usr/$target/include/nano/"
|
|
|
|
# install regular version
|
|
cd "${builddir}/build-${target}"
|
|
make -j1 DESTDIR="$subpkgdir" install
|
|
rm -rf "${subpkgdir}/deleteme"
|
|
}
|
|
|
|
arm_none_eabi() {
|
|
_install_subpkg
|
|
}
|
|
|
|
mips_mti_elf() {
|
|
_install_subpkg
|
|
}
|
|
|
|
msp430_elf() {
|
|
_install_subpkg
|
|
}
|
|
|
|
sha512sums="c195111ac61458fccbd700345cd8ed7806776b3d16557e9a86fbcdf0ff5f544bff7eb701e84defb3f6b4d6fc00674163fa89aead1b171ed3281470a4f6306d1f newlib-3.0.0.20180831.tar.gz"
|