# $Log: Makefile,v $
# Revision 1.6  2004/01/31 18:36:59  Default
# blitting module added
#
# Revision 1.5  2004/01/30 23:13:06  Default
# gbafix added (fixes header)
#
# Revision 1.4  2004/01/27 19:38:52  richq
# Title screen added. title.c
#
# Revision 1.3  2004/01/26 20:42:40  richq
# New modules added.
#
# Revision 1.2  2004/01/21 19:13:35  Default
# Added in the @s to skip displaying details.
# Binary data moved to the data directory.
# More .c modules added
#
# Revision 1.1.1.1  2004/01/17 09:32:34  Default
# Lords Of Midnight GBA
#

include ../gbalib/master.mk
OUTPUTDIR = o
LDFLAGS = -Wl,-Map,lom.map -nostartfiles -Tlnkscript  -mthumb-interwork 
LIBS = -L../gbalib -lquirkygba -Ldata -ldata

#-lgba ../krawall/krawall.lib 

INCLUDES = -I../gbalib 
#-I../krawall

IMG = ./img
SND = ./snd

ASFLAGS	= -mthumb-interwork -marm7tdmi

PROJECT = lom.gba
PROGNAME = lom

PROGFILES= main.c gfx.c input.c inter.arm.c features.c tokens.c \
	tokendata.c location.c lords.c shield.c savearea.c objects.c objectdata.c \
	icefear.c places.c army.c look.c think.c select.c choose.c doomdark.c menu.c \
	title.c blit.arm.c

OFILES1 = crt0.o $(PROGFILES:%.c=%.o)

OFILES = $(OFILES1:%.o=$(OUTPUTDIR)/%.o)


all:
	make -C data
	make -C ../gbalib
	make $(PROJECT)

clean:
	rm -f  $(OFILES)


# final step, create bin file from elf file
$(PROJECT) : $(PROGNAME).elf
	@$(OBJCOPY) -v -O binary $(PROGNAME).elf $(PROJECT)
	@gbafix $@ -tLordsOfMid

# link all the object files into an elf file 
$(PROGNAME).elf : $(OFILES)
	@echo link $(PROGNAME)
	@$(GCC) $(LDFLAGS) -o $(PROGNAME).elf $(OFILES) $(LIBS)


# make object files from the source code
$(OUTPUTDIR)/%.arm.o : %.arm.c
	@echo compile arm $< $(DEBUG)
	@$(GCC) $(INCLUDES) $(CFLAGS) $< -o $@
	
# make object files from the source code
$(OUTPUTDIR)/%.o : %.c
	@echo compile thumb $< $(DEBUG)
	@$(GCC) $(INCLUDES) $(CFLAGS) -mthumb  $< -o $@

# make object files from binary data
$(OUTPUTDIR)/%.all.rodata.o : %.bin
	@echo objcopy rodata bin $<
	@$(OBJCOPY) $(OBJCOPYFLAGS) $< $@


# make crt0 object file
$(OUTPUTDIR)/crt0.o: crt0.s
	@$(AS) $(ASFLAGS) -o $@ $<

# make .s object file
#$(OUTPUTDIR)/%.o : %.s
#	$(AS) $(ASFLAGS) -o $@ $<

