all: $(patsubst %.cpp,%.elf,$(wildcard example/*.cpp)) OPT = -O2 CSTD = -std=gnu11 MAKEFILE_PATH := $(patsubst %/,%,$(dir $(abspath $(firstword $(MAKEFILE_LIST))))) LIB ?= $(MAKEFILE_PATH)/dreamcast CFLAGS += -D__dreamcast__ CFLAGS += -DDEBUG #CFLAGS += -DDEBUG_PRINT CFLAGS += -I$(MAKEFILE_PATH)/c CFLAGS += -I$(MAKEFILE_PATH)/dreamcast CFLAGS += -I$(MAKEFILE_PATH)/ CFLAGS += -Wno-error=strict-aliasing -fno-strict-aliasing CARCH = -m4-single -ml include dreamcast/base.mk include dreamcast/common.mk include dreamcast/headers.mk include dreamcast/ip.mk include java.mk %.class.o: %.class $(BUILD_BINARY_O) %.class.h: %.class $(BUILD_BINARY_H) libgcc/%.o: $(LIBGCC) @mkdir -p $(dir $@) ar x --output $(dir $@) $(LIBGCC) $(notdir $@) sh4-none-elf-objdump -t $@ \ | grep -E '[.]hidden' \ | grep -vE 'UND' \ | cut -d' ' -f10 \ | xargs rebind --visibility=default $@ LIBGCC_OBJ = \ libgcc/_divdi3.o \ libgcc/_udiv_qrnnd_16.o \ libgcc/_clz.o \ libgcc/_moddi3.o \ libgcc/_fixdfdi.o \ libgcc/_fixunsdfdi.o \ libgcc/_fixunssfdi.o \ libgcc/_floatdisf.o \ libgcc/_floatdidf.o \ libgcc/_sdivsi3.o \ libgcc/_fixsfdi.o \ libgcc/_div_table.o \ libgcc/_movmem_i4.o \ libgcc/_set_fpscr.o include classpath.mk GDROM_JVM_BOOT_OBJ = \ $(LIB)/example/gdrom_jvm_boot.o \ $(LIB)/sh7091/serial.o boot.elf: LDSCRIPT = $(LIB)/ip.lds boot.elf: $(IP_OBJ) $(START_OBJ) $(GDROM_JVM_BOOT_OBJ) zero.bin: dd if=/dev/zero of=$@ bs=2048 count=1 jvm.iso: boot.bin main.bin zero.bin mkisofs \ -C 0,11702 \ -sysid "SEGA SEGAKATANA" \ -volid "SAMPLE_GAME_TITLE" \ -volset "SAMPLE_GAME_TITLE" \ -publisher "SEGA ENTERPRISES, LTD." \ -preparer "CRI CD CRAFT VER.2.27" \ -copyright "COPYRIGH.TXT" \ -abstract "ABSTRACT.TXT" \ -biblio "BIBLIOGR.TXT" \ -G boot.bin \ -o $@ \ -graft-points \ /0JVM.BIN=./main.bin \ /1ST_READ.BIN=zero.bin \ /=$(LIB)/COPYRIGH.TXT \ /=$(LIB)/ABSTRACT.TXT \ /=$(LIB)/BIBLIOGR.TXT \ images/java_text.data \ images/java_cup.data \ $(shell cat classes.txt) main.elf: LDSCRIPT = $(LIB)/main.lds main.elf: $(START_OBJ) $(OBJ) $(MAIN_OBJ) $(MAIN_DREAMCAST_OBJ) $(LIBGCC_OBJ) $(CLASS_PATH)