######################################################################
## Filename:      Makefile
## Description:   
## Author:        Tage Stabell-Kuloe <tage@acm.org>
## 	
## 	Copyright University of Troms (Norway)
## 	See the file COPYING for details
######################################################################



KEEPER		= doorkeeper
KNOB		= doorknob

APPNAME 	= "Doorknob application"
APPID 		= "DKNB"

SSLEAYDIR	= ../../pilotSSLeay

#
# Compiler flags:
# ===============
#

CC		= gcc
CFLAGS		= -Wall -g 
CPPFLAGS	= -I. -I/usr/local/ssl/include 
LIBS		= -lcrypto 
LDFLAGS		= -L /usr/local/ssl/lib
DEBUGFLAGS	= -g		#set if debugging
#
# Cross Compiler flags
# ====================
#

XCC		= m68k-palmos-coff-gcc
XCFLAGS		= $(CFLAGS) $(DEBUGFLAGS)
XCPPFLAGS	= -I $(SSLEAYDIR)/include
XLIBS		= -L $(SSLEAYDIR)/shlib -lmd

#
# Pilot tools
#
BUILDPRC 	= build-prc
OBJRES 		= m68k-palmos-coff-obj-res
PILRC 		= pilrc

#
# Macros
#

KEEPERSRC= 	doorkeeper.c
KEEPEROBJS=	doorkeeper.o

KNOBSRC=	doorknob.c	
KNOBOBJS=	doorknob.o


# Make Rules:
# ===========
# We only go c->s when cross compiling
#
.c.o:
	$(CC) $(CFLAGS) $(CPPFLAGS) -c $<
.S.o:
	$(XCC) -c $<
.c.s:
	$(XCC) $(XCFLAGS) $<

#
# Targets
#

all: $(KEEPER) $(KNOB).prc

$(KEEPER): $(KEEPEROBJS) 
	$(CC) -o $@ $(CFLAGS) $(CPPFLAGS) $(KEEPEROBJS) $(LDFLAGS) $(LIBS)

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

#
# Dependency targets
#

#The program _before_ PRC'ing
$(KNOB): $(KNOBOBJS)
	$(XCC) -o $@ $(XCFLAGS) $(KNOBOBJS) $(XLIBS)

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

# We need all the .bin files, use a phony target
bin.res: $(KNOB).rcp $(KNOB).pbm
	$(PILRC) $(KNOB).rcp .
	touch bin.res

$(KNOBOBJS): $(KNOBSRC)
	$(XCC) $(XCFLAGS) $(XCPPFLAGS) -c $<
#
# Helpers
#
clean::
	rm -f $(KEEPEROBJS) $(KEEPER) $(KNOBOBJS) $(KNOB) $(KNOB).prc *.bin bin.res *.grc *.core

send:
	pilot-xfer -i $(KNOB).prc

#
# Dependencies
#
common.o: common.c common.h
code0001.$(KNOB).grc: code0000.$(KNOB).grc
data0000.$(KNOB).grc: code0000.$(KNOB).grc
pref0000.$(KNOB).grc: code0000.$(KNOB).grc
rloc0000.$(KNOB).grc: code0000.$(KNOB).grc

