CC = gcc
CFLAGS = -O2
# -g -DDEBUG

PREFIX = /usr/local
TTY = /dev/cua0

M68K_BFD = $(PREFIX)/lib/libm68k-palmos-coff-bfd.a

LBFD = `if [ -f $(M68K_BFD) ]; \
	then echo $(M68K_BFD); \
	else echo "-L$(PREFIX)/lib -lbfd"; fi` -liberty

LIBCDIR = libc.0.1.1
LIBMDIR = libmf.0.1.1
LIBGDBDIR = libgdb.0.1.0
PILRCDIR = pilrc1.3

all: example/gnuhello.prc

install: all dummy install-man
	cd $(LIBCDIR) ; make install
	cd $(LIBMDIR) ; make install
	cd $(LIBGDBDIR) ; make install
	cp pilrc $(PREFIX)/m68k-palmos-coff/bin
	cp txt2bitm $(PREFIX)/m68k-palmos-coff/bin
	cp obj-res $(PREFIX)/m68k-palmos-coff/bin
	cp build-prc $(PREFIX)/m68k-palmos-coff/bin
	ln -sf $(PREFIX)/m68k-palmos-coff/bin/pilrc $(PREFIX)/bin/pilrc
	ln -sf $(PREFIX)/m68k-palmos-coff/bin/txt2bitm $(PREFIX)/bin/txt2bitm
	ln -sf $(PREFIX)/m68k-palmos-coff/bin/obj-res $(PREFIX)/bin/m68k-palmos-coff-obj-res
	ln -sf $(PREFIX)/m68k-palmos-coff/bin/build-prc $(PREFIX)/bin/build-prc

install-man: dummy
	cp man/* $(PREFIX)/man/man1

send: all
	echo Hit the HotSync button on the Pilot connected to $(TTY)
	pilot-xfer $(TTY) -i example/gnuhello.prc

obj-res: obj-res.o
	$(CC) $(CFLAGS) obj-res.o $(LBFD) -o obj-res

build-prc: build-prc.o emit-prc.o
	$(CC) $(CFLAGS) build-prc.o emit-prc.o -o build-prc

txt2bitm: txt2bitm.o
	$(CC) $(CFLAGS) txt2bitm.o -o txt2bitm

$(PILRCDIR)/pilrc:
	cd $(PILRCDIR) ; make

pilrc: $(PILRCDIR)/pilrc
	mv $(PILRCDIR)/pilrc .

example/gnuhello.prc: dummy pilrc build-prc obj-res txt2bitm libc.a libm.a libgdb.a
	cd example ; make

crt0.o: palmos_crt0.c
	$(PREFIX)/m68k-palmos-coff/bin/gcc -O2 -c palmos_crt0.c -o crt0.o

libc.a: dummy
	cd $(LIBCDIR) ; make
	ln -sf $(LIBCDIR)/libc.a libc.a

libm.a: dummy
	cd $(LIBMDIR) ; make
	ln -sf $(LIBMDIR)/libmf.a libm.a

libgdb.a: dummy
	cd $(LIBGDBDIR) ; make
	ln -sf $(LIBGDBDIR)/libgdb.a libgdb.a

dummy:

clean:
	rm -f *.[oa] build-prc obj-res pilrc txt2bitm *.bin
	cd $(PILRCDIR) ; make clean
	cd example ; make clean
	cd $(LIBCDIR) ; make clean
	cd $(LIBMDIR) ; make clean
	cd $(LIBGDBDIR) ; make clean
