# Project:   SSHProxy

TARGET	= sshproxy
RELEASE = 020

DEBUG_OBJECTS = memleak.o
RELEASE_OBJECTS = 
OBJECTS = $(RELEASE_OBJECTS)

#Unix:o.UnixLib 
LIBS	= C:o.stubs TCPIPLibs:o.socklib TCPIPLibs:o.inetlib \
	  TCPIPLibs:o.unixlib Desk:o.Normal  OSLib:o.OSLib32 proxy.o.app
#proxy.o.app C:o.stubs

INCLUDE = -IC: -IOSLib: -ITCPIPLibs: -IDesk:

RELEASE_DEFINES =  -D__swi
#-DMEMORY_BUG_WORKAROUND
DEBUG_DEFINES = -D__swi -DMEMORY_DEBUG

DEFINES = $(RELEASE_DEFINES)

# Toolflags:
CCFLAGS = -wd $(DEFINES) $(INCLUDE) -throwback -c
CPPFLAGS =
LINKFLAGS = -rescan
OBJASMFLAGS = -depend !Depend -Stamp -quit -CloseExec
CMHGFLAGS = 
LIBFILEFLAGS = -c -o $@
SQUEEZEFLAGS = -o $@
AASMFLAGS = -depend !Depend -quit -CloseExec -To $@ -From

OBJASM	=	objasm $(OBJASMFLAGS)
CC	=	cc $(CCFLAGS)
CPP	=	gcc $(CPPFLAGS)
LINK	=	link $(LINKFLAGS)
CMHG	=	cmhg $(CMHGFLAGS)
SQUEEZE =       squeeze -f

# Final targets:
all:		$(TARGET)

$(TARGET):	proxy putty bn buildmsg tcp_wrap $(OBJECTS) SSHSockW
		$(LINK) -o $@U $(LIBS) $(OBJECTS) proxy.proxy.o putty.putty.o bn.bn.o buildmsg.o tcp_wrap.tcp_wrap.o
		$(SQUEEZE) $(TARGET)U $(TARGET)
#

SSHSockW:	SWSrcTxt
		Basic -quit SWSrcTxt

proxy:	
		dir proxy
		amu -f MakeProxy DEFINES="$(DEFINES)"
		up

putty:	
		dir putty
		amu -f MakePuTTY DEFINES="$(DEFINES)"
		up

bn:	
		dir bn
		amu -f Makebn DEFINES="$(DEFINES)"
		up

tcp_wrap:	
		dir tcp_wrap
		amu -f Makefile DEFINES="$(DEFINES)"
		up

buildmsg:
		cdir o
		$(CC) buildmsg.c -o buildmsg.o
		

clean:
		rm $(OBJECTS) $(TARGET)
		dir proxy
		amu -f MakeProxy clean
		dir ^.putty
		amu -f MakePuTTY clean
		dir ^.tcp_wrap
		amu -f Makefile clean

release:	releasebin releasesrc

releasebin:	#$(TARGET)
		changedynamicarea -SpriteSize 1024K
		copy release.!SSHProxy mem:$.!SSHProxy ~c~vfr
		copy $(TARGET) mem:$.!SSHProxy.sshproxy ~c~vfr
		copy SSHSockW mem:$.!SSHProxy.SSHSockW ~c~vfr
		copy release.docs mem:$.docs ~c~vfr
		x delete release.$(RELEASE)-bin
		zip -rv9 release.sshprx-bin-$(RELEASE)/zip mem:$.!SSHProxy mem:$.docs

releasesrc:	
		changedynamicarea -SpriteSize 2048K
		cdir mem:$.sshproxy$(RELEASE)
		cdir mem:$.sshproxy$(RELEASE).o
		copy release.docs mem:$.sshproxy$(RELEASE).docs ~c~vfr
		copy bn mem:$.sshproxy$(RELEASE).bn ~c~vfr
		copy tcp_wrap mem:$.sshproxy$(RELEASE).tcp_wrap ~c~vfr
		copy putty mem:$.sshproxy$(RELEASE).putty ~c~vfr
		copy proxy mem:$.sshproxy$(RELEASE).proxy ~c~vfr
		copy c mem:$.sshproxy$(RELEASE).c ~c~vfr
		copy h mem:$.sshproxy$(RELEASE).h ~c~vfr
		copy cmhg mem:$.sshproxy$(RELEASE).cmhg ~c~vfr
		copy Makefile mem:$.sshproxy$(RELEASE).Makefile ~c~vfr
		copy notes mem:$.sshproxy$(RELEASE).notes ~c~vfr
		copy ToDo mem:$.sshproxy$(RELEASE).ToDo ~c~vfr
		copy SSHSockW mem:$.sshproxy$(RELEASE).SSHSockW ~c~vfr
		copy SWSrcTxt mem:$.sshproxy$(RELEASE).SWSrcTxt ~c~vfr
		x wipe mem:$.sshproxy$(RELEASE).bn.o.* ~c~vfr
		x wipe mem:$.sshproxy$(RELEASE).proxy.o.* ~c~vfr
		x wipe mem:$.sshproxy$(RELEASE).putty.o.* ~c~vfr
		x wipe mem:$.sshproxy$(RELEASE).tcp_wrap.o.* ~c~vfr
		x wipe mem:$.sshproxy$(RELEASE).tcp_wrap.tcpd* ~c~vfr
		x delete release.$(RELEASE)-src
		zip -rv9 release.sshprx-src-$(RELEASE)/zip mem:$.sshproxy$(RELEASE)


.SUFFIXES:	.o .s .c .c++ .cmhg
.c.o:
		cdir o
		$(CC) $< -o $@
.c++.o:
		cdir o
		$(CPP) -o $@ $<
.s.o:
		cdir o
		$(ASM) -from $< -to $@
.cmhg.o:
		cdir o
		$(CMHG) -o $@ $<



# Dynamic dependencies:
o.buildmsg:	c.buildmsg
o.buildmsg:	h.build
o.buildmsg:	h.buildcount
