mirror of
https://github.com/RGBCube/serenity
synced 2025-07-28 14:57:34 +00:00
Add the start of a simple ports infrastructure
This commit is contained in:
parent
9947ee9566
commit
5c82d14128
3 changed files with 108 additions and 0 deletions
78
Ports/.port_include.sh
Normal file
78
Ports/.port_include.sh
Normal file
|
@ -0,0 +1,78 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# This script contains common helpers for all ports.
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [ -z "$MAKEOPTS" ]; then
|
||||||
|
MAKEOPTS="-j $(nproc)"
|
||||||
|
fi
|
||||||
|
if [ -z "$INSTALLOPTS" ]; then
|
||||||
|
MAKEOPTS="-j $(nproc)"
|
||||||
|
fi
|
||||||
|
if [ -z "$SERENITY_ROOT" ]; then
|
||||||
|
echo "You must have source'd UseIt.sh to build any ports!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$PORT_DIR" ]; then
|
||||||
|
echo "Must set PORT_DIR to where the source should be cloned."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
function run_fetch_git() {
|
||||||
|
if [ -d "$PORT_DIR/.git" ]; then
|
||||||
|
(cd "$PORT_DIR" && git fetch && git reset --hard FETCH_HEAD)
|
||||||
|
else
|
||||||
|
git clone "$1" "$PORT_DIR"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function run_configure_cmake() {
|
||||||
|
(
|
||||||
|
cd "$PORT_DIR"
|
||||||
|
cmake -DCMAKE_TOOLCHAIN_FILE="$SERENITY_ROOT/Toolchain/CMakeToolchain.txt" .
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
function run_configure_autotools() {
|
||||||
|
(
|
||||||
|
cd "$PORT_DIR"
|
||||||
|
./configure --host=i686-pc-serenity
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
function run_make() {
|
||||||
|
(
|
||||||
|
cd "$PORT_DIR"
|
||||||
|
make $MAKEOPTS "$@"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
function run_make_install() {
|
||||||
|
(
|
||||||
|
cd "$PORT_DIR"
|
||||||
|
make $INSTALLOPTS install "$@"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ -z "$1" ]; then
|
||||||
|
fetch
|
||||||
|
configure
|
||||||
|
build
|
||||||
|
install
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$1" == "fetch" ]; then
|
||||||
|
fetch
|
||||||
|
elif [ "$1" == "configure" ]; then
|
||||||
|
configure
|
||||||
|
elif [ "$1" == "build" ]; then
|
||||||
|
build
|
||||||
|
elif [ "$1" == "install" ]; then
|
||||||
|
install
|
||||||
|
else
|
||||||
|
echo "Unknown verb: $1"
|
||||||
|
echo "Supported: (one of) fetch configure build install"
|
||||||
|
exit 1
|
||||||
|
fi
|
15
Ports/README.md
Normal file
15
Ports/README.md
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
# What's this?
|
||||||
|
|
||||||
|
Serenity has software patched to run on it.
|
||||||
|
These shell scripts will allow you to build that sort of software, easily.
|
||||||
|
For example, if you want to install SDL2, simply run the SDL2.sh script.
|
||||||
|
Note that you should have already built Serenity, and be in a Serenity build environment.
|
||||||
|
|
||||||
|
# Using ports scripts
|
||||||
|
|
||||||
|
To do everything, just run the script: `./SDL2.sh`
|
||||||
|
To do a single step, you can specify it: `./SDL2.sh build`
|
||||||
|
|
||||||
|
# How do I contribute?
|
||||||
|
|
||||||
|
Port software, and add new scripts to build it of course :)
|
15
Ports/SDL2.sh
Executable file
15
Ports/SDL2.sh
Executable file
|
@ -0,0 +1,15 @@
|
||||||
|
#!/bin/sh
|
||||||
|
PORT_DIR=SDL
|
||||||
|
function fetch() {
|
||||||
|
run_fetch_git "https://github.com/SerenityOS/SDL"
|
||||||
|
}
|
||||||
|
function configure() {
|
||||||
|
run_configure_cmake
|
||||||
|
}
|
||||||
|
function build() {
|
||||||
|
run_make
|
||||||
|
}
|
||||||
|
function install() {
|
||||||
|
run_make_install
|
||||||
|
}
|
||||||
|
source ./.port_include.sh
|
Loading…
Add table
Add a link
Reference in a new issue