# === Configuration === PORT ?= /dev/ttyUSB0 BAUD ?= 460800 TARGET ?= esp32 PROJECT := $(shell basename $(CURDIR)) BUILD_DIR := build RELEASE_DIR := release # === Tool Selection === ifeq ($(PODMAN),1) IDF := podman run --rm -v $(PWD):/project:Z -w /project docker.io/espressif/idf:latest idf.py ESPTOOL := podman run --rm -v $(PWD):/project:Z -w /project docker.io/espressif/idf:latest esptool.py else IDF := idf.py ESPTOOL := esptool.py endif ifeq ($(origin IDF_PATH), undefined) ifeq ($(origin PODMAN), undefined) $(shell printf "\033[1;31mIDF_PATH is not set. Did you forget to source the ESP-IDF environment?\033[0m\n" 1>&2) $(shell printf '\033[1;31mSource the ESP-IDF environment by: "$$ source ~/esp/esp-idf/export.sh"\033[0m\n' 1>&2) endif endif help: @echo -e "Makefile for IDFHack\n" @echo -e "Use 'make PODMAN=1' to run in podman.\n" @echo "Available targets:" @echo " build - Build the binary" @echo " menuconfig - Start the idf configuration tui" @echo " release - Assemble release artifacts" @echo " clean - Clean the tree" @echo " nuke - Really clean the tree" @echo " help - Show this help message" @echo -e "" menuconfig: $(IDF) menuconfig build: $(IDF) build flash: $(IDF) flash qemu: $(IDF) qemu clean: $(IDF) clean rm -rf release issues: bash ./scripts/find_issues.sh ./main nuke: clean rm -rf build rm -rf .cache .PHONY: build clean nuke help