diff options
Diffstat (limited to 'misc/dreamcast/Makefile')
-rw-r--r-- | misc/dreamcast/Makefile | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/misc/dreamcast/Makefile b/misc/dreamcast/Makefile new file mode 100644 index 0000000..5362a41 --- /dev/null +++ b/misc/dreamcast/Makefile @@ -0,0 +1,66 @@ +BUILD_DIR := build-dc +SOURCE_DIRS := src third_party/bearssl/src misc/dreamcast + +S_FILES := $(foreach dir,$(SOURCE_DIRS),$(wildcard $(dir)/*.S)) +C_FILES := $(foreach dir,$(SOURCE_DIRS),$(wildcard $(dir)/*.c)) +OBJS := $(addprefix $(BUILD_DIR)/, $(notdir $(C_FILES:%.c=%.o) $(S_FILES:%.S=%.o))) +CFLAGS :=-g -O1 -pipe -fno-math-errno -Ithird_party/bearssl/inc + +GLDC_LIB=third_party/gldc/libGLdc.a +LDFLAGS=-g +LIBS=-lm $(GLDC_LIB) -lppp -lkosfat + +TARGET := ClassiCube-dc +CC_TEXTURES = misc/dreamcast/classicube.zip + +ifeq ($(strip $(KOS_BASE)),) +$(error "Please set KOS variables in your environment.") +endif + +default: $(CC_TEXTURES) $(GLDC_LIB) $(BUILD_DIR) $(TARGET).cdi + +$(BUILD_DIR): + mkdir -p $(BUILD_DIR) + +$(GLDC_LIB): FORCE + $(MAKE) -C third_party/gldc +FORCE: ; + +# TODO add textures to misc folder ? +$(CC_TEXTURES): + curl http://www.classicube.net/static/default.zip -o $@ + +$(BUILD_DIR)/%.o: src/%.c + kos-cc $(CFLAGS) -c $< -o $@ + +$(BUILD_DIR)/%.o: misc/dreamcast/%.S + kos-cc -c $< -o $@ + +$(BUILD_DIR)/%.o: third_party/bearssl/src/%.c + kos-cc $(CFLAGS) -c $< -o $@ + + +$(TARGET).elf: $(OBJS) + kos-cc $(LDFLAGS) $^ -o $@ $(LIBS) + +$(TARGET).bin: $(TARGET).elf + sh-elf-objcopy -R .stack -O binary $(TARGET).elf $(TARGET).bin + +# https://dcemulation.org/phpBB/viewtopic.php?t=105269 +$(TARGET)-scr.bin: $(TARGET).bin + $(KOS_BASE)/utils/scramble/scramble $(TARGET).bin $(TARGET)-scr.bin + +$(TARGET).iso: $(TARGET)-scr.bin + mkdir -p ISO_FILES + cp $(TARGET)-scr.bin ISO_FILES/1ST_READ.BIN + mkdir -p ISO_FILES/audio + mkdir -p ISO_FILES/maps + mkdir -p ISO_FILES/texpacks + mkdir -p ISO_FILES/texturecache + cp $(CC_TEXTURES) ISO_FILES/texpacks/default.zip + cp misc/dreamcast/IP.BIN IP.BIN + mkisofs -G IP.BIN -C 0,11702 -J -l -r -o $(TARGET).iso ISO_FILES + # genisoimage -V ClassiCube -G IP.BIN -joliet -rock -l -o $(TARGET).iso ISO_FILES + +$(TARGET).cdi: $(TARGET).iso + cdi4dc $(TARGET).iso $(TARGET).cdi |