mirror of https://github.com/OpenIPC/firmware.git
Determine toolchain archive name based on profile
parent
7bfb267777
commit
f1ae984234
|
@ -19,23 +19,24 @@ on:
|
|||
|
||||
jobs:
|
||||
toolchain:
|
||||
name: Build toolchain
|
||||
name: Toolchain
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
env:
|
||||
FAMILY: hi3516ev200
|
||||
|
||||
outputs:
|
||||
sdk-file: ${{ steps.build-sdk.outputs.sdk-file }}
|
||||
|
||||
steps:
|
||||
|
||||
- name: Checkout
|
||||
id: checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0 # OR "2" -> To retrieve the preceding commit.
|
||||
|
||||
- name: Determine toolchain name
|
||||
run: |
|
||||
TOOLNAME=$(make BOARD=unknown_unknown_${FAMILY}_openipc toolname)
|
||||
echo "TOOLNAME=$TOOLNAME" >> $GITHUB_ENV
|
||||
|
||||
- name: Install build dependencies
|
||||
run: |
|
||||
make install-deps
|
||||
|
@ -53,7 +54,6 @@ jobs:
|
|||
run: |
|
||||
sudo apt clean
|
||||
docker rmi $(docker image ls -aq)
|
||||
df -h
|
||||
|
||||
- name: Build Buildroot SDK
|
||||
id: build-sdk
|
||||
|
@ -78,13 +78,10 @@ jobs:
|
|||
make BOARD=unknown_unknown_${FAMILY}_openipc br-sdk
|
||||
SDK_PATH=$(find output/images -name "*_sdk-buildroot.tar.gz")
|
||||
echo "SDK_PATH=$SDK_PATH" >> $GITHUB_ENV
|
||||
SDK_FILE=$(basename $SDK_PATH)
|
||||
echo "SDK_FILE=$SDK_FILE" >> $GITHUB_ENV
|
||||
echo "::set-output name=sdk-file::$SDK_FILE"
|
||||
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ${{ env.SDK_FILE }}
|
||||
name: ${{ env.TOOLNAME }}
|
||||
path: ${{ env.SDK_PATH }}
|
||||
retention-days: 1
|
||||
|
||||
|
@ -106,12 +103,12 @@ jobs:
|
|||
with:
|
||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: ${{ env.SDK_PATH }}
|
||||
asset_name: ${{ env.SDK_FILE }}
|
||||
asset_name: ${{ env.TOOLNAME }}
|
||||
tag: ${{ env.TAG_NAME }}
|
||||
overwrite: true
|
||||
|
||||
buildroot:
|
||||
name: Build firmware
|
||||
name: Firmware
|
||||
needs: toolchain
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
|
@ -138,7 +135,6 @@ jobs:
|
|||
steps:
|
||||
|
||||
- name: Checkout
|
||||
id: checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0 # OR "2" -> To retrieve the preceding commit.
|
||||
|
@ -160,7 +156,6 @@ jobs:
|
|||
run: |
|
||||
sudo apt clean
|
||||
docker rmi $(docker image ls -aq)
|
||||
df -h
|
||||
|
||||
- name: Prepare buildroot
|
||||
id: prepare
|
||||
|
@ -186,7 +181,7 @@ jobs:
|
|||
|
||||
- uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: ${{ needs.toolchain.outputs.sdk-file }}
|
||||
name: ${{ env.TOOLNAME }}
|
||||
|
||||
- name: Build firmware
|
||||
run: |
|
||||
|
@ -205,7 +200,7 @@ jobs:
|
|||
|
||||
CONF_PATH=$(find . -name "${BOARD}_defconfig")
|
||||
|
||||
echo Using ${{ needs.toolchain.outputs.sdk-file }}
|
||||
echo Using $TOOLNAME
|
||||
echo "BR2_TOOLCHAIN_EXTERNAL=y" >> $CONF_PATH
|
||||
echo "BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y" >> $CONF_PATH
|
||||
echo "BR2_TOOLCHAIN_EXTERNAL_PREINSTALLED=y" >> $CONF_PATH
|
||||
|
@ -217,7 +212,7 @@ jobs:
|
|||
LIBC="musl"
|
||||
echo "BR2_ROOTFS_POST_BUILD_SCRIPT=\"\$(TOPDIR)/../scripts/executing_commands_for_${LIBC}.sh\"" >> $CONF_PATH
|
||||
mkdir /tmp/extsdk
|
||||
tar xvf ${{ needs.toolchain.outputs.sdk-file }} --strip-components=1 -C /tmp/extsdk >/dev/null
|
||||
tar xvf $TOOLNAME --strip-components=1 -C /tmp/extsdk >/dev/null
|
||||
|
||||
HAS_NAND=$(make BOARD=${BOARD} has-nand)
|
||||
echo "HAS_NAND=$HAS_NAND" >> $GITHUB_ENV
|
||||
|
|
6
Makefile
6
Makefile
|
@ -56,7 +56,8 @@ $(BR_DIR): $(ROOT_DIR)/buildroot-$(BR_VER).tar.gz
|
|||
|
||||
|
||||
install-deps:
|
||||
DEBIAN_FRONTEND=noninteractive sudo apt-get update && sudo apt-get -y install build-essential make libncurses-dev wget
|
||||
DEBIAN_FRONTEND=noninteractive sudo apt-get update && \
|
||||
sudo apt-get -y install build-essential make libncurses-dev wget cpio rsync bc
|
||||
|
||||
|
||||
%_info:
|
||||
|
@ -70,6 +71,9 @@ install-deps:
|
|||
has-nand:
|
||||
@sed -rn "s/^BR2_TARGET_ROOTFS_UBI=(y)/\1/p" $(FULL_PATH)
|
||||
|
||||
toolname:
|
||||
@$(SCRIPTS_DIR)/show_toolchains.sh board $(FULL_PATH)
|
||||
|
||||
list-configs:
|
||||
@echo
|
||||
@ls -1 $(BR_EXT_DIR)/configs
|
||||
|
|
|
@ -2,41 +2,60 @@
|
|||
|
||||
shopt -s nullglob
|
||||
|
||||
if [ $# -eq 0 ]; then
|
||||
$0 1 | sort
|
||||
#$0 1 | sort | uniq
|
||||
else
|
||||
for D in br-ext-chip-*; do
|
||||
for CF in $D/configs/*; do
|
||||
BR2_VER=$(grep BR2_DEFAULT_KERNEL_VERSION $CF)
|
||||
if [ ! -z $BR2_VER ]; then
|
||||
VENDOR=$(echo $CF | cut -d - -f 4 | cut -d / -f 1 | sed -r 's/\<./\U&/g')
|
||||
VER=$(echo $BR2_VER | cut -d \" -f 2 | awk -F . '{printf "%s_%s", $1, $2}')
|
||||
GCC_VER=$(sed -rn "s/^BR2_GCC_VERSION_([0-9]*)_X=y/\1/p" $CF)
|
||||
ARCH=$(sed -rn "s/^BR2_(arm[a-z0-9_]+)=y/\1/p" $CF)
|
||||
if [ -z "$ARCH" ]; then
|
||||
ARCH=$(sed -rn "s/^BR2_(cortex_[a-z0-9_]+)=y/\1/p" $CF)
|
||||
fi
|
||||
if [ -z "$ARCH" ]; then
|
||||
ARCH=$(sed -rn "s/^BR2_(arm)=y/\1/p" $CF)
|
||||
else
|
||||
# Here we have something from ARM modern family
|
||||
HF=$(sed -rn "s/^BR2_ARM_EABI(HF)=y/\1/p" $CF | tr '[:upper:]' '[:lower:]')
|
||||
if [ ! -z "$HF" ]; then
|
||||
ARCH="${ARCH}_${HF}"
|
||||
fi
|
||||
fi
|
||||
toolchain_by_config() {
|
||||
CF=$1
|
||||
FMT=$2
|
||||
|
||||
if [ -z "$ARCH" ]; then
|
||||
ARCH=$(sed -rn "s/^BR2_(mips_[a-z]*)=y/\1/p" $CF)
|
||||
fi
|
||||
|
||||
LIBC=$(sed -rn "s/^BR2_TOOLCHAIN_BUILDROOT_LIBC=\"(.*)\"/\1/p" $CF)
|
||||
|
||||
SOC=$(echo $CF | cut -d _ -f 3)
|
||||
# $GCC_VER
|
||||
echo $ARCH $LIBC $VER $VENDOR $CF
|
||||
BR2_VER=$(grep BR2_DEFAULT_KERNEL_VERSION $CF)
|
||||
if [ ! -z $BR2_VER ]; then
|
||||
VENDOR=$(echo $CF | cut -d - -f 4 | cut -d / -f 1 | sed -r 's/\<./\U&/g')
|
||||
VER=$(echo $BR2_VER | cut -d \" -f 2 | awk -F . '{printf "%s_%s", $1, $2}')
|
||||
GCC_VER=$(sed -rn "s/^BR2_GCC_VERSION_([0-9]*)_X=y/\1/p" $CF)
|
||||
ARCH=$(sed -rn "s/^BR2_(arm[a-z0-9_]+)=y/\1/p" $CF)
|
||||
if [ -z "$ARCH" ]; then
|
||||
ARCH=$(sed -rn "s/^BR2_(cortex_[a-z0-9_]+)=y/\1/p" $CF)
|
||||
fi
|
||||
if [ -z "$ARCH" ]; then
|
||||
ARCH=$(sed -rn "s/^BR2_(arm)=y/\1/p" $CF)
|
||||
else
|
||||
# Here we have something from ARM modern family
|
||||
HF=$(sed -rn "s/^BR2_ARM_EABI(HF)=y/\1/p" $CF | tr '[:upper:]' '[:lower:]')
|
||||
if [ ! -z "$HF" ]; then
|
||||
ARCH="${ARCH}_${HF}"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "$ARCH" ]; then
|
||||
ARCH=$(sed -rn "s/^BR2_(mips_[a-z]*)=y/\1/p" $CF)
|
||||
fi
|
||||
|
||||
LIBC=$(sed -rn "s/^BR2_TOOLCHAIN_BUILDROOT_LIBC=\"(.*)\"/\1/p" $CF)
|
||||
|
||||
SOC=$(echo $CF | cut -d _ -f 3)
|
||||
case $FMT in
|
||||
"list")
|
||||
echo $ARCH $GCC_VER $LIBC $VER $VENDOR $CF
|
||||
;;
|
||||
"uniq")
|
||||
echo $ARCH $GCC_VER $LIBC $VER
|
||||
;;
|
||||
"board")
|
||||
echo ${ARCH}-gcc${GCC_VER}-${LIBC}-${VER}
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
}
|
||||
|
||||
if [ $# -eq 0 ]; then
|
||||
$0 list | sort
|
||||
else
|
||||
if [ "$1" == "board" ]; then
|
||||
toolchain_by_config $2 $1
|
||||
else
|
||||
for D in br-ext-chip-*; do
|
||||
for CF in $D/configs/*; do
|
||||
toolchain_by_config $CF $1
|
||||
done
|
||||
done
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
|
Loading…
Reference in New Issue