jvm/Makefile.dreamcast.mk

141 lines
4.1 KiB
Makefile

all: $(patsubst %.cpp,%.elf,$(wildcard example/*.cpp))
OPT = -Og
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
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 \
example/GdromDirectoryRecordHandler.class \
example/GdromClassLoader.class \
filesystem/iso9660/ByteParser.class \
filesystem/iso9660/DirectoryRecord.class \
filesystem/iso9660/ExtentReader.class \
filesystem/iso9660/PrimaryVolumeDescriptor.class \
filesystem/iso9660/VolumeParser.class \
java/io/PrintStream.class \
java/lang/DecimalDigits.class \
java/lang/Integer.class \
java/lang/Object.class \
java/lang/String.class \
java/lang/System.class \
java/misc/Memory.class \
jvm/internal/Loader.class \
sega/dreamcast/gdrom/G1IF.class \
sega/dreamcast/gdrom/GdromIF.class \
sega/dreamcast/gdrom/GdromBits.class \
sega/dreamcast/gdrom/Gdrom.class \
sega/dreamcast/gdrom/GdromExtentReader.class \
sega/dreamcast/gdrom/GdromCommandPacketFormat_cd_read.class \
sega/dreamcast/gdrom/GdromCommandPacketFormat.class \
sega/dreamcast/gdrom/GdromCommandPacketFormat_get_toc.class \
sega/dreamcast/gdrom/GdromCommandPacketInterface.class \
sega/dreamcast/gdrom/GdromProtocol.class \
Main.class \
example/JavaCube.class \
example/JavaCubeDirectoryRecordHandler.class \
model/FacePTN.class \
model/ModelObject.class \
model/CubeModel.class \
model/Vec2.class \
model/Vec3.class \
sega/dreamcast/holly/Background.class \
sega/dreamcast/holly/CoreBits.class \
sega/dreamcast/holly/Core.class \
sega/dreamcast/holly/VideoOutput.class \
sega/dreamcast/holly/VideoOutputMode.class \
sega/dreamcast/holly/ISPTSP.class \
sega/dreamcast/holly/RegionArray.class \
sega/dreamcast/holly/RegionArray_OPBSize.class \
sega/dreamcast/holly/TABits.class \
sega/dreamcast/holly/TAFIFOPolygonConverter.class \
sega/dreamcast/holly/TAGlobalParameter.class \
sega/dreamcast/holly/TAGlobalParameter_end_of_list.class \
sega/dreamcast/holly/TAGlobalParameter_polygon_type_0.class \
sega/dreamcast/holly/TAVertexParameter.class \
sega/dreamcast/holly/TAVertexParameter_polygon_type_3.class \
sega/dreamcast/holly/TextureMemoryAllocation.class \
java/lang/Math.class \
java/misc/Resource.class \
images/java_text.data \
images/java_cup.data
main.elf: LDSCRIPT = $(LIB)/main.lds
main.elf: $(START_OBJ) $(OBJ) $(MAIN_OBJ) $(MAIN_DREAMCAST_OBJ) $(LIBGCC_OBJ) $(CLASS_PATH)