mirror of
https://github.com/openwrt-xiaomi/builder.git
synced 2026-02-10 11:17:06 +05:00
Compare commits
5 Commits
979043f064
...
c5fe3ea00b
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c5fe3ea00b | ||
|
|
6cd0f64b8d | ||
|
|
9cc255858e | ||
|
|
a775b82e5b | ||
|
|
f9ab8e3841 |
100
.github/workflows/build.yml
vendored
100
.github/workflows/build.yml
vendored
@@ -163,9 +163,11 @@ jobs:
|
|||||||
sudo apt-get -qq update
|
sudo apt-get -qq update
|
||||||
#sudo apt-get -qq update && sudo apt-get -qq upgrade
|
#sudo apt-get -qq update && sudo apt-get -qq upgrade
|
||||||
sudo apt-get -qq install $(cat $DEPENDENCIES)
|
sudo apt-get -qq install $(cat $DEPENDENCIES)
|
||||||
|
sudo apt-get -qq install libc6-dev pkg-config
|
||||||
sudo apt-get -qq autoremove --purge
|
sudo apt-get -qq autoremove --purge
|
||||||
sudo apt-get -qq clean
|
sudo apt-get -qq clean
|
||||||
sudo timedatectl set-timezone "$TZ"
|
sudo timedatectl set-timezone "$TZ"
|
||||||
|
ls -l /usr/include/bits/
|
||||||
|
|
||||||
- name: Maximize build disk space
|
- name: Maximize build disk space
|
||||||
uses: easimon/maximize-build-space@master
|
uses: easimon/maximize-build-space@master
|
||||||
@@ -222,6 +224,7 @@ jobs:
|
|||||||
exit 41
|
exit 41
|
||||||
fi
|
fi
|
||||||
echo "status=success" >> $GITHUB_OUTPUT
|
echo "status=success" >> $GITHUB_OUTPUT
|
||||||
|
echo "FW_VER=$FW_VER" >> $GITHUB_ENV
|
||||||
echo "G_DEVICE_NAME=$G_DEVICE_NAME" >> $GITHUB_ENV
|
echo "G_DEVICE_NAME=$G_DEVICE_NAME" >> $GITHUB_ENV
|
||||||
echo "G_BOARD_NAME=$G_BOARD_NAME" >> $GITHUB_ENV
|
echo "G_BOARD_NAME=$G_BOARD_NAME" >> $GITHUB_ENV
|
||||||
echo "G_SUBTARGET_NAME=$G_SUBTARGET_NAME" >> $GITHUB_ENV
|
echo "G_SUBTARGET_NAME=$G_SUBTARGET_NAME" >> $GITHUB_ENV
|
||||||
@@ -233,16 +236,101 @@ jobs:
|
|||||||
cat $BUILD_ROOT/.config
|
cat $BUILD_ROOT/.config
|
||||||
echo "========================"
|
echo "========================"
|
||||||
|
|
||||||
- name: Build the firmware image
|
- name: Download tools and toolchain
|
||||||
id: compile
|
id: tools_download
|
||||||
if: steps.configure.outputs.status == 'success'
|
if: steps.configure.outputs.status == 'success'
|
||||||
env:
|
|
||||||
TARGET: ${{ matrix.target }}
|
|
||||||
FW_VER: ${{ needs.check.outputs.fw_ver }}
|
|
||||||
run: |
|
run: |
|
||||||
cd $BUILD_ROOT
|
cd $BUILD_ROOT
|
||||||
MAKE_JOBS=$(($(nproc)+1))
|
G_TARGET_ARCH=$( grep -so '^CONFIG_TARGET_ARCH_PACKAGES=' .config | cut -d'"' -f2 )
|
||||||
|
echo "G_TARGET_ARCH=$G_TARGET_ARCH" >> $GITHUB_ENV
|
||||||
|
echo "OpenWrt version: $FW_VER"
|
||||||
|
SDK_URL_BASE="https://downloads.openwrt.org/releases/${FW_VER}/targets/${G_BOARD_NAME}/${G_SUBTARGET_NAME}"
|
||||||
|
echo "Searching SDK at $SDK_URL_BASE"
|
||||||
|
SDK_TARBALL=$( curl -s "$SDK_URL_BASE/" | grep -oE 'openwrt-sdk-[^"]+Linux-x86_64\.tar\.(xz|zst)' | head -n1 )
|
||||||
|
if [ -z "$SDK_TARBALL" ]; then
|
||||||
|
echo "ERROR: SDK not found for ${G_BOARD_NAME}/${G_SUBTARGET_NAME}"
|
||||||
|
exit 81
|
||||||
|
fi
|
||||||
|
echo "Found SDK: $SDK_TARBALL"
|
||||||
|
#curl -L --fail --retry 5 --retry-delay 5 --progress-bar -o "$SDK_TARBALL" "$SDK_URL_BASE/$SDK_TARBALL"
|
||||||
|
wget --progress=dot:mega "$SDK_URL_BASE/$SDK_TARBALL"
|
||||||
|
if [[ "$SDK_TARBALL" == *.tar.xz ]]; then
|
||||||
|
tar -xf "$SDK_TARBALL"
|
||||||
|
elif [[ "$SDK_TARBALL" == *.tar.zst ]]; then
|
||||||
|
tar -I zstd -xf "$SDK_TARBALL"
|
||||||
|
else
|
||||||
|
echo "Unknown archive format: $SDK_TARBALL"
|
||||||
|
exit 82
|
||||||
|
fi
|
||||||
|
SDK_DIR=$(tar -tf "$SDK_TARBALL" | head -n1 | cut -d/ -f1)
|
||||||
|
echo "Using SDK dir: $SDK_DIR"
|
||||||
|
rm -rf staging_dir
|
||||||
|
mv "$SDK_DIR/staging_dir" .
|
||||||
|
echo "========= staging_dir =========="
|
||||||
|
ls -l staging_dir
|
||||||
|
echo "================================"
|
||||||
|
#cp -a "$SDK_DIR"/toolchain/* toolchain/ 2>/dev/null || true
|
||||||
|
TOOLS_DIR=staging_dir/host
|
||||||
|
touch $TOOLS_DIR/.prepared
|
||||||
|
TOOLS_STAMP_DIR=$TOOLS_DIR/stamp
|
||||||
|
TOOLS_PKGS=$(
|
||||||
|
find tools/ -maxdepth 1 -mindepth 1 -type d | while read -r d; do
|
||||||
|
mk="$d/Makefile"
|
||||||
|
[ -f "$mk" ] || continue
|
||||||
|
awk -F':=' '
|
||||||
|
/^[[:space:]]*PKG_NAME[[:space:]]*:=/ {
|
||||||
|
v=$2
|
||||||
|
gsub(/\r/, "", v)
|
||||||
|
gsub(/^[[:space:]]+/, "", v)
|
||||||
|
gsub(/[[:space:]]+$/, "", v)
|
||||||
|
if (v != "") print v
|
||||||
|
}
|
||||||
|
' "$mk"
|
||||||
|
done | sort -u
|
||||||
|
)
|
||||||
|
mkdir -p "$TOOLS_STAMP_DIR"
|
||||||
|
echo "Found host tools packages: $TOOLS_PKGS"
|
||||||
|
for pkg in $TOOLS_PKGS; do
|
||||||
|
touch "$TOOLS_STAMP_DIR/.$pkg"_installed
|
||||||
|
done
|
||||||
|
TOOLCHAIN_DIR=$( find staging_dir -maxdepth 1 -type d -name "toolchain-*" )
|
||||||
|
echo "Found toolchain directory: $TOOLCHAIN_DIR"
|
||||||
|
#touch $TOOLCHAIN_DIR/.prepared
|
||||||
|
mkdir -p "$TOOLCHAIN_DIR/stamp"
|
||||||
|
touch $TOOLCHAIN_DIR/stamp/.binutils_installed
|
||||||
|
#touch $TOOLCHAIN_DIR/stamp/.fortify-headers_installed
|
||||||
|
touch $TOOLCHAIN_DIR/stamp/.gcc_final_installed
|
||||||
|
touch $TOOLCHAIN_DIR/stamp/.gcc_initial_installed
|
||||||
|
touch $TOOLCHAIN_DIR/stamp/.gdb_installed
|
||||||
|
#touch $TOOLCHAIN_DIR/stamp/.linux_installed
|
||||||
|
touch $TOOLCHAIN_DIR/stamp/.musl_installed
|
||||||
|
touch $TOOLCHAIN_DIR/stamp/.toolchain_compile
|
||||||
|
echo "Checking cross-compiler..."
|
||||||
|
find staging_dir -name '*gcc' | head -n 10
|
||||||
|
echo "status=success" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: Build tools and toolchain
|
||||||
|
id: tools
|
||||||
|
if: steps.configure.outputs.status == 'success'
|
||||||
|
run: |
|
||||||
|
cd $BUILD_ROOT
|
||||||
|
MAKE_JOBS=$(nproc)
|
||||||
echo "$MAKE_JOBS thread compile"
|
echo "$MAKE_JOBS thread compile"
|
||||||
|
export CCACHE=1
|
||||||
|
make tools/install -j$MAKE_JOBS
|
||||||
|
make toolchain/install -j$MAKE_JOBS
|
||||||
|
echo "status=success" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: Build the firmware image
|
||||||
|
id: compile
|
||||||
|
if: steps.tools.outputs.status == 'success'
|
||||||
|
env:
|
||||||
|
TARGET: ${{ matrix.target }}
|
||||||
|
run: |
|
||||||
|
cd $BUILD_ROOT
|
||||||
|
MAKE_JOBS=$(nproc)
|
||||||
|
echo "$MAKE_JOBS thread compile"
|
||||||
|
export CCACHE=1
|
||||||
if [ "$FAKE_BUILD" != "true" -a "$TEST_BUILD" = "true" -a "$PACKAGE_DIR" != "" ]; then
|
if [ "$FAKE_BUILD" != "true" -a "$TEST_BUILD" = "true" -a "$PACKAGE_DIR" != "" ]; then
|
||||||
make $PACKAGE_DIR/compile V=sc BUILD_LOG=1
|
make $PACKAGE_DIR/compile V=sc BUILD_LOG=1
|
||||||
exit 99
|
exit 99
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
build-essential clang flex bison g++ gawk gcc-multilib g++-multilib gettext git libncurses5-dev libssl-dev python3-setuptools rsync swig unzip zlib1g-dev file wget
|
build-essential libc6-dev clang flex bison g++ gawk gcc-multilib g++-multilib gettext git libncurses5-dev libssl-dev python3-setuptools rsync swig unzip zlib1g-dev file wget
|
||||||
2
xmake.sh
2
xmake.sh
@@ -322,6 +322,8 @@ function build_target {
|
|||||||
make_jobs=$( grep processor /proc/cpuinfo | tail -n 1 | awk '{print $3}' )
|
make_jobs=$( grep processor /proc/cpuinfo | tail -n 1 | awk '{print $3}' )
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
cp -af $XDIR/.config $XDIR/tmp/.config
|
||||||
|
|
||||||
#make tools/install -j$make_jobs
|
#make tools/install -j$make_jobs
|
||||||
#make toolchain/install -j$make_jobs
|
#make toolchain/install -j$make_jobs
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user