11
22target=" $1 "
33buildtype=" $2 "
4-
4+ subtarget= " $3 "
55
66if [-z " $target " -o -z " $buildtype " ]; then
7- echo " Usage:$0 <esp32 or unix or macos> <dev or prod>"
7+ echo " Usage:$0 target buildtype [optional subtarget]"
8+ echo " Usage:$0 <esp32 or unix or macos> <dev or prod> [<waveshare-esp32-s3-touch-lcd-2 or fri3d-2024>]"
89echo " Example:$0 unix dev"
9- echo " Example:$0 esp32 prod"
10+ echo " Example:$0 esp32 prod # defaults to waveshare-esp32-s3-touch-lcd-2"
11+ echo " Example:$0 esp32 prod waveshare-esp32-s3-touch-lcd-2"
12+ echo " Example:$0 esp32 prod fri3d-2024"
1013echo
1114echo " A 'dev' build is without any preinstalled files or builtin/ filsystem, so it will just start with a black screen and you'll have to do: ./scripts/install.sh to install the User Interface."
1215echo " A 'prod' build has the files from manifest*.py frozen in. Don't forget to run: ./scripts/freezefs_mount_builtin.sh !"
@@ -17,13 +20,16 @@ if [ "$buildtype" == "prod" ]; then
1720./scripts/freezefs_mount_builtin.sh
1821fi
1922
20- pushd ~ /projects/MicroPythonOS/lvgl_micropython
21-
2223manifest=" "
2324
2425if [" $target " == " esp32" ]; then
2526if [" $buildtype " == " prod" ]; then
26- manifest=" FROZEN_MANIFEST=/home/user/projects/MicroPythonOS/MicroPythonOS/manifest.py"
27+ if [" $subtarget " == " fri3d-2024" ]; then
28+ cp internal_filesystem/boot_fri3d-2024.py /tmp/boot.py# dirty hack to have it included as boot.py by the manifest
29+ manifest=" FROZEN_MANIFEST=/home/user/projects/MicroPythonOS/MicroPythonOS/manifest_fri3d-2024.py"
30+ else
31+ manifest=" FROZEN_MANIFEST=/home/user/projects/MicroPythonOS/MicroPythonOS/manifest.py"
32+ fi
2733else
2834echo " Note that you can also prevent the builtin filesystem from being mounted by umounting it and creating a builtin/ folder."
2935fi
@@ -40,7 +46,9 @@ if [ "$target" == "esp32" ]; then
4046# CONFIG_FREERTOS_USE_TRACE_FACILITY=y
4147# CONFIG_FREERTOS_VTASKLIST_INCLUDE_COREID=y
4248# CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
49+ pushd ~ /projects/MicroPythonOS/lvgl_micropython
4350python3 make.py --ota --partition-size=4194304 --flash-size=16 esp32 BOARD=ESP32_GENERIC_S3 BOARD_VARIANT=SPIRAM_OCT DISPLAY=st7789 INDEV=cst816s USER_C_MODULE=/home/user/projects/MicroPythonOS/micropython-camera-API/src/micropython.cmake USER_C_MODULE=/home/user/projects/MicroPythonOS/secp256k1-embedded-ecdh/micropython.cmake USER_C_MODULE=/home/user/projects/MicroPythonOS/MicroPythonOS/c_mpos/micropython.cmake CONFIG_FREERTOS_USE_TRACE_FACILITY=y CONFIG_FREERTOS_VTASKLIST_INCLUDE_COREID=y CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y" $manifest "
51+ popd
4452elif [" $target " == " unix" -o " $target " == " macos" ]; then
4553if [" $buildtype " == " prod" ]; then
4654manifest=" FROZEN_MANIFEST=/home/user/projects/MicroPythonOS/MicroPythonOS/manifest_unix.py"
@@ -49,9 +57,10 @@ elif [ "$target" == "unix" -o "$target" == "macos" ]; then
4957# python3 make.py "$target" DISPLAY=sdl_display INDEV=sdl_pointer INDEV=sdl_keyboard "$manifest"
5058# LV_CFLAGS are passed to USER_C_MODULES
5159# STRIP= makes it so that debug symbols are kept
60+ pushd ~ /projects/MicroPythonOS/lvgl_micropython
5261python3 make.py" $target " LV_CFLAGS=" -g -O0 -ggdb -ljpeg" STRIP= DISPLAY=sdl_display INDEV=sdl_pointer INDEV=sdl_keyboard" $manifest "
62+ popd
5363else
5464echo " invalid target$target "
5565fi
5666
57- popd