mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-18 15:48:48 +00:00
f5112efa11
svn-id: r42939
112 lines
3.5 KiB
Makefile
112 lines
3.5 KiB
Makefile
# Repeat "all" target here, to make sure it is the first target
|
|
# Currently disabled, so only arm7.bin gets build
|
|
#all:
|
|
|
|
|
|
|
|
# Files in this list will be optimisied for speed, otherwise they will be optimised for space
|
|
OPTLIST := actor.cpp ds_main.cpp osystem_ds.cpp blitters.cpp fmopl.cpp rate.cpp isomap.cpp image.cpp gfx.cpp sprite.cpp actor_path.cpp actor_walk.cpp
|
|
#OPTLIST :=
|
|
|
|
# Compiler options for files which should be optimised for speed
|
|
OPT_SPEED := -O3
|
|
|
|
# Compiler options for files which should be optimised for space
|
|
OPT_SIZE := -Os -mthumb
|
|
|
|
|
|
#-mthumb -fno-gcse -fno-schedule-insns2
|
|
|
|
|
|
OBJS := $(DATA_OBJS) $(LIBCARTRESET_OBJS) $(PORT_OBJS) $(COMPRESSOR_OBJS) $(FAT_OBJS)
|
|
|
|
|
|
# TODO: Handle files in OPTLIST.
|
|
# For this, the list should be made explicit. So, replace actor.cpp by path/to/actor.cpp --
|
|
# in fact, there are several actor.cpp files, and right now all are "optimized", but
|
|
# I think Neil only had the SAGA one in mind. Same for gfx.cpp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#############################################################################
|
|
#############################################################################
|
|
#############################################################################
|
|
|
|
|
|
#ndsdir = $(srcdir)/backends/platform/ds
|
|
ndsdir = backends/platform/ds
|
|
|
|
#############################################################################
|
|
#
|
|
# ARM7 rules.
|
|
# For ARM7 files, we need different compiler flags, which leads to the
|
|
# extra rules for .o files below
|
|
#
|
|
#############################################################################
|
|
|
|
$(ndsdir)/arm7/arm7.bin: $(ndsdir)/arm7/arm7.elf
|
|
|
|
$(ndsdir)/arm7/arm7.elf: \
|
|
$(ndsdir)/arm7/source/libcartreset/cartreset.o \
|
|
$(ndsdir)/arm7/source/main.o
|
|
|
|
# HACK/FIXME: C compiler, for cartreset.c -- we should switch this to use CXX
|
|
# as soon as possible.
|
|
CC := $(DEVKITARM)/bin/arm-eabi-gcc
|
|
|
|
# HACK/TODO: Pointer to objcopy. This should really be set by configure
|
|
OBJCOPY := $(DEVKITARM)/bin/arm-eabi-objcopy
|
|
|
|
#
|
|
# Set various flags
|
|
#
|
|
ARM7_ARCH := -mthumb-interwork
|
|
|
|
# note: arm9tdmi isn't the correct CPU arch, but anything newer and LD
|
|
# *insists* it has a FPU or VFP, and it won't take no for an answer!
|
|
ARM7_CFLAGS := -g -Wall -O2\
|
|
-mcpu=arm7tdmi -mtune=arm7tdmi -fomit-frame-pointer\
|
|
-ffast-math \
|
|
$(ARM7_ARCH) \
|
|
-I$(srcdir)/$(ndsdir)/arm7/source/libcartreset \
|
|
-I$(srcdir)/$(ndsdir)/commoninclude \
|
|
-I$(DEVKITPRO)/libnds/include \
|
|
-I$(DEVKITPRO)/libnds/include/nds \
|
|
-DARM7
|
|
|
|
ARM7_CXXFLAGS := $(ARM7_CFLAGS) -fno-exceptions -fno-rtti
|
|
|
|
ARM7_LDFLAGS := -g $(ARM7_ARCH) -mno-fpu
|
|
|
|
# HACK/FIXME: Define a custom build rule for cartreset.c.
|
|
# We do this because it is a .c file, not a .cpp file and so is outside our
|
|
# regular build system anyway. But this is *bad*. It should be changed into a
|
|
# .cpp file and this rule be removed.
|
|
%.o: %.c
|
|
$(MKDIR) $(*D)/$(DEPDIR)
|
|
$(CC) -Wp,-MMD,"$(*D)/$(DEPDIR)/$(*F).d",-MQ,"$@",-MP $(CXXFLAGS) $(CPPFLAGS) -c $(<) -o $*.o
|
|
|
|
|
|
# Set custom build flags for cartreset.o
|
|
$(ndsdir)/arm7/source/libcartreset/cartreset.o: CXXFLAGS=$(ARM7_CFLAGS)
|
|
$(ndsdir)/arm7/source/libcartreset/cartreset.o: CPPFLAGS=
|
|
|
|
# Set custom build flags for main.o
|
|
$(ndsdir)/arm7/source/main.o: CXXFLAGS=$(ARM7_CXXFLAGS)
|
|
$(ndsdir)/arm7/source/main.o: CPPFLAGS=
|
|
|
|
# Rule for creating ARM7 .bin files from .elf files
|
|
%.bin: %.elf
|
|
@echo ------
|
|
@echo Building $@...
|
|
$(OBJCOPY) -O binary $< $@
|
|
|
|
# Rule for creating ARM7 .elf files by linking .o files together with a special linker script
|
|
%.elf:
|
|
@echo ------
|
|
@echo Building $@...
|
|
$(CXX) $(ARM7_LDFLAGS) -specs=ds_arm7.specs $+ -L/opt/devkitPro/libnds/lib -lnds7 -o $@
|