improve build script
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -5,3 +5,4 @@ build/
|
|||||||
__pycache__/
|
__pycache__/
|
||||||
build
|
build
|
||||||
*.dksh
|
*.dksh
|
||||||
|
source/hekate
|
||||||
|
|||||||
123
build.sh
123
build.sh
@@ -1,6 +1,44 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
EXT=0
|
||||||
|
LDR_MAKE="nx_release"
|
||||||
|
NO_EXO=0
|
||||||
|
|
||||||
|
ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
DIST_DIR="$ROOT_DIR/dist"
|
||||||
|
|
||||||
|
while [ $# -gt 0 ]; do
|
||||||
|
case "$1" in
|
||||||
|
--ext)
|
||||||
|
EXT=1
|
||||||
|
;;
|
||||||
|
--ldr=*)
|
||||||
|
LDR_MAKE="${1#*=}"
|
||||||
|
;;
|
||||||
|
--no-exo)
|
||||||
|
NO_EXO=1
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unknown option: $1"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
LDR_BUILD_PATH="${LDR_MAKE#nx_}"
|
||||||
|
|
||||||
|
echo
|
||||||
|
if [ "$EXT" -eq 1 ]; then
|
||||||
|
echo "EXT = 1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$NO_EXO" -eq 1 ]; then
|
||||||
|
echo "No_EXO = 1"
|
||||||
|
fi
|
||||||
|
|
||||||
CORES="$(nproc --all)"
|
CORES="$(nproc --all)"
|
||||||
|
echo "CORES: $CORES"
|
||||||
|
|
||||||
SRC="Source/Atmosphere/stratosphere/loader/"
|
SRC="Source/Atmosphere/stratosphere/loader/"
|
||||||
DEST="build/stratosphere/loader/"
|
DEST="build/stratosphere/loader/"
|
||||||
@@ -12,36 +50,38 @@ echo "*** Patching loader ***"
|
|||||||
cp -vr "$SRC"/. "$DEST"/
|
cp -vr "$SRC"/. "$DEST"/
|
||||||
echo
|
echo
|
||||||
|
|
||||||
echo "*** Patching exosphere ***"
|
if [ "$NO_EXO" -eq 0 ]; then
|
||||||
EXO_SRC="Source/Atmosphere-Patches"
|
echo "*** Patching exosphere ***"
|
||||||
EXO_DEST="build/exosphere/program/source/smc"
|
EXO_SRC="Source/Atmosphere-Patches"
|
||||||
LIBEXO_DEST="build/libraries/libexosphere/include/exosphere/secmon"
|
EXO_DEST="build/exosphere/program/source/smc"
|
||||||
|
LIBEXO_DEST="build/libraries/libexosphere/include/exosphere/secmon"
|
||||||
|
|
||||||
|
cp -v "$EXO_SRC/secmon_emc_access_table_data.inc" "$EXO_DEST/"
|
||||||
|
cp -v "$EXO_SRC/secmon_define_emc_access_table.inc" "$EXO_DEST/"
|
||||||
|
cp -v "$EXO_SRC/secmon_rtc_pmc_access_table_data.inc" "$EXO_DEST/"
|
||||||
|
cp -v "$EXO_SRC/secmon_define_rtc_pmc_access_table.inc" "$EXO_DEST/"
|
||||||
|
cp -v "$EXO_SRC/secmon_smc_register_access.cpp" "$EXO_DEST/"
|
||||||
|
cp -v "$EXO_SRC/secmon_smc_handler.cpp" "$EXO_DEST/"
|
||||||
|
cp -v "$EXO_SRC/secmon_memory_layout.hpp" "$LIBEXO_DEST/"
|
||||||
|
echo
|
||||||
|
fi
|
||||||
|
|
||||||
cp -v "$EXO_SRC/secmon_emc_access_table_data.inc" "$EXO_DEST/"
|
|
||||||
cp -v "$EXO_SRC/secmon_define_emc_access_table.inc" "$EXO_DEST/"
|
|
||||||
cp -v "$EXO_SRC/secmon_rtc_pmc_access_table_data.inc" "$EXO_DEST/"
|
|
||||||
cp -v "$EXO_SRC/secmon_define_rtc_pmc_access_table.inc" "$EXO_DEST/"
|
|
||||||
cp -v "$EXO_SRC/secmon_smc_register_access.cpp" "$EXO_DEST/"
|
|
||||||
cp -v "$EXO_SRC/secmon_smc_handler.cpp" "$EXO_DEST/"
|
|
||||||
cp -v "$EXO_SRC/secmon_memory_layout.hpp" "$LIBEXO_DEST/"
|
|
||||||
echo
|
echo
|
||||||
|
|
||||||
echo "CORES: $CORES"
|
|
||||||
echo
|
|
||||||
|
|
||||||
echo "*** Compiling loader ***"
|
echo "*** Compiling loader ***"
|
||||||
cd build/stratosphere/loader || exit 1
|
cd build/stratosphere/loader || exit 1
|
||||||
make -j$CORES
|
make -j$CORES "$LDR_MAKE"
|
||||||
hactool -t kip1 out/nintendo_nx_arm64_armv8a/release/loader.kip --uncompress=hoc.kip
|
hactool -t kip1 "out/nintendo_nx_arm64_armv8a/$LDR_BUILD_PATH/loader.kip" --uncompress=hoc.kip
|
||||||
cd ../../../ # exit
|
cd ../../../ # exit
|
||||||
cp -v build/stratosphere/loader/hoc.kip dist/atmosphere/kips/hoc.kip
|
cp -v build/stratosphere/loader/hoc.kip dist/atmosphere/kips/hoc.kip
|
||||||
|
|
||||||
echo
|
if [ "$NO_EXO" -eq 0 ]; then
|
||||||
echo "*** Compiling exosphere ***"
|
echo
|
||||||
cd build/exosphere
|
echo "*** Compiling exosphere ***"
|
||||||
make -j$CORES
|
cd build/exosphere
|
||||||
cd ../../
|
make -j$CORES
|
||||||
cp -v build/exosphere/out/nintendo_nx_arm64_armv8a/release/exosphere.bin dist/atmosphere/exosphere.bin
|
cd ../../
|
||||||
|
cp -v build/exosphere/out/nintendo_nx_arm64_armv8a/release/exosphere.bin dist/atmosphere/exosphere.bin
|
||||||
|
fi
|
||||||
|
|
||||||
cd Source/hoc-clk/
|
cd Source/hoc-clk/
|
||||||
./build.sh
|
./build.sh
|
||||||
@@ -53,3 +93,40 @@ echo "*** Compiling horizon-oc-monitor ***"
|
|||||||
cd Source/Horizon-OC-Monitor/
|
cd Source/Horizon-OC-Monitor/
|
||||||
make -j$CORES
|
make -j$CORES
|
||||||
cp -v Horizon-OC-Monitor.ovl ../../dist/switch/.overlays/Horizon-OC-Monitor.ovl
|
cp -v Horizon-OC-Monitor.ovl ../../dist/switch/.overlays/Horizon-OC-Monitor.ovl
|
||||||
|
|
||||||
|
if [ "$EXT" -eq 1 ]; then
|
||||||
|
cd ../
|
||||||
|
echo
|
||||||
|
echo "*** Extensions enabled ***"
|
||||||
|
|
||||||
|
REPO_DIR="hekate"
|
||||||
|
REPO_URL="https://github.com/Horizon-OC/hekate.git"
|
||||||
|
|
||||||
|
if [ ! -d "$REPO_DIR" ]; then
|
||||||
|
echo
|
||||||
|
echo "*** Cloning custom Hekate ***"
|
||||||
|
git clone "$REPO_URL" "$REPO_DIR"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd hekate/
|
||||||
|
echo
|
||||||
|
echo "*** Compiling custom Hekate ***"
|
||||||
|
make -j$CORES
|
||||||
|
echo
|
||||||
|
|
||||||
|
mkdir -p "$DIST_DIR/bootloader/sys/"
|
||||||
|
cp -v output/nyx.bin ../../dist/bootloader/sys/nyx.bin
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "*** Packaging dist.zip ***"
|
||||||
|
|
||||||
|
cd "$DIST_DIR" || exit 1
|
||||||
|
|
||||||
|
rm -f dist.zip
|
||||||
|
|
||||||
|
zip -r dist.zip . >/dev/null
|
||||||
|
|
||||||
|
echo "*** dist.zip created ***"
|
||||||
|
|
||||||
|
cd "$ROOT_DIR" || exit 1
|
||||||
|
|||||||
@@ -1,34 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
CORES="$(nproc --all)"
|
|
||||||
|
|
||||||
SRC="Source/Atmosphere/stratosphere/loader/"
|
|
||||||
DEST="build/stratosphere/loader/"
|
|
||||||
mkdir -p "dist/atmosphere/kips/"
|
|
||||||
mkdir -p "$DEST"
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "*** Patching loader ***"
|
|
||||||
cp -vr "$SRC"/. "$DEST"/
|
|
||||||
echo
|
|
||||||
|
|
||||||
echo "CORES: $CORES"
|
|
||||||
echo
|
|
||||||
|
|
||||||
echo "*** Compiling loader ***"
|
|
||||||
cd build/stratosphere/loader || exit 1
|
|
||||||
make -j$CORES
|
|
||||||
hactool -t kip1 out/nintendo_nx_arm64_armv8a/release/loader.kip --uncompress=hoc.kip
|
|
||||||
cd ../../../ # exit
|
|
||||||
cp -v build/stratosphere/loader/hoc.kip dist/atmosphere/kips/hoc.kip
|
|
||||||
|
|
||||||
cd Source/hoc-clk/
|
|
||||||
./build.sh
|
|
||||||
cp -r dist/ ../../
|
|
||||||
|
|
||||||
cd ../../
|
|
||||||
|
|
||||||
echo "*** Compiling horizon-oc-monitor ***"
|
|
||||||
cd Source/Horizon-OC-Monitor/
|
|
||||||
make -j$CORES
|
|
||||||
cp -v Horizon-OC-Monitor.ovl ../../dist/switch/.overlays/Horizon-OC-Monitor.ovl
|
|
||||||
Reference in New Issue
Block a user