mirror of
https://github.com/mlaux/gb6.git
synced 2026-10-22 03:02:35 +00:00
63 lines
1.6 KiB
Makefile
63 lines
1.6 KiB
Makefile
CC = cc
|
|
CFLAGS = -Wall -Wextra -g -O1 -MMD -MP \
|
|
-Ishim-include -I../src -I../compiler -I../compiler/musashi
|
|
|
|
BUILD = build
|
|
|
|
MUSASHI_DIR = ../compiler/musashi
|
|
MUSASHI_OBJS = $(MUSASHI_DIR)/m68kcpu.o $(MUSASHI_DIR)/m68kops.o \
|
|
$(MUSASHI_DIR)/m68kdasm.o \
|
|
$(MUSASHI_DIR)/softfloat/softfloat.o
|
|
|
|
SRC_NAMES = dmg lcd lcd_cgb mbc cgb audio rom rom_patches
|
|
SRC_OBJS = $(SRC_NAMES:%=$(BUILD)/src_%.o)
|
|
|
|
COMP_NAMES = compiler emitters branches flags interop cb_prefix reg_loads mem_loads \
|
|
alu stack instructions timing
|
|
COMP_OBJS = $(COMP_NAMES:%=$(BUILD)/comp_%.o)
|
|
|
|
SYS6_OBJS = $(BUILD)/sys6_cache.o
|
|
|
|
HOST_NAMES = gb6run shims m68k_mem host_jit
|
|
HOST_OBJS = $(HOST_NAMES:%=$(BUILD)/host_%.o)
|
|
|
|
ALL_OBJS = $(SRC_OBJS) $(COMP_OBJS) $(SYS6_OBJS) $(HOST_OBJS)
|
|
|
|
gb6run: $(ALL_OBJS)
|
|
$(CC) $(CFLAGS) -o $@ $(ALL_OBJS) $(MUSASHI_OBJS) -lm
|
|
|
|
$(BUILD)/src_%.o: ../src/%.c | $(BUILD)
|
|
$(CC) $(CFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD)/comp_%.o: ../compiler/%.c | $(BUILD)
|
|
$(CC) $(CFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD)/sys6_cache.o: ../system6/cache.c | $(BUILD)
|
|
$(CC) $(CFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD)/host_%.o: %.c | $(BUILD)
|
|
$(CC) $(CFLAGS) -c -o $@ $<
|
|
|
|
$(BUILD):
|
|
mkdir -p $(BUILD)
|
|
|
|
-include $(ALL_OBJS:.o=.d)
|
|
|
|
clean:
|
|
rm -rf $(BUILD) gb6run
|
|
|
|
# scoreboard: run the compat suite and diff against the committed baseline
|
|
fetch-roms:
|
|
bash compat/fetch_roms.sh
|
|
|
|
compat: gb6run
|
|
bash compat/run_compat.sh results.txt
|
|
@diff -u compat/baseline.txt compat/results.txt \
|
|
&& echo "compat: matches baseline"
|
|
|
|
# rewrite the committed baseline from the latest results
|
|
baseline: compat/results.txt
|
|
cp compat/results.txt compat/baseline.txt
|
|
|
|
.PHONY: clean compat baseline fetch-roms
|