circuitpython/ports/m68kmac/Makefile
2025-06-28 14:29:21 +02:00

109 lines
2.8 KiB
Makefile

include ../../py/mkenv.mk
CROSS_COMPILE=m68k-apple-macos-
SIZE=:
# qstr definitions (must come before including py.mk)
QSTR_DEFS = qstrdefsport.h
# MicroPython feature configurations
MICROPY_ROM_TEXT_COMPRESSION ?= 1
# include py core make definitions
include $(TOP)/py/py.mk
include $(TOP)/extmod/extmod.mk
INC += -I.
INC += -I$(TOP)
INC += -I$(BUILD)
UNAME_S := $(shell uname -s)
LD = $(CXX)
CFLAGS += $(INC) -Wall -Wdouble-promotion -Wfloat-conversion -std=c99 $(COPT)
CSUPEROPT = -Os # save some code space
# Tune for Debugging or Optimization
#CFLAGS += -g # always include debug info in the ELF
ifeq ($(DEBUG), 1)
CFLAGS += -O0
else
CFLAGS += -Os -DNDEBUG
CFLAGS += -fdata-sections -ffunction-sections
endif
# Flags for optional C++ source code
CXXFLAGS += $(filter-out -std=c99,$(CFLAGS)) -fno-rtti -fno-exceptions
LIBS =
SRC_C = \
main.c \
vfs_mac.c \
macutil.c \
SRC_C += \
$(BUILD)/_frozen_mpy.c \
shared/readline/readline.c \
shared/runtime/gchelper_native.c \
shared/runtime/pyexec.c \
shared/runtime/stdout_helpers.c \
SRC_CXX += \
uart_core.cpp \
retro/Console.cpp \
retro/ConsoleWindow.cpp \
retro/InitConsole.cpp \
SRC_S += \
shared/runtime/gchelper_m68k.S \
SRC_QSTR += \
vfs_mac.c \
shared/readline/readline.c \
shared/runtime/pyexec.c \
OBJ += $(PY_CORE_O) $(PY_O)
OBJ += $(addprefix $(BUILD)/, $(SRC_C:.c=.o))
OBJ += $(addprefix $(BUILD)/, $(SRC_CXX:.cpp=.o))
OBJ += $(addprefix $(BUILD)/, $(SRC_S:.S=.o))
all: $(BUILD)/micropython.bin
$(BUILD)/_frozen_mpy.c: $(TOP)/tests/frozen/frozentest.mpy $(BUILD)/genhdr/qstrdefs.generated.h
$(ECHO) "MISC freezing bytecode"
$(Q)$(TOP)/tools/mpy-tool.py -f -q $(BUILD)/genhdr/qstrdefs.preprocessed.h -mlongint-impl=mpz $< > $@
$(BUILD)/micropython.code.bin: $(OBJ)
$(ECHO) "LINK $@"
$(Q)$(LD) $(LDFLAGS) -o $@ $^ $(LIBS)
$(Q)$(SIZE) $@
REZ=Rez
RINCLUDES=/Retro68-build/toolchain/RIncludes
REZFLAGS=-I$(RINCLUDES)
$(BUILD)/micropython.bin $(BUILD)/micropython.APPL $(BUILD)/micropython.dsk: $(BUILD)/micropython.code.bin
$(REZ) $(REZFLAGS) \
--copy "$(BUILD)/micropython.code.bin" \
"$(RINCLUDES)/Retro68APPL.r" \
-t "APPL" -c "mupy" \
-o $(BUILD)/micropython.bin --cc $(BUILD)/micropython.APPL --cc $(BUILD)/micropython.dsk
.PHONY: docker-build
docker-build:
docker run --rm --mount type=bind,source=$(TOP),destination=/work ghcr.io/autc04/retro68 make -C /work/ports/m68kmac -j$(shell nproc)
.PHONY: docker-build-%
docker-build-%:
docker run --rm --mount type=bind,source=$(TOP),destination=/work ghcr.io/autc04/retro68 make -C /work/ports/m68kmac $*
UMAC=$(HOME)/src/umac/main -r ~/src/umac/rom.bin
.PHONY: run7
run7:
$(UMAC) -d ~/src/umac/HyperCardBootSystem7.img -d build/micropython.dsk
.PHONY: run6
run6:
$(UMAC) -d ~/src/pico-mac/umac0ro.img -d build/micropython.dsk
include $(TOP)/py/mkrules.mk