#
# Making the VNC applet.
#

CP = cp
JC= javac
JCFLAGS = -target 1.4 -source 1.4 -classpath /usr/lib/jvm/java-6-sun/jre/lib/plugin.jar
JAR = jar
ARCHIVE = VncViewer.jar
SIGNEDARCHIVE = SignedVncViewer.jar
MANIFEST = MANIFEST.MF
PAGES = index.vnc
INSTALL_DIR = /usr/local/vnc/classes

CLASSES = VncViewer*.class RfbProto.class AuthPanel.class VncCanvas.class \
	  OptionsFrame.class ClipboardFrame.class ButtonPanel.class \
	  DesCipher.class CapabilityInfo.class CapsContainer.class \
	  RecordingFrame.class SessionRecorder.class AuthUnixLoginPanel.class \
	  SocketFactory.class HTTPConnectSocketFactory.class \
	  HTTPConnectSocket.class ReloginPanel.class \
	  ImageLabel.class MultiLabel.class \
	  BrowserCertsDialog.class CertInfo.class ProxyDialog.class \
	  InStream.class MemInStream.class ZlibInStream.class

SSL_CLASSES = SSLSocketToMe*.class TrustDialog.class

# alert_large.gif
ICONS = icons/alert_large.gif

SOURCES = VncViewer.java RfbProto.java AuthPanel.java VncCanvas.java \
	  OptionsFrame.java ClipboardFrame.java ButtonPanel.java \
	  DesCipher.java CapabilityInfo.java CapsContainer.java \
	  RecordingFrame.java SessionRecorder.java AuthUnixLoginPanel.java \
	  SocketFactory.java HTTPConnectSocketFactory.java \
	  HTTPConnectSocket.java ReloginPanel.java \
	  ImageLabel.java MultiLabel.java \
	  SSLSocketToMe.java \
	  InStream.java MemInStream.java ZlibInStream.java

all: icons/alert_large.gif $(ARCHIVE) $(SIGNEDARCHIVE)

icons/alert_large.gif: icons/alert_large.gif.uue
	(cd icons; uudecode alert_large.gif.uue)


# More information about creating signed applets can be found at:
# http://search.thawte.com/thawte/documentDisplay.do?clusterName=DefaultCluster&preview=1&groupId=1&page=null&docType=1006&resultType=5002&docProp=$solution_id&docPropValue=vs9834
# http://java.sun.com/j2se/1.4.2/docs/guide/plugin/developer_guide/rsa_signing.html
#
sign: $(SIGNEDARCHIVE)

$(SIGNEDARCHIVE): $(ARCHIVE)
	cp $(ARCHIVE) $(SIGNEDARCHIVE)
	jarsigner $(SIGNEDARCHIVE) self

$(CLASSES): $(SOURCES)
	$(JC) $(JCFLAGS) -O $(SOURCES)

$(ARCHIVE): $(CLASSES) $(MANIFEST)
	$(JAR) cfm $(ARCHIVE) $(MANIFEST) $(CLASSES) $(SSL_CLASSES) $(ICONS)

install: $(CLASSES) $(ARCHIVE)
	$(CP) $(CLASSES) $(SSL_CLASSES) $(ARCHIVE) $(SIGNEDARCHIVE) $(PAGES) $(INSTALL_DIR)

export:: $(CLASSES) $(ARCHIVE) $(PAGES)
	@$(ExportJavaClasses)

clean::
	$(RM) *.class *.jar icons/alert_large.gif
