diff options
-rw-r--r-- | backends/platform/dc/dreamcast.mk | 15 | ||||
-rw-r--r-- | backends/platform/dc/module.mk | 10 | ||||
-rwxr-xr-x | configure | 40 |
3 files changed, 64 insertions, 1 deletions
diff --git a/backends/platform/dc/dreamcast.mk b/backends/platform/dc/dreamcast.mk new file mode 100644 index 0000000000..dbf1e8b701 --- /dev/null +++ b/backends/platform/dc/dreamcast.mk @@ -0,0 +1,15 @@ +# $URL$ +# $Id$ + +ronindir = /usr/local/ronin + +CC := $(CXX) +ASFLAGS := $(CXXFLAGS) + +SCUMMVM.BIN : scummvm.bin + scramble $< $@ + +scummvm.bin : scummvm.elf + sh-elf-objcopy -S -R .stack -O binary $< $@ + + diff --git a/backends/platform/dc/module.mk b/backends/platform/dc/module.mk new file mode 100644 index 0000000000..eecb91909c --- /dev/null +++ b/backends/platform/dc/module.mk @@ -0,0 +1,10 @@ +MODULE := backends/platform/dc + +MODULE_OBJS := dcmain.o time.o display.o audio.o input.o selector.o icon.o \ + label.o vmsave.o softkbd.o dcloader.o cache.o dc-fs.o + +MODULE_DIRS += \ + backends/platform/dc/ + +# We don't use the rules.mk here on purpose +OBJS := $(addprefix $(MODULE)/, $(MODULE_OBJS)) $(OBJS) @@ -847,6 +847,13 @@ neuros) _host_os=linux _host_cpu=arm ;; +dreamcast) + _host_os=dreamcast + _host_cpu=sh + _host_alias=sh-elf + CXXFLAGS="$CXXFLAGS -ml -m4-single-only" + LDFLAGS="$LDFLAGS -ml -m4-single-only" + ;; *) if test -z "$_host"; then guessed_host=`$_srcdir/config.guess` @@ -876,6 +883,9 @@ arm-riscos) gp2x-linux) EXEEXT=".gp2x" ;; +dreamcast) + EXEEXT=".elf" + ;; *) EXEEXT="" ;; @@ -967,7 +977,7 @@ fi # if test "$_cxx_major" -ge "3" ; then case $_host_os in - mingw* | cygwin*) + mingw* | cygwin* | dreamcast) CXXFLAGS="$CXXFLAGS -W -Wno-unused-parameter" ;; *) @@ -1112,6 +1122,9 @@ case $_host_os in type_2_byte='short' type_4_byte='long' ;; + dreamcast) + DEFINES="$DEFINES -D__DC__ -DNONSTANDARD_PORT" + ;; # given this is a shell script assume some type of unix *) echo "WARNING: could not establish system type, assuming unix like" @@ -1222,6 +1235,24 @@ if test -n "$_host"; then _backend="iphone" _build_hq_scalers="no" ;; + dreamcast) + echo "Cross-compiling to $_host, forcing endianness, alignment and type sizes" + DEFINES="$DEFINES -DDISABLE_DEFAULT_SAVEFILEMANAGER -DDISABLE_TEXT_CONSOLE -DDISABLE_COMMAND_LINE" + CXXFLAGS="$CXXFLAGS -O3 -Wno-multichar -funroll-loops -fschedule-insns2 -fomit-frame-pointer -fdelete-null-pointer-checks -fno-exceptions" + _endian=little + _need_memalign=yes + type_1_byte='char' + type_2_byte='short' + type_4_byte='int' + _backend="dc" + _build_scalers="no" + _build_hq_scalers="no" + _mad="yes" + _zlib="yes" + _ar="$_host_alias-ar cru" + _ranlib=$_host_alias-ranlib + add_line_to_config_mk 'include $(srcdir)/backends/platform/dc/dreamcast.mk' + ;; *) echo "Continuing with auto-detected values ... if you have problems, please add your target to configure." ;; @@ -1706,6 +1737,12 @@ case $_backend in DEFINES="$DEFINES -DIPHONE_BACKEND" MODULES="$MODULES backends/platform/iphone" ;; + dc) + INCLUDES="$INCLUDES "'-I$(srcdir)/backends/platform/dc -I$(ronindir)/include' + LDFLAGS="$LDFLAGS -Wl,-Ttext,0x8c010000 -nostartfiles "'$(ronindir)/lib/crt0.o -L$(ronindir)/lib' + LIBS="$LIBS -lronin -lm" + MODULES="$MODULES backends/platform/dc" + ;; *) echo "support for $_backend backend not implemented in configure script yet" exit 1 @@ -1888,6 +1925,7 @@ vpath %.c \$(srcdir) vpath %.m \$(srcdir) vpath %.asm \$(srcdir) vpath %.s \$(srcdir) +vpath %.S \$(srcdir) include \$(srcdir)/Makefile EOF |