PSPTARGET=/pspg

all: build

install_fanj: build
	@echo "------- Installing (Fanjita) -------"
	cp framework/pikey.prx $(PSPTARGET)/seplugins/
	mkdir -p $(PSPTARGET)/seplugins/pikey/
	cp framework/pikeyconfig.txt $(PSPTARGET)/seplugins/pikey/
	mkdir -p $(PSPTARGET)/seplugins/pikey/inputdrivers/
	cp sio_in/piKeysio.prx $(PSPTARGET)/seplugins/pikey/inputdrivers/
	cp ir_in/piKeyIR.prx $(PSPTARGET)/seplugins/pikey/inputdrivers/
#	cp danzeff_in/piKeydanzeff.prx $(PSPTARGET)/seplugins/pikey/inputdrivers/
	mkdir -p $(PSPTARGET)/seplugins/pikey/outputdrivers/
	cp ctrl_out/piKeyCtrlout.prx $(PSPTARGET)/seplugins/pikey/outputdrivers/
	cp ctrl_out/ctrlmap.txt $(PSPTARGET)/seplugins/pikey/
	cp osk_out/piKeyOSKout.prx $(PSPTARGET)/seplugins/pikey/outputdrivers/
	cp danzeff_out/piKeyDanzeffout.prx $(PSPTARGET)/seplugins/pikey/outputdrivers/
	if [ ! -f $(PSPTARGET)/seplugins/vsh.txt ] ; then echo ms0:/seplugins/pikey.prx > $(PSPTARGET)/seplugins/vsh.txt ; fi
	@echo "----------> END <----------"

install_hg:
	@echo "------- Installing (harleyg) -------"
	mount /dev/sdd1
	cp -v framework/pikey.prx /mnt/usb1/seplugins/pikey.prx
	mkdir -p /mnt/usb1/seplugins/pikey/
	cp -v framework/pikeyconfig.txt /mnt/usb1/seplugins/pikey/pikeyconfig.txt
	mkdir -p /mnt/usb1/seplugins/pikey/inputdrivers/
	cp -v sio_in/piKeysio.prx /mnt/usb1/seplugins/pikey/inputdrivers/piKeysio.prx
	cp -v ir_in/piKeyIR.prx /mnt/usb1/seplugins/pikey/inputdrivers/piKeyIR.prx
	cp -v danzeff_in/piKeydanzeff.prx /mnt/usb1/seplugins/pikey/inputdrivers/piKeydanzeff.prx
	mkdir -p /mnt/usb1/seplugins/pikey/outputdrivers/
	cp -v ctrl_out/piKeyCtrlout.prx /mnt/usb1/seplugins/pikey/outputdrivers/piKeyVSHout.prx
	cp -v ctrl_out/ctrlmap.txt /mnt/usb1/seplugins/pikey/ctrlmap.txt
	cp -v osk_out/piKeyOSKout.prx /mnt/usb1/seplugins/pikey/outputdrivers/piKeyOSKout.prx
	cp -v danzeff_out/piKeyDanzeffout.prx /mnt/usb1/seplugins/pikey/outputdrivers/
	umount /dev/sdd1
	@echo "----------> END <----------"

release: build
	@echo "---------- Generating release image ------------";
	rm -rf rel
	mkdir -p rel/src
	svn export framework     rel/src/framework
	svn export sdk           rel/src/sdk
	svn export ir_in         rel/src/ir_in
	svn export sio_in        rel/src/sio_in
	svn export danzeff_out   rel/src/danzeff_out
	svn export osk_out       rel/src/osk_out
	svn export ctrl_out      rel/src/ctrl_out
	svn export hblib         rel/src/hblib
	svn export hblib_sample  rel/src/hblib_sample
	svn export installer     rel/src/installer
	cp Makefile              rel/src/Makefile
	svn export docs          rel/docs
	cp rel/docs/readme.txt   rel/
	svn export sdk           rel/sdk
	mkdir -p rel/MS_ROOT/PSP/GAME150/pikey_sample
	cp hblib_sample/EBOOT.PBP rel/MS_ROOT/PSP/GAME150/pikey_sample/
	mkdir -p rel/MS_ROOT/PSP/GAME150/pikey_install/modules/keymap
	cp installer/EBOOT.PBP                 rel/MS_ROOT/PSP/GAME150/pikey_install/
	cp framework/pikey.prx                 rel/MS_ROOT/PSP/GAME150/pikey_install/modules/
	cp framework/pikeyconfig.txt           rel/MS_ROOT/PSP/GAME150/pikey_install/modules/
	cp ir_in/pikeyIR.prx                   rel/MS_ROOT/PSP/GAME150/pikey_install/modules/
	cp sio_in/pikeysio.prx                 rel/MS_ROOT/PSP/GAME150/pikey_install/modules/
	cp osk_out/pikeyOSKout.prx             rel/MS_ROOT/PSP/GAME150/pikey_install/modules/
	cp ctrl_out/pikeyCtrlout.prx           rel/MS_ROOT/PSP/GAME150/pikey_install/modules/
	cp ctrl_out/ctrlmap.txt                rel/MS_ROOT/PSP/GAME150/pikey_install/modules/
	cp danzeff_out/pikeyDanzeffout.prx     rel/MS_ROOT/PSP/GAME150/pikey_install/modules/
	cp pspirkeyb-0.0.4-pre1/pspirkeyb.ini  rel/MS_ROOT/PSP/GAME150/pikey_install/modules/
	cp pspirkeyb-0.0.4-pre1/keymap/*       rel/MS_ROOT/PSP/GAME150/pikey_install/modules/keymap/


clean:
	@echo "------- Cleaning piKey -------"
	@echo "---------- Framework ----------"
	make -C framework clean
	@echo "---------- SDK ----------"
	make -C sdk clean
	@echo "---------- hblib ----------"
	make -C hblib clean
	@echo "---------- hblib_sample ----------"
	make -C hblib_sample clean
	@echo "---------- ctrl_out ----------"
	make -C ctrl_out clean
	@echo "---------- osk_out ----------"
	make -C osk_out clean
	@echo "---------- sio_in ----------"
	make -C sio_in clean
	@echo "---------- ir_in ----------"
	make -C ir_in clean
	@echo "---------- danzeff_in ----------"
	make -C danzeff_in clean
	@echo "---------- danzeff_out ----------"
	make -C danzeff_out clean
	@echo "---------- installer ----------"
	make -C installer clean
	@echo "---------- release -------------"
	rm -rf release
	@echo "----------> DONE <----------"

build: buildbanner framework sdk hblib hblib_sample ctrl_out osk_out sio_in ir_in danzeff_in danzeff_out installer
	@echo "----------> DONE <----------"

buildbanner:
	@echo "------- Compiling piKey -------"

framework: framework/pikey.prx

framework/pikey.prx: framework/*.c framework/*.h framework/*.exp framework/Makefile
	@echo "---------- Framework ----------"
	make -C framework

sdk: sdk/framework_stub.o

sdk/framework_stub.o: sdk/framework_stub.S
	@echo "---------- SDK ----------"
	make -C sdk

hblib: hblib/libpikey.a

hblib/libpikey.a: hblib/*.c hblib/*.h hblib/Makefile
	@echo "---------- hblib ----------"
	make -C hblib clean install

hblib_sample: hblib_sample/EBOOT.PBP

hblib_sample/EBOOT.PBP: hblib_sample/*.c hblib_sample/Makefile hblib/libpikey.a
	@echo "---------- hblib_sample ----------"
	make -C hblib_sample clean all

ctrl_out: ctrl_out/piKeyCtrlout.prx

ctrl_out/piKeyCtrlout.prx: ctrl_out/*.c ctrl_out/*.h ctrl_out/*.exp ctrl_out/Makefile
	@echo "---------- ctrl_out ----------"
	make -C ctrl_out

osk_out: osk_out/piKeyOSKout.prx

osk_out/piKeyOSKout.prx: osk_out/*.c osk_out/*.h osk_out/*.exp osk_out/Makefile
	@echo "---------- osk_out ----------"
	make -C osk_out

sio_in: sio_in/piKeysio.prx

sio_in/piKeysio.prx: sio_in/*.c sio_in/*.h sio_in/*.exp sio_in/Makefile
	@echo "---------- sio_in ----------"
	make -C sio_in

ir_in: ir_in/piKeyIR.prx

ir_in/piKeyIR.prx: ir_in/*.c ir_in/*.exp ir_in/Makefile
	@echo "---------- ir_in ----------"
	make -C ir_in

danzeff_in: danzeff_in/piKeydanzeff.prx

danzeff_in/piKeydanzeff.prx: danzeff_in/*.c danzeff_in/*.h danzeff_in/*.exp danzeff_in/Makefile
	@echo "---------- danzeff_in ----------"
	make -C danzeff_in

danzeff_out: danzeff_out/piKeydanzeffout.prx

danzeff_out/piKeydanzeffout.prx: danzeff_out/*.c danzeff_out/*.h danzeff_out/*.exp danzeff_out/Makefile
	@echo "---------- danzeff_out ----------"
	make -C danzeff_out

installer: installer/EBOOT.PBP

installer/EBOOT.PBP: installer/*.c installer/*.png installer/Makefile
	@echo "---------- installer ----------"
	make -C installer

