62 lines
1.7 KiB
Makefile
62 lines
1.7 KiB
Makefile
export LD_PRELOAD =
|
|
|
|
MEM_DEF= -DMEMSTART=0x80040000 -DMEMSIZE=0x10000
|
|
|
|
AFLAGS = -O2 -fno-pic -mno-abicalls -fno-builtin -mips1 -I include -EL -msoft-float
|
|
|
|
export CROSS_COMPILE ?= mipsel-linux-gnu-
|
|
export MEM_DEF
|
|
|
|
OBJDIR = obj
|
|
GAME_TARGET = ./memory_game/memory_main.o
|
|
|
|
all:
|
|
mkdir -p $(OBJDIR)
|
|
make generate
|
|
|
|
libtinyc.a :
|
|
make -C lib $@
|
|
|
|
generate: inst_data.bin convert
|
|
./convert inst_data.bin $(OBJDIR)/
|
|
|
|
inst_data.bin: main.elf
|
|
${CROSS_COMPILE}objcopy -O binary -j .text -j .data $(OBJDIR)/$< $(OBJDIR)/$@
|
|
|
|
main.elf: start.o libtinyc.a bin.lds $(GAME_TARGET)
|
|
${CROSS_COMPILE}ld -g -EL -T bin.lds start.o $(GAME_TARGET) lib/libtinyc.a -o $(OBJDIR)/$@
|
|
${CROSS_COMPILE}objdump -alD $(OBJDIR)/$@ > $(OBJDIR)/test.s
|
|
|
|
$(GAME_TARGET):
|
|
make -C memory_game
|
|
|
|
bin.lds: bin.lds.S
|
|
${CROSS_COMPILE}gcc -EL -E -P -Umips -D_LOADER -U_MAIN $(MEM_DEF) $< -o $@
|
|
|
|
start.o: start.S
|
|
${CROSS_COMPILE}gcc $(AFLAGS) -c $< -nostdinc -nostdlib
|
|
|
|
convert: convert.c
|
|
gcc -o convert convert.c
|
|
clean:
|
|
rm -f *.o *.bin *.elf *.a testbin *.s *.vlog *.coe *.data *.mif
|
|
rm -rf obj
|
|
make -C lib clean
|
|
make -C memory_game clean
|
|
reset:
|
|
make clean
|
|
rm -f bin.lds convert
|
|
|
|
help:
|
|
@echo "################################################################"
|
|
@echo "### help for compiling memory game"
|
|
@echo "################################################################"
|
|
@echo "### options:"
|
|
@echo "### make : get compiled result, which is saved in ./obj"
|
|
@echo "### make clean: remove *.o, *.a, and ./obj"
|
|
@echo "### make reset: "make clean" and remove convert, bin.lds"
|
|
@echo "### make help : show help information"
|
|
@echo "###############################################################"
|
|
|
|
#-include rules.make
|