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/**
|
||||
apps/bin/**
|
||||
tests/**/bin/**
|
||||
base/usr/include/**
|
||||
base/usr/lib/**
|
||||
base/usr/**
|
||||
**/*.a
|
||||
ports/**/workdir/**
|
||||
ports/ports.list
|
||||
|
@ -4,6 +4,8 @@ set -e
|
||||
|
||||
cd $(dirname $0)/..
|
||||
|
||||
unset LUNA_BASE
|
||||
|
||||
source tools/env.sh
|
||||
|
||||
cd ports
|
||||
@ -50,6 +52,24 @@ mkdir -p $workdir
|
||||
|
||||
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..."
|
||||
|
||||
cd $workdir
|
||||
@ -67,14 +87,18 @@ then
|
||||
*) echo "Don't know how to download package mode '$pkgmode'"; exit 1;;
|
||||
esac
|
||||
|
||||
set +e
|
||||
command -v port_unpack >/dev/null
|
||||
set -e
|
||||
if [ "$?" = "0" ]
|
||||
then
|
||||
echo "Unpacking $pkgname version $pkgver..."
|
||||
port_unpack | filter-lines $pkgname "unpack"
|
||||
fi
|
||||
|
||||
set +e
|
||||
command -v port_patch >/dev/null
|
||||
set -e
|
||||
if [ "$?" = "0" ]
|
||||
then
|
||||
echo "Patching $pkgname version $pkgver..."
|
||||
@ -87,7 +111,9 @@ cd $workdir
|
||||
mkdir -p $builddir
|
||||
cd $builddir
|
||||
|
||||
set +e
|
||||
command -v port_configure >/dev/null
|
||||
set -e
|
||||
if [ "$?" = "0" ]
|
||||
then
|
||||
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
|
||||
export LUNA_ROOT=$(realpath $(dirname $0)/..)
|
||||
export LUNA_BASE=$LUNA_ROOT/base
|
||||
export LUNA_ROOT=${LUNA_ROOT:-$(realpath $(dirname $0)/..)}
|
||||
export LUNA_BASE=${LUNA_BASE:-$LUNA_ROOT/base}
|
||||
export PATH=$LUNA_ROOT/toolchain/x86-64-luna/bin:$LUNA_ROOT/toolchain/dist:$PATH
|
||||
|
||||
export CC=x86_64-luna-gcc
|
||||
|
@ -22,6 +22,7 @@ unset_vars()
|
||||
unset port_build
|
||||
unset port_install
|
||||
unset port_uninstall
|
||||
unset islib
|
||||
}
|
||||
|
||||
if ! [ -f ./ports.list ]
|
||||
@ -38,10 +39,13 @@ install_port()
|
||||
export portdir=$PWD/$1
|
||||
export workdir=$portdir/workdir
|
||||
source $portdir/package.sh
|
||||
if ! [ "$islib" = "1" ]
|
||||
then
|
||||
echo "installing port: $pkgname version $pkgver"
|
||||
mkdir -p $installdir
|
||||
cd $installdir
|
||||
port_install | filter-lines $pkgname "install"
|
||||
fi
|
||||
}
|
||||
|
||||
while read package; do
|
||||
|
Loading…
Reference in New Issue
Block a user