36 lines
903 B
Makefile
36 lines
903 B
Makefile
.PHONY: all auto native docker clean
|
|
|
|
# Configuration
|
|
SRC = ch1115.chip.c
|
|
OUT = ch1115.chip.wasm
|
|
|
|
# Check if wokwi-cli exists in PATH
|
|
WOKWI_CLI := $(shell command -v wokwi-cli 2> /dev/null)
|
|
|
|
HOST_UID := $(shell id -u)
|
|
HOST_GID := $(shell id -g)
|
|
|
|
# Default target runs the auto-detection
|
|
all: auto
|
|
|
|
auto:
|
|
ifeq ($(WOKWI_CLI),)
|
|
@echo "wokwi-cli not found in PATH. Falling back to Docker build..."
|
|
$(MAKE) docker
|
|
else
|
|
@echo "Found wokwi-cli at $(WOKWI_CLI). Using native build..."
|
|
$(MAKE) native
|
|
endif
|
|
|
|
native:
|
|
wokwi-cli chip compile $(SRC) -o $(OUT)
|
|
|
|
docker:
|
|
docker run --rm -v $(CURDIR):/workspace -w /workspace ubuntu:latest \
|
|
bash -c "apt-get update && apt-get install -y --no-install-recommends curl ca-certificates && \
|
|
curl -L https://wokwi.com/ci/install.sh | sh && \
|
|
~/.wokwi/bin/wokwi-cli chip compile $(SRC) -o $(OUT) && \
|
|
chown $(HOST_UID):$(HOST_GID) $(OUT)"
|
|
|
|
clean:
|
|
rm -f $(OUT)
|