Ports: Add mpc, mpfr and gmp ports
This commit is contained in:
parent
f004122735
commit
d875224045
3
.gitignore
vendored
3
.gitignore
vendored
@ -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
|
||||||
|
@ -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
11
ports/gmp/gmp.patch
Normal 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
44
ports/gmp/package.sh
Normal 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
41
ports/mpc/package.sh
Normal 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
41
ports/mpfr/package.sh
Normal 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
|
||||||
|
}
|
@ -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
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user