include ../Config.mk
include languages.mk

POFILEEXT	= .po
POTFILEEXT	= .pot
MOFILEEXT	= .mo
JAVAFILEEXT	= .java
JARFILEEXT	= .jar
TEMPLATEFILES	= *.pot
TEMPLATEFILE	= erla_all$(POTFILEEXT)
TRANSLATEFILE	= erla$(MOFILEEXT)
MESSAGESDIR	= LC_MESSAGES

MSGCAT		= msgcat
MSGCATFLAGS	= --force-po --use-first -t UTF-8
MSGMERGE	= msgmerge
MSGMERGEFLAGS	= -N
MSGCVSMERGEFLAGS= -N --update
MSGFMT		= msgfmt
MSGFMTFLAGS	=
MSGFMTJAVAFLAGS	= -j -d java_$$lang -l $$lang -r nn.pp.rclang.Lang
MSGGREP		= msggrep
MSGGREPFLAGS	= --force-po
MSGGREPSEARCH	= -N nn/pp/*/*.java

JAVAC		= $(PP_JAVA_HOME)/bin/javac
JAR		= $(PP_JAVA_HOME)/bin/jar
JARTARGET	= rclang_$$lang$(JARFILEEXT)
JARSIGNER	= $(PP_JAVA_HOME)/bin/jarsigner
WEBINSTALLDIR	= $(DESTDIR)/lib/webpages
APPLETDIR	= $(FW_TOPDIR)/eric_applet
KEYSTORE_ALIAS	= $(shell cat $(OEMDIR)/keystore_alias)

FLASHDISK_FILE  = i18n_flashdisk_files.tgz
SDK_TEMPLATE_FILE   = i18n_template.tgz

ifeq ($(PP_BUILD_TYPE),final)
ifeq ($(PP_FEAT_I18N_TO_FLASHDISK), 1)
DO_BUILD_I18N_TO_FLASHDISK = 1
endif
endif

TARGETS = template mofiles 
ifeq ($(PP_FEAT_REMOTE_CONSOLE), 1)
TARGETS += jarfiles
endif # PP_FEAT_REMOTE_CONSOLE
ifeq ($(DO_BUILD_I18N_TO_FLASHDISK), 1)
TARGETS += tarfiles
endif # DO_BUILD_I18N_TO_FLASHDISK

INSTALL_TARGETS = 
ifeq ($(DO_BUILD_I18N_TO_FLASHDISK), 1)
INSTALL_TARGETS += tarinstall
else # DO_BUILD_I18N_TO_FLASHDISK
INSTALL_TARGETS += moinstall
ifeq ($(PP_FEAT_REMOTE_CONSOLE), 1)
INSTALL_TARGETS += jarinstall
endif # PP_FEAT_REMOTE_CONSOLE
endif # DO_BUILD_I18N_TO_FLASHDISK


default:	all



clean:
	rm -f $(TEMPLATEFILE)
	rm -f *.jar
	for l in $(JARLANGUAGES); do rm -rf java_$$l; done
	rm -f $(FLASHDISK_FILE) $(SDK_TEMPLATE_FILE)


template:
	$(MSGCAT) $(MSGCATFLAGS) -o $(TEMPLATEFILE) $(TEMPLATEFILES)

mofiles:
	for lang in $(LANGUAGES); do                                          \
	  if [ -e $$lang$(POFILEEXT) ]; then                                  \
	    cp -f $$lang$(POFILEEXT) $$lang.full$(POFILEEXT);                 \
	  fi; \
	  if [ ! -e $$lang$(POFILEEXT) ]; then                                \
	    cp -f $$lang.cvs$(POFILEEXT) $$lang.full$(POFILEEXT);             \
	    cp -f $$lang.cvs$(POFILEEXT) $$lang$(POFILEEXT);                  \
	  fi; \
	    $(MSGMERGE) $(MSGMERGEFLAGS) --no-location                        \
	        -U $$lang$(POFILEEXT) -C $$lang.cvs$(POFILEEXT) $(TEMPLATEFILE);                        \
	    $(MSGMERGE) $(MSGMERGEFLAGS)                                      \
	        -U $$lang.full$(POFILEEXT) $(TEMPLATEFILE);                   \
	    $(MSGFMT) $(MSGFMTFLAGS) -o $$lang$(MOFILEEXT)                    \
	        $$lang$(POFILEEXT);                                           \
	    cp -f $$lang.cvs$(POFILEEXT) $$lang.cvs.tmp$(POFILEEXT);          \
	    cp -f $$lang.cvs$(POFILEEXT) $$lang.cvs.new$(POFILEEXT);          \
            $(MSGMERGE) $(MSGCVSMERGEFLAGS) --no-location $$lang.cvs.tmp$(POFILEEXT) $$lang.full$(POFILEEXT);          \
            $(MSGMERGE) $(MSGCVSMERGEFLAGS) --no-location $$lang.cvs.new$(POFILEEXT) $$lang.cvs.tmp$(POFILEEXT);          \
            rm $$lang.cvs.tmp$(POFILEEXT);          \
	done

jarfiles:
	for lang in $(DUMMYLANGUAGES); do                                     \
	    cp -f $$lang$(POFILEEXT) $$lang.full$(POFILEEXT);                 \
	done
	for lang in $(JARLANGUAGES); do                                       \
	    $(MSGGREP) $(MSGGREPFLAGS) $(MSGGREPSEARCH)                       \
	        -o $$lang$(JAVAFILEEXT)$(POFILEEXT) $$lang.full$(POFILEEXT);  \
	    mkdir -p java_$$lang;                                             \
	    JAVAC=$(JAVAC) $(MSGFMT) $(MSGFMTFLAGS) $(MSGFMTJAVAFLAGS)                       \
	        $$lang$(JAVAFILEEXT)$(POFILEEXT);                             \
	    cd java_$$lang;                                                   \
	    $(JAR) cvf ../$(JARTARGET) *;                                     \
	    cd ..;                                                            \
	done

tarfiles:
	echo building tarfiles
	final_files="";                                                       \
	tmpl_files="";                                                        \
	for lang in $(LANGUAGES); do                                          \
	    if [ -e $$lang$(MOFILEEXT) ]; then                                \
	        final_files="$$final_files $$lang$(MOFILEEXT)";               \
	    fi;                                                               \
	done;                                                                 \
	for lang in $(JARLANGUAGES); do                                       \
	    if [ -e $(JARTARGET) ]; then                                      \
	        final_files="$$final_files $(JARTARGET)";                     \
	    fi;                                                               \
	done;                                                                 \
	                                                                      \
	tmpl_files=$$final_files;                                             \
	tmpl_files="$$tmpl_files en.po $(TEMPLATEFILE)";                      \
	for lang in $(LANGUAGES); do                                          \
	    if [ -e $$lang.full$(POFILEEXT) ]; then                           \
	        tmpl_files="$$tmpl_files $$lang.full$(POFILEEXT)";            \
	    fi;                                                               \
	done;                                                                 \
                                                                              \
	tar -cvhzf $(FLASHDISK_FILE) $$final_files;                           \
	tar -cvhzf $(SDK_TEMPLATE_FILE) $$tmpl_files
	

all:	$(TARGETS)



moinstall:
	for lang in $(LANGUAGES); do                                          \
	    install -d -m 755 $(DESTDIR)$(TRANSLATIONDIR);                    \
	    install -d -m 755 $(DESTDIR)$(TRANSLATIONDIR)/$$lang;             \
	    install -d -m 755                                                 \
	        $(DESTDIR)$(TRANSLATIONDIR)/$$lang/$(MESSAGESDIR);            \
	    install -m 755 $$lang$(MOFILEEXT)                                 \
	        $(DESTDIR)$(TRANSLATIONDIR)/$$lang/$(MESSAGESDIR)/$(TRANSLATEFILE); \
	done

jarinstall:
	install -d -m 755 $(WEBINSTALLDIR)
ifneq ($(PP_FEAT_IN_SDK), 1)
	$(APPLETDIR)/countJarVersion rclang_version;
	$(APPLETDIR)/patchJarVersion rclang_version \
	    $(WEBINSTALLDIR)/../webpages/title_app.asp || exit 1;
	$(APPLETDIR)/patchJarVersion rclang_version \
	    $(OEM_TEMPLATEDIR)/webpages/title_app.asp || exit 1;
	for lang in $(JARLANGUAGES); do                                       \
	    install -m 644 $(JARTARGET) $(WEBINSTALLDIR);                     \
	    $(JARSIGNER) -keystore $(APPLETDIR)/keystore                      \
	        -storepass changeit -keypass cellcore -verbose                \
	        $(WEBINSTALLDIR)/$(JARTARGET) $(KEYSTORE_ALIAS);              \
	done
endif

tarinstall:
	cp -f $(FLASHDISK_FILE) $(SDK_TEMPLATE_FILE) $(FW_TOPDIR)/mkfirmware/

install:	all $(INSTALL_TARGETS)
