#
# Makefile for VNC
#

CLIB = libscl
#CLIB = unixlib
CFLAGS = -c -O2 -DLOG -Izlib -IOSLib: -mthrowback -Wall
LDFLAGS = -o $@
ASMFLAGS = -c -mthrowback

# Note: use OSLib32 (32-bit compatible library, with APCS-32)
LIBS = OSLib:o.OSLib32 Zlib:zlib-$(CLIB)
OBJ = vncviewer.o sockets.o rfbproto.o ip.o d3des.o \
      vncauth.o display.o mcode.o antitwit.o cursor.o resolve.o

VNC: $(OBJ)
	%gcc -m$(CLIB) $(LDFLAGS) $(OBJ) $(LIBS)
	Squeeze -f -v VNC

VNC-unsq: $(OBJ)
	%gcc -m$(CLIB) $(LDFLAGS) $(OBJ) $(LIBS)

# Note: ARMalyser 0.40 needs the Data filetype (more logical, IMHO)
.c.o:
	%gcc -m$(CLIB) $(CFLAGS) $< -o $@
	SetType $(@:%.o=o.%) Data

.s.o:
	%gcc -m$(CLIB) $(ASMFLAGS) $< -o $@
	SetType $(@:%.o=o.%) Data

# Dynamic dependencies:
o.antitwit:   c.antitwit
o.cursor:     c.cursor h.rfbproto h.vncviewer
o.d3des:      c.d3des h.d3des
o.display:    c.display h.display h.rfbproto h.vncviewer h.mcode
o.ip:         c.ip h.ip
o.mcode:      s.mcode h.mcode
o.resolve:    c.resolve h.resolve
o.rfbproto:   c.rfbproto \
              c.rre16 c.corre16 c.hextile16 c.tight16 \
              c.rre8  c.corre8  c.hextile8 \
              h.rfbproto h.vncviewer h.display h.vncauth h.vnckeys \
              h.ip h.sockets
o.sockets:    c.sockets h.rfbproto h.vncviewer h.ip
o.vncauth:    c.vncauth h.d3des h.vncauth
o.vncviewer:  c.vncviewer h.rfbproto h.vncviewer h.display h.vnckeys \
              h.antitwit h.resolve
