# Core Makefile for GP32 development using GCC
# Written 2002 by Christian Nowak <chnowak@web.de>
# Patched 2004 by DJWillis for GamePark SDK project
# compatability for newer GCC's using Patched GameParkSDK
# Modified by Oankali
# Version 3.0

# File Name
TARGET		= ledblur

# gpSDK root directory
GPSDK			= C:/devkitARM/gamepark_sdk
ARMELF			= C:/devkitARM/arm-elf

.CFILES		= $(GPSDK)/gpstart.c \
            ledblur.c script.c precalcs.c effects.c modfile1.c gp32ball.c jlh0.c bitfonts.c generate3d.c engine3d.c render3d.c teapot.c face.c env1.c redbull.c redbull_bottom.c redbull_top.c mindlapse.c presents.c fonts16.c

.SFILES		=

OBJS			= $(.SFILES:.s=.o) $(.CFILES:.c=.o)

# GCC Tool-chain
CC				= arm-elf-gcc
CXX				= arm-elf-g++
LD				= arm-elf-gcc
AS				= arm-elf-as
OBJCOPY		= arm-elf-objcopy

CFLAGS = -marm \
					-march=armv4t \
					-mapcs \
					-O3 \
					-fomit-frame-pointer \
					-finline-functions \
					-fshort-enums \
					-ffast-math \
					-mstructure-size-boundary=8 \
					-mno-thumb-interwork \
					-Wno-multichar \
					-I$(GPSDK)/include \
					-I.
 
LIBDIRS		= -L$(GPSDK)/lib
GP_LIBS		= -s -lmodplay -lgpgraphic -lgpgraphic16 -lgpmem -lgpos -lgpstdlib -lgpstdio -lgpsound -lgpg_ex01 -lgpfont -lgpfont16
LIBS			= -lm -lc

LDFLAGS		= $(LDSPECS) \
						-Wl,-Map,$(MAPFILE) \
						$(LIBDIRS) \
						$(GP_LIBS) \
						$(LIBS)
 
LDSPECS		= -specs=gp32_gpsdk.specs

LINK			= $(LD) -o $(GP_OBJS) $@ $^ $(LDFLAGS) 
 
# Outputs
ELF				= $(TARGET).elf
MAPFILE		= $(TARGET).map
BIN				= $(TARGET).gxb
FXE				= $(TARGET).fxe
 
.PHONY: all clean depend

all: $(BIN)

clean:
				rm -f $(OBJS) $(MAPFILE) $(BIN) $(ELF) $(FXE)
 
$(ELF): $(OBJS)
				$(LINK)
 
$(BIN): $(ELF)
				$(OBJCOPY) -O binary $< $@
