## Makefile for unpz

TARGET = pz
PRCNAME = unpz.prc
APPNAME = "unpz"
APPID = "UNPZ"

ZLIB_DIR = zlib-1.1.3
APP_CFLAGS = -I$(ZLIB_DIR) -DUNPZ

OBJS = $(TARGET).o db_list.o db_form.o arch_form.o db_info.o \
	read_form.o progress.o table.o util.o stream.o uncompress_db.o
LIBS = -L$(ZLIB_DIR) -lz

BITMAPS = unpz.pbitm watch.pbitm

CC = m68k-palmos-coff-gcc
ASMFLAGS = -Wall
CFLAGS = -Wall -Wmissing-prototypes -O2 $(APP_CFLAGS)
LDFLAGS = -Wall

PILRC = pilrc
OBJRES = m68k-palmos-coff-obj-res
BUILDPRC = build-prc
PILOTXFER = pilot-xfer

CPP = awk -F2 -f cpp.awk

all: $(PRCNAME)

../$(PRCNAME): $(PRCNAME)
	cp $(PRCNAME) ..

.S.o:
	$(CC) $(ASMFLAGS) -c $<

.c.o:
	$(CC) $(CFLAGS) -c $<

.c.s:
	$(CC) $(CFLAGS) -S $<

.cc.o:
	$(CC) $(CFLAGS) -c $<

.cc.s:
	$(CC) $(CFLAGS) -S $<

$(PRCNAME): code0000.$(TARGET).grc code0001.$(TARGET).grc data0000.$(TARGET).grc pref0000.$(TARGET).grc rloc0000.$(TARGET).grc bin.res
	$(BUILDPRC) $(PRCNAME) $(APPNAME) $(APPID) code0001.$(TARGET).grc code0000.$(TARGET).grc data0000.$(TARGET).grc *.bin pref0000.$(TARGET).grc rloc0000.$(TARGET).grc

code0000.$(TARGET).grc: $(TARGET)
	$(OBJRES) $(TARGET)

code0001.$(TARGET).grc: code0000.$(TARGET).grc

data0000.$(TARGET).grc: code0000.$(TARGET).grc

pref0000.$(TARGET).grc: code0000.$(TARGET).grc

rloc0000.$(TARGET).grc: code0000.$(TARGET).grc

$(TARGET): $(OBJS) $(ZLIB_DIR)/libz.a
	$(CC) $(LDFLAGS) $(OBJS) $(LIBS) -o $(TARGET)

$(CRT0):
	@rm -f $(CRT0); \
	 touch dummy.o; \
	 crt0=`$(CC) -v dummy.o 2>&1 | tr ' ' '\012' | grep '$(CRT0)$$'`; \
	 rm -f dummy.o; \
	 echo cp $$crt0 $(CRT0); \
	 cp $$crt0 $(CRT0)

$(ZLIB_DIR)/libz.a:
	cd $(ZLIB_DIR); $(MAKE)

bin.res: $(TARGET).rcp $(TARGET)_rcp.h $(BITMAPS) cpp.awk
	-rm -f *.bin bin.res
	$(CPP) < $(TARGET).rcp > $(TARGET)_.rcp
	$(CPP) < $(TARGET)_rcp.h > $(TARGET)_rcp_.h
	$(PILRC) $(TARGET)_.rcp .
	-rm -f $(TARGET)_.rcp $(TARGET)_rcp_.h
	# because PilRC ignores NOSAVEBEHIND of forms...
	echo -n ' ' | tr ' ' '\300' | dd bs=1 seek=42 conv=notrunc of=tFRM03e8.bin
	echo -n ' ' | tr ' ' '\300' | dd bs=1 seek=42 conv=notrunc of=tFRM044c.bin
	echo -n ' ' | tr ' ' '\300' | dd bs=1 seek=42 conv=notrunc of=tFRM05dc.bin
	# because PilRC doesn't support DEFAULTBUTTONID of alerts...
	echo -n ' ' | tr ' ' '\001' | dd bs=1 seek=7 conv=notrunc of=Talt044c.bin
	echo -n ' ' | tr ' ' '\001' | dd bs=1 seek=7 conv=notrunc of=Talt04b0.bin
	echo -n ' ' | tr ' ' '\001' | dd bs=1 seek=7 conv=notrunc of=Talt0514.bin
	echo -n ' ' | tr ' ' '\002' | dd bs=1 seek=7 conv=notrunc of=Talt0578.bin
	touch bin.res

send: $(PRCNAME)
	$(PILOTXFER) -i $(PRCNAME)

depend:
	makedepend -Y -I. *.c

clean:
	-rm -f *.o $(TARGET) *.grc *.bin bin.res

veryclean: clean
	-rm -f $(PRCNAME) pilot.ram pilot.scratch
	-rm -f *.h *.c *.rcp *.pbitm zlib-1.1.3

$(TARGET).h:
	ln -s ../callback.h
	ln -s ../$(TARGET).h

$(TARGET)_rcp.h:
	ln -s ../$(TARGET)_rcp.h

$(ZLIB_DIR)/zlib.h:
	ln -s ../$(ZLIB_DIR)

$(TARGET).c:
	ln -s ../$(TARGET).c

db_list.c:
	ln -s ../db_list.c

db_form.c:
	ln -s ../db_form.c

arch_form.c:
	ln -s ../arch_form.c

db_info.c:
	ln -s ../db_info.c

read_form.c:
	ln -s ../read_form.c

progress.c:
	ln -s ../progress.c

table.c:
	ln -s ../table.c

util.c:
	ln -s ../util.c

stream.c:
	ln -s ../stream.c

uncompress_db.c:
	ln -s ../uncompress_db.c

cpp.awk:
	ln -s ../cpp.awk

pz.rcp:
	ln -s ../pz.rcp

unpz.pbitm:
	ln -s ../unpz.pbitm

watch.pbitm:
	ln -s ../watch.pbitm

$(TARGET).o: $(TARGET).h $(TARGET)_rcp.h
db_list.o: $(TARGET).h
db_form.o: $(TARGET).h $(TARGET)_rcp.h
arch_form.o: $(TARGET).h $(TARGET)_rcp.h
db_info.o: $(TARGET).h $(TARGET)_rcp.h
read_form.o: $(TARGET).h $(TARGET)_rcp.h
progress.o: $(TARGET).h $(TARGET)_rcp.h
table.o: $(TARGET).h
util.o: $(TARGET).h
stream.o: $(TARGET).h
compress_db.o: $(TARGET).h $(ZLIB_DIR)/zlib.h
uncompress_db.o: $(TARGET).h $(ZLIB_DIR)/zlib.h
