55 lines
1.7 KiB
Bash
Executable File
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
|