Ports: Replace hardcoded Build/ paths with SERENITY_BUILD_DIR

Fixes #5710.
This commit is contained in:
Linus Groh 2021-03-11 19:50:44 +01:00 committed by Andreas Kling
parent f45e16a6a2
commit f318ab6bed
Notes: sideshowbarker 2024-07-18 21:30:14 +09:00
29 changed files with 65 additions and 74 deletions

View File

@ -3,12 +3,13 @@ set -eu
SCRIPT=`dirname $0`
export SERENITY_ROOT=`realpath $SCRIPT/../`
packagesdb="$SERENITY_ROOT/Build/packages.db"
export SERENITY_ARCH=i686
export SERENITY_BUILD_DIR="${SERENITY_ROOT}/Build/${SERENITY_ARCH}"
export CC=i686-pc-serenity-gcc
export CXX=i686-pc-serenity-g++
export PATH=$SERENITY_ROOT/Toolchain/Local/i686/bin:$PATH
export SERENITY_ARCH=i686
packagesdb="${SERENITY_BUILD_DIR}/packages.db"
MD5SUM=md5sum
@ -161,7 +162,7 @@ func_defined build || build() {
run make $makeopts
}
func_defined install || install() {
run make DESTDIR="$SERENITY_ROOT"/Build/Root $installopts install
run make DESTDIR="${SERENITY_BUILD_DIR}/Root" $installopts install
}
func_defined post_install || post_install() {
echo
@ -223,10 +224,10 @@ uninstall() {
for f in `cat plist`; do
case $f in
*/)
run rmdir "$SERENITY_ROOT/Build/Root/$f" || true
run rmdir "${SERENITY_BUILD_DIR}/Root/$f" || true
;;
*)
run rm -rf "$SERENITY_ROOT/Build/Root/$f"
run rm -rf "${SERENITY_BUILD_DIR}/Root/$f"
;;
esac
done

View File

@ -191,8 +191,8 @@ keyring and can later be used for verification using [`auth_opts`](#auth_opts).
Options passed to `make install` in the default `install` function.
`DESTDIR="$SERENITY_ROOT"/Build/Root` is always passed, override the `install`
function if that's undesirable.
`DESTDIR="${SERENITY_BUILD_DIR}/Root"` (`"${SERENITY_ROOT}/Build/${SERENITY_ARCH}/Root"`)
is always passed, override the `install` function if that's undesirable.
#### `makeopts`

View File

@ -8,8 +8,8 @@ depends="SDL2"
configure() {
run ./configure \
--host=${SERENITY_ARCH}-pc-serenity \
--with-sdl-prefix=${SERENITY_ROOT}/Build/Root/usr \
--host="${SERENITY_ARCH}-pc-serenity" \
--with-sdl-prefix="${SERENITY_BUILD_DIR}/Root/usr" \
EXTRA_LDFLAGS="-lgui -lgfx -lipc -lcore -lcompression"
}
@ -18,5 +18,5 @@ build() {
}
install() {
run make -k DESTDIR="$SERENITY_ROOT"/Build/Root install
run make -k DESTDIR="${SERENITY_BUILD_DIR}/Root" install
}

View File

@ -8,7 +8,7 @@ depends="SDL2 freetype"
configure() {
run ./configure \
--host=${SERENITY_ARCH}-pc-serenity \
--with-sdl-prefix=${SERENITY_ROOT}/Build/Root/usr \
--host="${SERENITY_ARCH}-pc-serenity" \
--with-sdl-prefix="${SERENITY_BUILD_DIR}/Root/usr" \
LIBS="-lgui -lgfx -lipc -lcore -lcompress"
}

View File

@ -16,6 +16,6 @@ build() {
}
post_install() {
mkdir -p $SERENITY_ROOT/Build/Root/bin
ln -s /usr/local/bin/bash $SERENITY_ROOT/Build/Root/bin/bash
mkdir -p "${SERENITY_BUILD_DIR}/Root/bin"
ln -s /usr/local/bin/bash "${SERENITY_BUILD_DIR}/Root/bin/bash"
}

View File

@ -2,7 +2,7 @@
port=binutils
version=2.32
useconfigure=true
configopts="--target=i686-pc-serenity --with-sysroot=/ --with-build-sysroot=$SERENITY_ROOT/Build/Root --disable-werror --disable-gdb --disable-nls"
configopts="--target=i686-pc-serenity --with-sysroot=/ --with-build-sysroot=${SERENITY_BUILD_DIR}/Root --disable-werror --disable-gdb --disable-nls"
files="https://ftp.gnu.org/gnu/binutils/binutils-${version}.tar.xz binutils-${version}.tar.xz
https://ftp.gnu.org/gnu/binutils/binutils-${version}.tar.xz.sig binutils-${version}.tar.xz.sig
https://ftp.gnu.org/gnu/gnu-keyring.gpg gnu-keyring.gpg"

View File

@ -2,6 +2,6 @@
port=bison
version=1.25
useconfigure=true
configopts="--prefix=$SERENITY_ROOT/Build/Root/usr/local"
configopts="--prefix=${SERENITY_BUILD_DIR}/Root/usr/local"
files="https://ftp.gnu.org/gnu/bison/bison-${version}.tar.gz bison-${version}.tar.gz 65f577d0f8ffaf61ae21c23c0918d225"
auth_type="md5"

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
packagesdb="$SERENITY_ROOT/Build/packages.db"
packagesdb="${SERENITY_BUILD_DIR}/packages.db"
clean=false
case "$1" in

View File

@ -4,4 +4,4 @@ version=1.0.8
files="https://sourceware.org/pub/bzip2/bzip2-${version}.tar.gz bzip2-${version}.tar.gz"
workdir="bzip2-$version"
makeopts="bzip2 CC=${CC}"
installopts="PREFIX=${SERENITY_ROOT}/Build/Root/usr/local"
installopts="PREFIX=${SERENITY_BUILD_DIR}/Root/usr/local"

View File

@ -12,6 +12,6 @@ configure() {
}
install() {
mkdir -p $SERENITY_ROOT/Build/Root/home/anon/c-ray
cp -r c-ray-master/* $SERENITY_ROOT/Build/Root/home/anon/c-ray
mkdir -p "${SERENITY_BUILD_DIR}/Root/home/anon/c-ray"
cp -r c-ray-master/* "${SERENITY_BUILD_DIR}/Root/home/anon/c-ray"
}

View File

@ -12,7 +12,7 @@ build() {
}
install() {
cmake_dir="${SERENITY_ROOT}/Build/Root/home/anon/Source/cmake"
cmake_dir="${SERENITY_BUILD_DIR}/Root/home/anon/Source/cmake"
run rm -rf "$cmake_dir"
run mkdir -p "$cmake_dir"
run cp -r . "$cmake_dir"

View File

@ -2,7 +2,6 @@
port=dmidecode
version=3.3
useconfigure=false
prefix=
files="https://download.savannah.gnu.org/releases/dmidecode/dmidecode-${version}.tar.xz dmidecode-${version}.tar.xz
https://download.savannah.gnu.org/releases/dmidecode/dmidecode-${version}.tar.xz.sig dmidecode-${version}.tar.xz.sig
https://ftp.gnu.org/gnu/gnu-keyring.gpg gnu-keyring.gpg"
@ -16,9 +15,9 @@ install() {
}
post_install() {
mkdir -p $SERENITY_ROOT/Build/Root/bin
run make install-bin DESTDIR=$SERENITY_ROOT/Build/Root/
ln -s /usr/local/sbin/dmidecode $SERENITY_ROOT/Build/Root/bin/dmidecode
ln -s /usr/local/sbin/biosdecode $SERENITY_ROOT/Build/Root/bin/biosdecode
ln -s /usr/local/sbin/vpddecode $SERENITY_ROOT/Build/Root/bin/vpddecode
mkdir -p "${SERENITY_BUILD_DIR}/Root/bin"
run make install-bin DESTDIR="${SERENITY_BUILD_DIR}/Root"
ln -s /usr/local/sbin/dmidecode "${SERENITY_BUILD_DIR}/Root/bin/dmidecode"
ln -s /usr/local/sbin/biosdecode "${SERENITY_BUILD_DIR}/Root/bin/biosdecode"
ln -s /usr/local/sbin/vpddecode "${SERENITY_BUILD_DIR}/Root/bin/vpddecode"
}

View File

@ -7,8 +7,6 @@ depends="ncurses"
build() {
run make \
AR=i686-pc-serenity-ar \
RANLIB=i686-pc-serenity-ranlib \
PKG_CONFIG_CURSES=no \
CURSES_CFLAGS="-I${SERENITY_ROOT}/Build/Root/usr/local/include/ncurses" \
CURSES_LDFLAGS="-lncurses -ltinfo" \

View File

@ -2,12 +2,12 @@
port=gcc
version=10.2.0
useconfigure=true
configopts="--target=i686-pc-serenity --with-sysroot=/ --with-build-sysroot=$SERENITY_ROOT/Build/Root --with-newlib --enable-languages=c,c++ --disable-lto --disable-nls --enable-shared --enable-default-pie --enable-host-shared"
configopts="--target=i686-pc-serenity --with-sysroot=/ --with-build-sysroot=${SERENITY_BUILD_DIR}/Root --with-newlib --enable-languages=c,c++ --disable-lto --disable-nls --enable-shared --enable-default-pie --enable-host-shared"
files="https://ftp.gnu.org/gnu/gcc/gcc-${version}/gcc-${version}.tar.xz gcc-${version}.tar.xz
https://ftp.gnu.org/gnu/gcc/gcc-${version}/gcc-${version}.tar.xz.sig gcc-${version}.tar.xz.sig
https://ftp.gnu.org/gnu/gnu-keyring.gpg gnu-keyring.gpg"
makeopts="all-gcc all-target-libgcc all-target-libstdc++-v3 -j $(nproc)"
installopts="DESTDIR=$SERENITY_ROOT/Build/Root install-gcc install-target-libgcc install-target-libstdc++-v3"
installopts="DESTDIR=${SERENITY_BUILD_DIR}/Root install-gcc install-target-libgcc install-target-libstdc++-v3"
depends="binutils"
auth_type="sig"
auth_opts="--keyring ./gnu-keyring.gpg gcc-${version}.tar.xz.sig"

View File

@ -12,8 +12,8 @@ build() {
}
post_install() {
mkdir -p "$SERENITY_ROOT"/Build/Root/home/anon
cp "$workdir"/../default_gitconfig "$SERENITY_ROOT"/Build/Root/home/anon/.gitconfig
run mkdir -p "${SERENITY_BUILD_DIR}/Root/home/anon"
run cp "../default_gitconfig" "${SERENITY_BUILD_DIR}/Root/home/anon/.gitconfig"
}
export NO_OPENSSL=1

View File

@ -4,7 +4,7 @@ version=5.2.8
useconfigure=true
# Note: gnuplot's source code is hosted on SourceForge, but using the GitHub mirror makes downloading a versioned .tar.gz easier.
files="https://github.com/gnuplot/gnuplot/archive/${version}.tar.gz gnuplot-${version}.tar.gz"
configopts="--prefix=$SERENITY_ROOT/Build/Root/usr/local --with-readline=builtin"
configopts="--prefix=${SERENITY_BUILD_DIR}/Root/usr/local --with-readline=builtin"
pre_configure() {
run ./prepare

View File

@ -8,9 +8,8 @@ useconfigure=true
auth_type="sig"
auth_opts="--keyring ./gnu-keyring.gpg indent-${version}.tar.gz.sig"
man_dir=$SERENITY_ROOT/Build/Root/usr/local/share/man/man1/
post_install() {
mkdir -p "${man_dir}"
cp "indent-${version}/man/indent.1" "${man_dir}"
man_dir="${SERENITY_BUILD_DIR}/Root/usr/local/share/man/man1/"
run mkdir -p "${man_dir}"
run cp man/indent.1 "${man_dir}"
}

View File

@ -3,4 +3,4 @@ port=lua
version=5.3.5
files="http://www.lua.org/ftp/lua-5.3.5.tar.gz lua-5.3.5.tar.gz 4f4b4f323fd3514a68e0ab3da8ce3455"
makeopts="-j$(nproc) serenity"
installopts="INSTALL_TOP=$SERENITY_ROOT/Build/Root/usr/local"
installopts="INSTALL_TOP=${SERENITY_BUILD_DIR}/Root/usr/local"

View File

@ -10,5 +10,5 @@ auth_type="sig"
auth_import_key="BFD009061E535052AD0DF2150D28D4D2A0ACE884"
auth_opts="nano-${version}.tar.xz.asc nano-${version}.tar.xz"
export CPPFLAGS=-I${SERENITY_ROOT}/Build/Root/usr/local/include/ncurses
export PKG_CONFIG_PATH=${SERENITY_ROOT}/Build/Root/usr/local/lib/pkgconfig
export CPPFLAGS="-I${SERENITY_BUILD_DIR}/Root/usr/local/include/ncurses"
export PKG_CONFIG_PATH="${SERENITY_BUILD_DIR}/Root/usr/local/lib/pkgconfig"

View File

@ -1,18 +1,18 @@
#!/usr/bin/env -S bash ../.port_include.sh
port=ninja
version=1.8.2
workdir=ninja-1.8.2
files="https://github.com/ninja-build/ninja/archive/v1.8.2.tar.gz ninja-v1.8.2.tar.gz"
workdir="ninja-${version}"
files="https://github.com/ninja-build/ninja/archive/v${version}.tar.gz ninja-v${version}.tar.gz"
build() {
CXX=i686-pc-serenity-g++ CXXFLAGS="--sysroot=${SERENITY_ROOT}/Build/Root" \
LDFLAGS="--sysroot=${SERENITY_ROOT}/Build/Root" \
CXX=i686-pc-serenity-g++ CXXFLAGS="--sysroot=${SERENITY_BUILD_DIR}/Root" \
LDFLAGS="--sysroot=${SERENITY_BUILD_DIR}/Root" \
# platform=linux is close enough.
run ./configure.py --bootstrap --platform=linux
strip "${workdir}/ninja"
run strip ninja
}
install() {
mkdir -p "${SERENITY_ROOT}/Build/Root/usr/local/bin"
cp "${workdir}/ninja" "${SERENITY_ROOT}/Build/Root/usr/local/bin/ninja"
run mkdir -p "${SERENITY_BUILD_DIR}/Root/usr/local/bin"
run cp ninja "${SERENITY_BUILD_DIR}/Root/usr/local/bin/ninja"
}

View File

@ -5,8 +5,7 @@ version=8.3-9ca7e9c
files="https://github.com/openssh/openssh-portable/archive/9ca7e9c861775dd6c6312bc8aaab687403d24676.tar.gz openssh-8.3-9ca7e9c.tar.gz"
depends="zlib openssl"
useconfigure=true
usr_local=$SERENITY_ROOT/Build/Root/usr/local/
configopts="--prefix=/usr/local --disable-utmp --sysconfdir=/etc/ssh --with-ssl-dir=$usr_local/lib"
configopts="--prefix=/usr/local --disable-utmp --sysconfdir=/etc/ssh --with-ssl-dir=${SERENITY_BUILD_DIR}/Root/usr/local/lib"
pre_configure() {
run autoreconf
@ -14,5 +13,5 @@ pre_configure() {
install() {
# Can't make keys outside of Serenity since ssh-keygen is built for Serenity.
run make DESTDIR="$SERENITY_ROOT"/Build/Root $installopts install-nokeys
run make DESTDIR="${SERENITY_BUILD_DIR}/Root" $installopts install-nokeys
}

View File

@ -11,8 +11,7 @@ auth_import_key="8657ABB260F056B1E5190839D9C4D26D0E604491"
auth_opts="openssl-${version}.tar.gz.asc openssl-${version}.tar.gz"
depends="zlib"
usr_local=$SERENITY_ROOT/Build/Root/usr/local/
configopts="--prefix=$usr_local -DOPENSSL_SYS_SERENITY=1 --openssldir=$usr_local/ssl BSD-x86 zlib no-tests no-threads no-asm"
configopts="--prefix=${SERENITY_BUILD_DIR}/Root/usr/local -DOPENSSL_SYS_SERENITY=1 --openssldir=${SERENITY_BUILD_DIR}/Root/usr/local/ssl BSD-x86 zlib no-tests no-threads no-asm"
configure() {
run rm -rf ./test/

View File

@ -3,10 +3,11 @@ port=pkgconf
version=1.7.3
files="https://distfiles.dereferenced.org/pkgconf/pkgconf-1.7.3.tar.xz pkgconf-1.7.3.tar.xz"
useconfigure=true
usr_local=$SERENITY_ROOT/Build/Root/usr/local/
# FIXME: This looks suspiciously host-y...
configopts="--prefix=/usr/local --with-pkg-config-dir=/usr/local/lib/pkgconfig"
post_install() {
mkdir -p $SERENITY_ROOT/Build/Root/bin
ln -sf /usr/local/bin/pkgconf $SERENITY_ROOT/Build/Root/usr/local/bin/pkg-config
run mkdir -p "${SERENITY_BUILD_DIR}/Root/bin"
# FIXME: Same here, what is this about?!
run ln -sf /usr/local/bin/pkgconf "${SERENITY_BUILD_DIR}/Root/usr/local/bin/pkg-config"
}

View File

@ -29,7 +29,7 @@ _codecs_tw cjkcodecs/_codecs_tw.c
_contextvars _contextvarsmodule.c
_crypt _cryptmodule.c
_csv _csv.c
_ctypes _ctypes/_ctypes.c _ctypes/callbacks.c _ctypes/callproc.c _ctypes/cfield.c _ctypes/malloc_closure.c _ctypes/stgdict.c -I$(SERENITY_ROOT)/Build/Root/usr/local/include $(SERENITY_ROOT)/Build/Root/usr/local/lib/libffi.a
_ctypes _ctypes/_ctypes.c _ctypes/callbacks.c _ctypes/callproc.c _ctypes/cfield.c _ctypes/malloc_closure.c _ctypes/stgdict.c -I$(SERENITY_BUILD_DIR)/Root/usr/local/include $(SERENITY_BUILD_DIR)/Root/usr/local/lib/libffi.a
_datetime _datetimemodule.c
_elementtree -I$(srcdir)/Modules/expat -DHAVE_EXPAT_CONFIG_H -DUSE_PYEXPAT_CAPI _elementtree.c
_heapq _heapqmodule.c
@ -64,7 +64,7 @@ syslog syslogmodule.c
unicodedata unicodedata.c
xxlimited xxlimited.c
xxsubtype xxsubtype.c
zlib zlibmodule.c -I$(SERENITY_ROOT)/Build/Root/usr/local/include -L$(SERENITY_ROOT)/Build/Root/usr/local/lib -lz
zlib zlibmodule.c -I$(SERENITY_BUILD_DIR)/Root/usr/local/include -L$(SERENITY_BUILD_DIR)/Root/usr/local/lib -lz
*disabled*
# Not building, patch Python some more or fix LibC...
@ -74,4 +74,4 @@ _decimal _socket mmap resource spwd termios
_lsprof _multiprocessing
# Lots and lots of linker errors, although these flags should be correct:
_curses _cursesmodule.c -I$(SERENITY_ROOT)/Build/Root/usr/local/include/ncurses -L$(SERENITY_ROOT)/Build/Root/usr/local/lib -lncurses -ltermcap
_curses _cursesmodule.c -I$(SERENITY_BUILD_DIR)/Root/usr/local/include/ncurses -L$(SERENITY_BUILD_DIR)/Root/usr/local/lib -lncurses -ltermcap

View File

@ -7,4 +7,5 @@ files="https://github.com/SerenityOS/SerenityQuake/archive/master.tar.gz quake.t
makeopts="V=1 SYMBOLS_ON=Y "
depends=SDL2
export PATH=${SERENITY_ROOT}/Build/Root/usr/bin:$PATH
# FIXME: Uhh, the things in this directory are not supposed to run on the host, why add this to $PATH?!
export PATH="${SERENITY_BUILD_DIR}/Root/usr/bin:${PATH}"

View File

@ -6,11 +6,5 @@ files="https://github.com/mtoyoda/sl/archive/master.tar.gz sl-git.tar.gz"
depends="ncurses"
build() {
run ${CC} -I${SERENITY_ROOT}/Build/Root/usr/local/include/ncurses -L${SERENITY_ROOT}/Build/Root/usr/local/lib -o sl sl.c -lncurses -ltinfo
}
post_install() {
# Dirty hack that seems to be necessary to make ncurses play nice
mkdir -p ${SERENITY_ROOT}/Build/Root/usr/local/share/terminfo/x
cp ${SERENITY_ROOT}/Build/Root/usr/local/share/terminfo/78/xterm ${SERENITY_ROOT}/Build/Root/usr/local/share/terminfo/x/
run ${CC} -I${SERENITY_BUILD_DIR}/Root/usr/local/include/ncurses -L${SERENITY_BUILD_DIR}/Root/usr/local/lib -o sl sl.c -lncurses -ltinfo
}

View File

@ -3,4 +3,4 @@ port=stress-ng
version=0.11.23
workdir=stress-ng-${version}
files="https://github.com/ColinIanKing/stress-ng/archive/V${version}.tar.gz stress-ng-${version}.tar.gz"
makeopts="STATIC=1 LDFLAGS=-L${SERENITY_ROOT}/Build/Root/usr/local/lib"
makeopts="STATIC=1 LDFLAGS=-L${SERENITY_BUILD_DIR}/Root/usr/local/lib"

View File

@ -2,5 +2,5 @@
port=termcap
version=1.3.1
useconfigure=true
configopts="--prefix=$SERENITY_ROOT/Build/Root/usr"
configopts="--prefix=${SERENITY_BUILD_DIR}/Root/usr"
files="https://ftp.gnu.org/gnu/termcap/termcap-${version}.tar.gz termcap-${version}.tar.gz"

View File

@ -10,8 +10,8 @@ build() {
}
install() {
run mkdir -p "${SERENITY_ROOT}/Build/Root/usr/local/bin"
run cp scheme "${SERENITY_ROOT}/Build/Root/usr/local/bin/tinyscheme"
run mkdir -p "${SERENITY_ROOT}/Build/Root/usr/local/include/tinyscheme"
run cp init.scm "${SERENITY_ROOT}/Build/Root/usr/local/include/tinyscheme/init.scm"
run mkdir -p "${SERENITY_BUILD_DIR}/Root/usr/local/bin"
run cp scheme "${SERENITY_BUILD_DIR}/Root/usr/local/bin/tinyscheme"
run mkdir -p "${SERENITY_BUILD_DIR}/Root/usr/local/include/tinyscheme"
run cp init.scm "${SERENITY_BUILD_DIR}/Root/usr/local/include/tinyscheme/init.scm"
}