#
# compiling the remote console applet
# 25.10.01 by Thomas Breitfeld, Peppercon AG
#
# rewritten Jul 2006 by Georg Hoesch, Peppercon AG
# 
# How does the build process currently work ?
# - all sources are in src
# - all binaries are in classes
# - subdirectories build a subset of classes
# - java packages 'belong' to exactly one subdirectory
# - main Makefile creates one jar from all classes (scrambled, signed)
#

default: all
	
TOP                  = .

include common.mk


ifeq ($(PP_FEAT_RDP),1)
SUBDIRS = rc rcrdp rcsoftkbd
else
SUBDIRS = rc rcsoftkbd
endif

ifeq ($(PP_FEAT_DRIVE_JAVA_REDIRECTION),1)
SUBDIRS += drvredir
endif

ifeq ($(PP_FEAT_SESSION_REDIRECTOR),1)
SUBDIRS += sara
endif

ifeq ($(PP_PRODUCT),ccf)
SUBDIRS += sara
endif

install:: all do_install
	

all clean install:: link_keystore
	# recurse into subdirectories, create/clean classes_plain
	for i in $(SUBDIRS) ; do \
		make -C $$i $@ || exit 1; \
	done
	
all:: $(APPLET_NAME).jar


clean::
	# delete jarfile
	rm -f $(APPLET_NAME).jar
	rm -f $(APPLET_NAME)_plain.jar
	rm -rf $(JAVA_CLASSDIR)
	rm -rf versions


$(APPLET_NAME).jar: FORCE
	# create jarfile from classes
	rm -f $(APPLET_NAME).jar
	rm -f $(APPLET_NAME)_plain.jar
	cd $(JAVA_CLASSDIR); $(JAR) cvf ../$(APPLET_NAME).jar *
ifeq ($(PP_BUILD_TYPE),final)
	# scramble jarfile
	mv $(APPLET_NAME).jar $(APPLET_NAME)_plain.jar
	$(JAVA) -classpath retroguard.jar RetroGuard $(APPLET_NAME)_plain.jar $(APPLET_NAME).jar script.rgs
	# sign jar
	$(JARSIGNER) -keystore keystore -storepass changeit \
	             -keypass $(PP_JARSIGNER_KEY_PWD) -verbose $(APPLET_NAME)_plain.jar $(KEYSTORE_ALIAS)
endif
	# sign jar
	$(JARSIGNER) -keystore keystore -storepass changeit \
	             -keypass $(PP_JARSIGNER_KEY_PWD) -verbose $(APPLET_NAME).jar $(KEYSTORE_ALIAS)

FORCE:

do_install:
	# create version number for jar
ifneq ($(PP_FEAT_IN_SDK), 1)
ifneq ($(PP_FW_TYPE), erla)
	# use rc_version for global applet
	if ! diff --brief $(APPLET_NAME).jar $(INSTALLDIR)/$(APPLET_NAME).jar ; then \
	    ./countJarVersion rc_version ; \
	fi
	./patchJarVersion rc_version \
	   $(INSTALLDIR)/../webpages/title_app.asp || exit 1
	./patchJarVersion rc_version \
	   $(OEM_TEMPLATEDIR)/webpages/title_app.asp || exit 1
endif
endif
	# same as install without dependencies
	install -d -m 755 $(INSTALLDIR)
	install    -m 644 $(APPLET_NAME).jar $(INSTALLDIR)
	

link_keystore:
	rm -f keystore
ifeq ($(INREPO),yes)
	ln -s $(OEMDIR)/keystore keystore
else
	ln -s keystore.sample keystore
endif

