# Last edited on 2002-01-18 10:29:59 by stolfi
# Makefile for tabulating frequencies of pairs of basic glyphs

all:
	for tw in t w; do \
	  ${MAKE} TW=$$tw -f glyph-pair-freqs.make single; \
	done

# Use precomputed word frequency table for the entire VMS.

LANG := voyn
BOOK := maj
SUBDIR :=  ${LANG}/${BOOK}/tot.1
SOURCE_WFR := ${SUBDIR}/gud.wfr
ROW_GLYPHS := _,-,q,-,y,l,-,r,s,-,n,m,-,i,a,-,o,-,d,-,e,Ch,Sh,-,k,t,-,f,p,-,CKh,CTh,CFh,CPh
COL_GLYPHS := _,-,q,-,e,d,s,a,o,y,Ch,Sh,-,i,-,l,r,-,m,n,-,k,t,f,p,-,CKh,CTh,CFh,CPh

OUT_PRF := ${SUBDIR}/glyph-pair

######################################################################
# Recursive make for tokens or words
# Caller must define ${TW} = "t" or "w"
#
TW := TW.IS.UNDEFINED
ifneq "${TW}" "TW.IS.UNDEFINED"

OUT_PRF_TW := ${OUT_PRF}-${TW}

GPF_TW := ${OUT_PRF_TW}.gpf
TEX_CTS_TW := ${OUT_PRF_TW}-counts.tex

single: single-counttbl single-freqtbls

single-counttbl: dat/${GPF_TW} dat/${TEX_CTS_TW}

single-freqtbls:
	${MAKE} TW=${TW} PN=next -f glyph-pair-freqs.make  freqtbl
	${MAKE} TW=${TW} PN=prev -f glyph-pair-freqs.make  freqtbl

dat/${GPF_TW}: dat/${SOURCE_WFR} \
            capitalize-ligatures \
            factor-field-general factor-text-eva-to-basic.gawk \
            count-elem-pairs parse-elem-list.gawk \
            compute-row-col-freqs \
            glyph-pair-freqs.make
	@echo "dat/${SOURCE_WFR} -> dat/${GPF_TW}"
	cat dat/${SOURCE_WFR} \
	  | capitalize-ligatures -v field=3 \
	  | factor-field-general \
              -f factor-text-eva-to-basic.gawk \
              -v inField=3 -v outField=4 \
	  | gawk -v tw="${TW}" '/./{ print (tw == "t" ? $$1 : 1), $$4; }'  \
	  | count-elem-pairs -f parse-elem-list.gawk \
	      -v endMarker='_' -v showBadWords=0 \
	      -v rowList="${ROW_GLYPHS}" -v colList="${COL_GLYPHS}" \
	  | compute-row-col-freqs -v outputTotals=1 \
	  > dat/${GPF_TW}

dat/${TEX_CTS_TW}: dat/${GPF_TW} \
            tex-format-elem-pair-freqs parse-elem-list.gawk \
            glyph-pair-freqs.make
	@echo "dat/${GPF_TW} -> dat/${TEX_CTS_TW}"
	cat dat/${GPF_TW} \
	  | tex-format-elem-pair-freqs -f parse-elem-list.gawk \
	      -v rowList="${ROW_GLYPHS}" \
              -v colList="${COL_GLYPHS},-,+" \
	      -v endMarker='_' -v minFreq=0.015 \
	      -v showCounts=1 \
	      -v showColFreqs=0 -v showRowFreqs=0 \
	  > dat/${TEX_CTS_TW}
	update-paper-include dat/${TEX_CTS_TW} exp/${TEX_CTS_TW}

######################################################################
# Recursive make for prev/next frequency tables.
# Caller must define ${TW} = "t" or "w"
# and ${PN} = "prev" or "next"
#
PN := PN.IS.UNDEFINED
ifneq "${PN}" "PN.IS.UNDEFINED"

OUT_PRF_TW_PN := ${OUT_PRF_TW}-${PN}
TEX_FRQ_TW_PN := ${OUT_PRF_TW_PN}-freqs.tex

freqtbl: dat/${TEX_FRQ_TW_PN}

dat/${TEX_FRQ_TW_PN}: dat/${GPF_TW} \
            tex-format-elem-pair-freqs parse-elem-list.gawk \
            glyph-pair-freqs.make
	@echo "dat/${GPF_TW} -> dat/${TEX_FRQ_TW_PN}"
ifeq "${PN}" "next"
	cat dat/${GPF_TW} \
	  | tex-format-elem-pair-freqs -f parse-elem-list.gawk \
	      -v rowList="${ROW_GLYPHS}" \
	      -v colList="`echo ${COL_GLYPHS} | sed -e 's/[,][-]//g'`" \
	      -v endMarker='_' -v minFreq=0.015 \
	      -v showCounts=0 \
	      -v showRowFreqs=1 -v showColFreqs=0 \
	  > dat/${TEX_FRQ_TW_PN}
endif
ifeq "${PN}" "prev"
	cat dat/${GPF_TW} \
	  | tex-format-elem-pair-freqs -f parse-elem-list.gawk \
	      -v rowList="`echo ${ROW_GLYPHS} | sed -e 's/[,][-]//g'`" \
              -v colList="${COL_GLYPHS}" \
	      -v endMarker='_' -v minFreq=0.015 \
	      -v showCounts=0 \
	      -v showRowFreqs=0 -v showColFreqs=1 \
	  > dat/${TEX_FRQ_TW_PN}
endif
	update-paper-include dat/${TEX_FRQ_TW_PN} exp/${TEX_FRQ_TW_PN}

endif
# End of ${PN} recursion
######################################################################

endif
# End of ${TW} recursion
######################################################################