Ports: Add mpc, mpfr and gmp ports

This commit is contained in:
apio 2022-10-26 21:56:43 +02:00
parent f004122735
commit d875224045
8 changed files with 174 additions and 8 deletions

3
.gitignore vendored
View File

@ -8,8 +8,7 @@ initrd/sys/moon.sym
initrd/bin/** initrd/bin/**
apps/bin/** apps/bin/**
tests/**/bin/** tests/**/bin/**
base/usr/include/** base/usr/**
base/usr/lib/**
**/*.a **/*.a
ports/**/workdir/** ports/**/workdir/**
ports/ports.list ports/ports.list

View File

@ -4,6 +4,8 @@ set -e
cd $(dirname $0)/.. cd $(dirname $0)/..
unset LUNA_BASE
source tools/env.sh source tools/env.sh
cd ports cd ports
@ -50,6 +52,24 @@ mkdir -p $workdir
source $pkgscript source $pkgscript
if ! [ -z ${pkgdeps+x} ]
then
echo "Installing dependencies of $pkgname..."
for pkg in ${pkgdeps[@]}
do
set +e
grep $pkg ports.list >/dev/null
if [ "$?" = "0" ]
then
echo "Dependency $pkg is already installed."
else
echo "Installing dependency $pkg..."
./add-port.sh $pkg
fi
set -e
done
fi
echo "Building $pkgname version $pkgver..." echo "Building $pkgname version $pkgver..."
cd $workdir cd $workdir
@ -67,14 +87,18 @@ then
*) echo "Don't know how to download package mode '$pkgmode'"; exit 1;; *) echo "Don't know how to download package mode '$pkgmode'"; exit 1;;
esac esac
set +e
command -v port_unpack >/dev/null command -v port_unpack >/dev/null
set -e
if [ "$?" = "0" ] if [ "$?" = "0" ]
then then
echo "Unpacking $pkgname version $pkgver..." echo "Unpacking $pkgname version $pkgver..."
port_unpack | filter-lines $pkgname "unpack" port_unpack | filter-lines $pkgname "unpack"
fi fi
set +e
command -v port_patch >/dev/null command -v port_patch >/dev/null
set -e
if [ "$?" = "0" ] if [ "$?" = "0" ]
then then
echo "Patching $pkgname version $pkgver..." echo "Patching $pkgname version $pkgver..."
@ -87,7 +111,9 @@ cd $workdir
mkdir -p $builddir mkdir -p $builddir
cd $builddir cd $builddir
set +e
command -v port_configure >/dev/null command -v port_configure >/dev/null
set -e
if [ "$?" = "0" ] if [ "$?" = "0" ]
then then
echo "Configuring $pkgname version $pkgver..." echo "Configuring $pkgname version $pkgver..."

11
ports/gmp/gmp.patch Normal file
View File

@ -0,0 +1,11 @@
diff --color -rN -u gmp-vanilla/invalid.c gmp-6.2.1/invalid.c
--- a/gmp-6.2.1/invalid.c 2020-11-14 19:45:09.000000000 +0100
+++ b/gmp-6.2.1/invalid.c 2022-10-26 21:09:20.102237128 +0200
@@ -77,6 +77,6 @@
void
__gmp_invalid_operation (void)
{
- raise (SIGFPE);
+// raise (SIGFPE);
abort ();
}

44
ports/gmp/package.sh Normal file
View File

@ -0,0 +1,44 @@
pkgname="gmp"
pkgver="6.2.1"
pkgurl="https://ftp.gnu.org/gnu/gmp/gmp-$pkgver.tar.xz"
pkgmode="web"
islib=1
setupdir="$workdir"
builddir="$workdir/build"
installdir="$workdir/build"
srcdir="$workdir/gmp-$pkgver"
port_unpack()
{
tar xvf gmp-$pkgver.tar.xz
}
port_patch()
{
patch -u -i $portdir/gmp.patch -p 1 -d $workdir
}
port_configure()
{
CC_FOR_BUILD=gcc $srcdir/configure --enable-shared=no --with-gnu-ld --host=x86_64-luna --prefix=/usr
}
port_build()
{
make -j$(nproc)
}
port_install()
{
make DESTDIR=$LUNA_BASE install
rm -f $LUNA_BASE/usr/lib/*.la
}
port_uninstall()
{
make DESTDIR=$LUNA_BASE uninstall
rm -f $LUNA_BASE/usr/lib/libgmp.a
}

41
ports/mpc/package.sh Normal file
View File

@ -0,0 +1,41 @@
pkgname="mpc"
pkgver="1.2.1"
pkgurl="https://ftp.gnu.org/gnu/mpc/mpc-$pkgver.tar.gz"
pkgmode="web"
pkgdeps=('gmp' 'mpfr')
islib=1
setupdir="$workdir"
builddir="$workdir/build"
installdir="$workdir/build"
srcdir="$workdir/mpc-$pkgver"
port_unpack()
{
tar xvf mpc-$pkgver.tar.gz
}
port_configure()
{
$srcdir/configure --host=x86_64-luna --with-gnu-ld --enable-shared=no --prefix=/usr
}
port_build()
{
make -j$(nproc)
}
port_install()
{
make DESTDIR=$LUNA_BASE install
rm -f $LUNA_BASE/usr/lib/*.la
}
port_uninstall()
{
make DESTDIR=$LUNA_BASE uninstall
rm -f $LUNA_BASE/usr/lib/libmpc.a
}

41
ports/mpfr/package.sh Normal file
View File

@ -0,0 +1,41 @@
pkgname="mpfr"
pkgver="4.1.0"
pkgurl="https://ftp.gnu.org/gnu/mpfr/mpfr-$pkgver.tar.gz"
pkgmode="web"
pkgdeps=('gmp')
islib=1
setupdir="$workdir"
builddir="$workdir/build"
installdir="$workdir/build"
srcdir="$workdir/mpfr-$pkgver"
port_unpack()
{
tar xvf mpfr-$pkgver.tar.gz
}
port_configure()
{
$srcdir/configure --with-gnu-ld --host=x86_64-luna --enable-shared=no --prefix=/usr
}
port_build()
{
make -j$(nproc)
}
port_install()
{
make DESTDIR=$LUNA_BASE install
rm -f $LUNA_BASE/usr/lib/*.la
}
port_uninstall()
{
make DESTDIR=$LUNA_BASE uninstall
rm -f $LUNA_BASE/usr/lib/libmpfr.a
}

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
export LUNA_ROOT=$(realpath $(dirname $0)/..) export LUNA_ROOT=${LUNA_ROOT:-$(realpath $(dirname $0)/..)}
export LUNA_BASE=$LUNA_ROOT/base export LUNA_BASE=${LUNA_BASE:-$LUNA_ROOT/base}
export PATH=$LUNA_ROOT/toolchain/x86-64-luna/bin:$LUNA_ROOT/toolchain/dist:$PATH export PATH=$LUNA_ROOT/toolchain/x86-64-luna/bin:$LUNA_ROOT/toolchain/dist:$PATH
export CC=x86_64-luna-gcc export CC=x86_64-luna-gcc

View File

@ -22,6 +22,7 @@ unset_vars()
unset port_build unset port_build
unset port_install unset port_install
unset port_uninstall unset port_uninstall
unset islib
} }
if ! [ -f ./ports.list ] if ! [ -f ./ports.list ]
@ -38,10 +39,13 @@ install_port()
export portdir=$PWD/$1 export portdir=$PWD/$1
export workdir=$portdir/workdir export workdir=$portdir/workdir
source $portdir/package.sh source $portdir/package.sh
if ! [ "$islib" = "1" ]
then
echo "installing port: $pkgname version $pkgver" echo "installing port: $pkgname version $pkgver"
mkdir -p $installdir mkdir -p $installdir
cd $installdir cd $installdir
port_install | filter-lines $pkgname "install" port_install | filter-lines $pkgname "install"
fi
} }
while read package; do while read package; do