14a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
24a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectLOCAL_PATH:= $(call my-dir)
33b86e1f2371f3bfb4b798d5c7671bf8ed79f5cafYing Wang########################################
44a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
54a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectcopy_from :=                     \
64a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    baseline11k.par              \
74a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    baseline8k.par               \
84a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    baseline.par                 \
94a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    dictionary/basic.ok          \
104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    dictionary/enroll.ok         \
114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    dictionary/cmu6plus.ok.zip   \
124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    g2p/en-US-ttp.data           \
134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    models/generic.swiarb        \
144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    models/generic11.lda         \
154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    models/generic11_f.swimdl    \
164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    models/generic11_m.swimdl    \
174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    models/generic8.lda          \
184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    models/generic8_f.swimdl     \
194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    models/generic8_m.swimdl     \
204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectcopy_to := $(addprefix $(TARGET_OUT)/usr/srec/config/en.us/,$(copy_from))
224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project$(copy_to) : $(TARGET_OUT)/usr/srec/config/en.us/% : $(LOCAL_PATH)/% | $(ACP)
244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project	$(transform-prebuilt-to-target)
254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
263b86e1f2371f3bfb4b798d5c7671bf8ed79f5cafYing Wang# ALL_PREBUILT is deprecated. Moved to config.mk
273b86e1f2371f3bfb4b798d5c7671bf8ed79f5cafYing Wang# ALL_PREBUILT += $(copy_to)
284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project# define paths to some grammar tools
314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectGRXML=$(HOST_OUT_EXECUTABLES)/grxmlcompile
324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectMAKE_G2G=$(HOST_OUT_EXECUTABLES)/make_g2g
334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectDEFAULT_PAR=$(ASR_ROOT_DIR)/config/en.us/baseline11k.par
344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectG2G_INSTALL_PATH=$(TARGET_OUT)/usr/srec/config/en.us/grammars
354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectsrec_grammars : \
374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project	$(G2G_INSTALL_PATH)/enroll.g2g \
384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project	$(G2G_INSTALL_PATH)/bothtags5.g2g \
394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project	$(G2G_INSTALL_PATH)/dynamic-test.g2g \
404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project	$(G2G_INSTALL_PATH)/digits.g2g \
414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project	$(G2G_INSTALL_PATH)/boolean.g2g \
424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project	$(G2G_INSTALL_PATH)/homonym_test1.g2g \
434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project	$(G2G_INSTALL_PATH)/homonym_test2.g2g \
444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project	$(G2G_INSTALL_PATH)/homonym_test3.g2g \
454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project	$(G2G_INSTALL_PATH)/homonym_test4.g2g \
464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project	$(G2G_INSTALL_PATH)/ipaq_commands.g2g \
474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project	$(G2G_INSTALL_PATH)/lookup.g2g \
484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
493b86e1f2371f3bfb4b798d5c7671bf8ed79f5cafYing Wang# ALL_PREBUILT is deprecated. Moved to config.mk
503b86e1f2371f3bfb4b798d5c7671bf8ed79f5cafYing Wang# ALL_PREBUILT += $(G2G_INSTALL_PATH)/VoiceDialer.g2g \
513b86e1f2371f3bfb4b798d5c7671bf8ed79f5cafYing Wang#	$(G2G_INSTALL_PATH)/boolean.g2g \
523b86e1f2371f3bfb4b798d5c7671bf8ed79f5cafYing Wang#	$(G2G_INSTALL_PATH)/phone_type_choice.g2g
534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#---------------------------------------------------------------------------------
554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project# Explicit rules.
564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project# Those without explicit rules are subject to the rule at the end of this makefile
574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#---------------------------------------------------------------------------------
584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project# This needs an explicit rule to specify the vocabulary (dictionary)
604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project$(G2G_INSTALL_PATH)/enroll.g2g: $(LOCAL_PATH)/grammars/enroll.grxml $(GRXML) $(MAKE_G2G) $(DEFAULT_PAR) $(LOCAL_PATH)/dictionary/enroll.ok
614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project	mkdir -p $(G2G_INSTALL_PATH)
624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project	$(GRXML) -par $(DEFAULT_PAR) -grxml $< -vocab dictionary/enroll.ok -outdir $(G2G_INSTALL_PATH)
634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project	$(MAKE_G2G) -base $(G2G_INSTALL_PATH)/enroll,addWords=0 -out $@
644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project	(cd $(G2G_INSTALL_PATH); rm -f $*.Grev2.det.txt $*.map $*.omap $*.P.txt $*.params $*.PCLG.txt $*.script)
654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#---------------------------------------------------------------------------------
684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project# Those without explicit rules are subject to the rule below
694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#---------------------------------------------------------------------------------
704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project$(G2G_INSTALL_PATH)/%.g2g: $(LOCAL_PATH)/grammars/%.grxml $(GRXML) $(MAKE_G2G) $(DEFAULT_PAR) $(LOCAL_PATH)/dictionary/cmu6plus.ok.zip
724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project	mkdir -p $(G2G_INSTALL_PATH)
734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project	$(GRXML) -par $(DEFAULT_PAR) -grxml $< -outdir $(G2G_INSTALL_PATH)
744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project	$(MAKE_G2G) -base $(G2G_INSTALL_PATH)/$*,addWords=0 -out $@
754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project	(cd $(G2G_INSTALL_PATH); rm -f $*.Grev2.det.txt $*.map $*.omap $*.P.txt $*.params $*.PCLG.txt $*.script)
764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#-----------------------------------------------------------------
784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project# this rule generates cmu6plus.ok.zip, which is built manually and checked in.
794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project# the grxml compiler expects this (and other) data files to be here.
804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project# $ g4 edit external/srec/config/en.us/dictionary/cmu6plus.ok.zip
814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project# $ make cmu6plus.ok.zip
824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#
834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project# To make the resulting zip as small as possible, install advzip from
844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project# the advancecomp suite of compression utilities.  (On ubuntu,
854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project# "apt-get install advancecomp".)  It makes the output about 10% smaller.
864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project# This make rule will fall back to 'zip' if 'advzip' is not
874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project# available.
884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#-----------------------------------------------------------------
894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectCMU2NUANCE=$(HOST_OUT_EXECUTABLES)/cmu2nuance
914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectDICT_DIR=$(ASR_ROOT_DIR)/config/en.us/dictionary
924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectcmu6plus.ok.zip: $(CMU2NUANCE) $(DICT_DIR)/c0.6 $(DICT_DIR)/numbers.ok $(DICT_DIR)/fixit.ok $(DICT_DIR)/enroll.ok
944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project	$(CMU2NUANCE) < $(DICT_DIR)/c0.6 > $(DICT_DIR)/c0.6.ok
954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project	sort -u $(DICT_DIR)/c0.6.ok $(DICT_DIR)/numbers.ok $(DICT_DIR)/fixit.ok $(DICT_DIR)/enroll.ok > $(DICT_DIR)/cmu6plus.ok
964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project	$(hide) (cd $(DICT_DIR)/ && advzip -a -4 cmu6plus.ok.zip cmu6plus.ok || \
974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project	 (zip cmu6plus.ok.zip cmu6plus.ok && \
984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project          echo -e "\n+++ advzip not installed; fell back to zip\n    cmu6plus.ok.zip (`du -h cmu6plus.ok.zip | cut -f 1`) could be ~10% smaller with advzip\n"))
994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#-----------------------------------------------------------------
1024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project# build cmu2nuance dictionary conversion program, to prevent bitrot
1034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#-----------------------------------------------------------------
1043b86e1f2371f3bfb4b798d5c7671bf8ed79f5cafYing Wanginclude $(CLEAR_VARS)
1053b86e1f2371f3bfb4b798d5c7671bf8ed79f5cafYing WangLOCAL_SRC_FILES := dictionary/cmu2nuance.cpp
1063b86e1f2371f3bfb4b798d5c7671bf8ed79f5cafYing WangLOCAL_MODULE := cmu2nuance
1073b86e1f2371f3bfb4b798d5c7671bf8ed79f5cafYing WangLOCAL_MODULE_TAGS := optional
1084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectinclude $(BUILD_HOST_EXECUTABLE)
110