PSPSDK=$(shell psp-config --pspsdk-path)
PSPDEV=$(shell psp-config --pspdev-path)
INCLUDE=$(PSPSDK)/include

all:    analogfun

clean:
	rm -rf *~ *.o *.elf *.bin *.s *.bin
	rm -rf dist/*

CC       = psp-gcc
CFLAGS   := -D PSP -I $(INCLUDE) -W -Wall -O2 -G0 -fno-pic -mno-abicalls -w -fomit-frame-pointer

ASM      = psp-as

install:
	cp analogfun.bin analogfun.jpg loadbinary.tif dist

tiffsdk.o: tiffsdk.c
	# Optimisation level 2 (-O2) MUST be used.
	$(CC) $(CFLAGS) -O2 -S tiffsdk.c -o tiffsdk.s
	$(ASM) tiffsdk.s -o tiffsdk.o

gfx.o: gfx.c gfx.h
	$(CC) $(CFLAGS) -S gfx.c -o gfx.s
	$(ASM) gfx.s -o gfx.o

analogfun.o: analogfun.c gfx.h
	$(CC) $(CFLAGS) -S analogfun.c -o analogfun.s
	$(ASM) analogfun.s -o analogfun.o

analogfun: analogfun.o gfx.o tiffsdk.o tiffsdk.x
	$(PSPDEV)/bin/psp-ld -T tiffsdk.x -L$(PSPSDK)/lib analogfun.o gfx.o tiffsdk.o -o analogfun.elf
	$(PSPDEV)/bin/psp-strip -s analogfun.elf
	$(PSPDEV)/bin/psp-objcopy -O binary analogfun.elf analogfun.bin
