@@ -371,6 +371,101 @@ _s3-build:
371371 -DRTCLAW_BOARD=$(S3_BOARD ) build
372372 @echo " Output: $( BUILD_DIR) /esp32s3-$( S3_BOARD) /"
373373
374+ # --- ATK-ESP32-S3 unified targets ---
375+ # Prerequisite: source $$HOME/esp/esp-idf/export.sh
376+ #
377+ # All boards share platform/atk-esp32s3/ as the single ESP-IDF project.
378+ # Board-specific config lives in platform/atk-esp32s3/boards/<board>/.
379+ #
380+ # Boards:
381+ # qemu QEMU virtual devkit (4MB, OpenCores Ethernet)
382+ # default Real hardware (16MB, WiFi + PSRAM)
383+ #
384+ ATK_ESP_S3_DIR := platform/atk-esp32s3-lvgl
385+
386+ # Default aliases
387+ .PHONY : build-atk-esp32s3
388+ build-atk-esp32s3 : build-atk-esp32s3-default
389+
390+ # ---- All boards: build ----
391+ .PHONY : build-atk-esp32s3-default
392+ build-atk-esp32s3-default : ATK_S3_BOARD = default
393+ build-atk-esp32s3-default : _atk_s3-build
394+
395+ # Backwards-compatible alias
396+ .PHONY : atk-esp32s3
397+ atk-esp32s3 : build-atk-esp32s3-default
398+
399+ # ---- Hardware: flash + monitor ----
400+ # .PHONY: flash-atk-esp32s3
401+ # flash-atk-esp32s3: build-atk-esp32s3-default
402+ # cd $(ATK_ESP_S3_DIR) && idf.py -B $(BUILD_DIR)/atk-esp32s3-$(ATK_S3_BOARD)/idf flash
403+
404+ # .PHONY: monitor-atk-esp32s3
405+ # monitor-atk-esp32s3:
406+ # cd $(ATK_ESP_S3_DIR) && idf.py -B $(BUILD_DIR)/atk-esp32s3-$(ATK_S3_BOARD)/idf monitor
407+
408+ .PHONY : flash-atk-esp32s3
409+ flash-atk-esp32s3 : ATK_S3_BOARD = default
410+ flash-atk-esp32s3 : build-atk-esp32s3-default
411+ cd $(ATK_ESP_S3_DIR ) && idf.py -B $(BUILD_DIR ) /atk-esp32s3-$(ATK_S3_BOARD ) /idf flash
412+
413+ .PHONY : monitor-atk-esp32s3
414+ monitor-atk-esp32s3 : ATK_S3_BOARD = default
415+ monitor-atk-esp32s3 :
416+ cd $(ATK_ESP_S3_DIR ) && idf.py -B $(BUILD_DIR ) /atk-esp32s3-$(ATK_S3_BOARD ) /idf monitor
417+ # ---- Internal: shared build logic for all ATK-ESP32-S3 boards ----
418+ .PHONY : _atk_s3-build
419+ _atk_s3-build :
420+ @if [ ! -f $( BUILD_DIR) /atk-esp32s3-$( ATK_S3_BOARD) /idf/build.ninja ]; then \
421+ cd $(ATK_ESP_S3_DIR ) && idf.py \
422+ -B $(BUILD_DIR ) /atk-esp32s3-$(ATK_S3_BOARD ) /idf \
423+ -DRTCLAW_BOARD=$(ATK_S3_BOARD ) set-target esp32s3; \
424+ fi
425+ @CCJSON=$(BUILD_DIR ) /atk-esp32s3-$(ATK_S3_BOARD ) /idf/compile_commands.json; \
426+ DEFAULTS=$(ATK_ESP_S3_DIR ) /boards/$(ATK_S3_BOARD ) /sdkconfig.defaults; \
427+ KCONFIG=$(ATK_ESP_S3_DIR ) /components/rt_claw/Kconfig; \
428+ SDKCONFIG=$(BUILD_DIR ) /atk-esp32s3-$(ATK_S3_BOARD ) /idf/sdkconfig; \
429+ if [ ! -f " $$ CCJSON" ] || [ " $$ DEFAULTS" -nt " $$ CCJSON" ] \
430+ || [ " $$ KCONFIG" -nt " $$ CCJSON" ] \
431+ || { [ -f " $$ SDKCONFIG" ] && [ " $$ SDKCONFIG" -nt " $$ CCJSON" ]; }; then \
432+ cd $(ATK_ESP_S3_DIR ) && idf.py \
433+ -B $(BUILD_DIR ) /atk-esp32s3-$(ATK_S3_BOARD ) /idf \
434+ -DRTCLAW_BOARD=$(ATK_S3_BOARD ) reconfigure; \
435+ fi
436+
437+ python3 scripts/gen_atk_esp32s3_cross.py $(ATK_S3_BOARD)
438+
439+ @mkdir -p $(BUILD_DIR)
440+ @rm -rf $(BUILD_DIR)/esp32s3-$(ATK_S3_BOARD)
441+ @ln -sfn atk-esp32s3-$(ATK_S3_BOARD) $(BUILD_DIR)/esp32s3-$(ATK_S3_BOARD)
442+
443+ @NINJA=$(BUILD_DIR)/atk-esp32s3-$(ATK_S3_BOARD)/meson/build.ninja; \
444+ CROSS=$(BUILD_DIR)/atk-esp32s3-$(ATK_S3_BOARD)/cross.ini; \
445+ if [ ! -f "$$NINJA" ]; then \
446+ meson setup $(BUILD_DIR)/atk-esp32s3-$(ATK_S3_BOARD)/meson \
447+ --cross-file "$$CROSS"; \
448+ elif [ "$$CROSS" -nt "$$NINJA" ]; then \
449+ meson setup $(BUILD_DIR)/atk-esp32s3-$(ATK_S3_BOARD)/meson \
450+ --reconfigure --cross-file "$$CROSS"; \
451+ fi
452+
453+ meson compile -C $(BUILD_DIR)/atk-esp32s3-$(ATK_S3_BOARD)/meson
454+
455+ cd $(ATK_ESP_S3_DIR) && idf.py \
456+ -B $(BUILD_DIR)/atk-esp32s3-$(ATK_S3_BOARD)/idf \
457+ -DRTCLAW_BOARD=$(ATK_S3_BOARD) reconfigure && \
458+ idf.py \
459+ -B $(BUILD_DIR)/atk-esp32s3-$(ATK_S3_BOARD)/idf \
460+ -DRTCLAW_BOARD=$(ATK_S3_BOARD) build
461+ @echo "Output: $(BUILD_DIR)/atk-esp32s3-$(ATK_S3_BOARD)/"
462+ # use
463+ # make build-atk-esp32s3
464+ # make flash-atk-esp32s3
465+ # make monitor-atk-esp32s3
466+
467+
468+
374469# --- Linux native ---
375470MESON_BUILDDIR_LINUX := $(BUILD_DIR ) /linux
376471
0 commit comments