linux:    ef3usb

all:	linux win

ef3usb:	ef3usb.c ef3usbprg.c
	#gcc -O3 -static -o ef3usb ef3usb.c -lftdi -lusb
	gcc -O3 -o ef3usb ef3usb.c -lftdi
	strip ef3usb

win:    ../win32/ef3usb.exe ../win64/ef3usb.exe

../win32/ef3usb.exe: ef3usb.c ef3usbprg.c
	i686-w64-mingw32-gcc -I \
		/opt/mingw32/include/libftdi1 -O3 -o $@ ef3usb.c \
		/opt/mingw32/lib/libftdi1.a /opt/mingw32/lib/libusb-1.0.a
	i686-w64-mingw32-strip $@

../win64/ef3usb.exe: ef3usb.c ef3usbprg.c
	x86_64-w64-mingw32-gcc -I \
		/opt/mingw64/include/libftdi1 -O3 -o $@ ef3usb.c \
		/opt/mingw64/lib/libftdi1.a /opt/mingw64/lib/libusb-1.0.a
	x86_64-w64-mingw32-strip $@

ef3usbprg.c:	convert ef3usb.prg
	./convert ef3usb.prg ef3usbprg.c

convert:	convert.c
	gcc -O2 -o $@ $<

ef3usb.prg:	*.tas ef3executec.prg
	64tass -o ef3usb.prg ef3usb.tas

ef3executec.prg: *.tas
	64tass -o ef3executec.prg ef3executec.asm

linuxclean:
	rm -f ef3usb ef3executec.prg ef3usb.prg convert ef3usbprg.c

winclean:
	rm -f ../win32/ef3usb.exe ../win64/ef3usb.exe

clean:	linuxclean winclean


