15.6_demo/build_simple.sh

55 lines
1.7 KiB
Bash
Executable File

#!/bin/bash
set -e
TOOLCHAIN=/home/hyx/work/15.6/riscv64-linux-glibc-x86_64-V2.10.1
CC=${TOOLCHAIN}/bin/riscv64-unknown-linux-gnu-gcc
AR=${TOOLCHAIN}/bin/riscv64-unknown-linux-gnu-ar
echo "===================================="
echo "D213ECV RISC-V Demo - Simple Build"
echo "===================================="
# 编译 LVGL 库(简化版,只编译核心文件)
echo "[1/3] Building LVGL core..."
LVGL_SRCS=$(find lvgl/src -name "*.c" ! -path "*/examples/*" ! -path "*/demos/*" ! -path "*/tests/*")
LVGL_OBJS=""
mkdir -p build/lvgl
for src in $LVGL_SRCS; do
obj="build/lvgl/$(basename ${src%.c}.o)"
echo " Compiling $(basename $src)..."
$CC -c $src -o $obj -Ilvgl -I. -O2 -Wall 2>/dev/null || echo " Warning: $(basename $src) failed"
if [ -f "$obj" ]; then
LVGL_OBJS="$LVGL_OBJS $obj"
fi
done
echo " Creating liblvgl.a..."
$AR rcs build/liblvgl.a $LVGL_OBJS
# 编译应用程序
echo "[2/3] Building application..."
mkdir -p build/app
$CC -c src/main.c -o build/app/main.o -Iinclude -Ilvgl -I. -O2 -Wall
$CC -c src/fbdev.c -o build/app/fbdev.o -Iinclude -O2 -Wall
$CC -c src/lv_port_disp.c -o build/app/lv_port_disp.o -Iinclude -Ilvgl -I. -O2 -Wall
$CC -c src/lv_port_indev.c -o build/app/lv_port_indev.o -Iinclude -Ilvgl -I. -O2 -Wall
# 链接
echo "[3/3] Linking..."
$CC build/app/*.o build/liblvgl.a -o build/d213_demo -lpthread -lm -ldl
if [ -f build/d213_demo ]; then
echo "===================================="
echo "✓ Build successful!"
echo "Executable: build/d213_demo"
file build/d213_demo
ls -lh build/d213_demo
echo "===================================="
else
echo "✗ Build failed!"
exit 1
fi