# Last edited on 2026-07-22 07:51:34 by stolfi SHELL := /bin/bash .PHONY: all: echo "make what?" 1>&2 BANKBIN := ${STOLFIHOME}/projects/langbank/tools HOMEBIN := ${STOLFIHOME}/bin ###################################################################### # ${LANG} and ${BOOK} part # ifneq "/${LANG}" "/" ifneq "/${BOOK}" "/" ORG_DIR := dat/${LANG}/${BOOK}/org SRC_FILE := ${ORG_DIR}/main.src ORG_WDS_FILE := ${ORG_DIR}/main.wds # Sections of this sample: SECTIONS := ${shell cat dat/${LANG}/${BOOK}/sections-ok.tags } ${ORG_WDS_FILE}: ${SRC_FILE} ${ORG_DIR}/Makefile \ ${BANKBIN}/expand_includes.gawk \ ${BANKBIN}/src_to_wds.gawk echo "recreating ${ORG_WDS_FILE}} ..." 1>&2 ( cd ${ORG_DIR} && make main.wds ) ###################################################################### # ${SEC} part of ${LANG}/${BOOK} # ifneq "/${SEC}" "/" SEC_WORD_MAP_FILE := dat/${LANG}/${BOOK}/${SEC}/word_map.tbl SEC_WORD_MAP_MAKE := dat/${LANG}/${BOOK}/${SEC}/word_map.make ifeq "/${wildcard ${SEC_WORD_MAP_MAKE}}" "/${SEC_WORD_MAP_MAKE}" ${SEC_WORD_MAP_FILE}: ${SEC_WORD_MAP_MAKE} echo "creating ${SEC_WORD_MAP_FILE} from ${SEC_WORD_MAP_MAKE} ..." 1>&2 ( cd dat/${LANG}/${BOOK}/${SEC} && make -f word_map.make word_map.tbl ) 1>&2 else BOOK_WORD_MAP_FILE := dat/${LANG}/${BOOK}/word_map.tbl ${SEC_WORD_MAP_FILE}: ${BOOK_WORD_MAP_FILE} echo "linking ${SEC_WORD_MAP_FILE} ..." 1>&2 ( cd dat/${LANG}/${BOOK}/${SEC} && ln -s ../word_map.tbl ) endif BOOK_SAMPLE_FNS := dat/${LANG}/${BOOK}/sample_fns.gawk SEC_SAMPLE_FNS := dat/${LANG}/${BOOK}/${SEC}/sample_fns.gawk ${SEC_SAMPLE_FNS}: ${BOOK_SAMPLE_FNS} echo "linking ${SEC_SAMPLE_FNS} ..." 1>&2 ( cd dat/${LANG}/${BOOK}/${SEC} && ln -s ../sample_fns.gawk ) ###################################################################### # ${SIZEOPT} must be "whole" or "trunc" # ifeq "/${filter ${SIZEOPT}, trunc whole}" "/${SIZEOPT}" RAW_TLW_FILE := dat/${LANG}/${BOOK}/${SEC}/${SIZEOPT}/raw.tlw GUD_TLW_FILE := dat/${LANG}/${BOOK}/${SEC}/${SIZEOPT}/gud.tlw BAD_TLW_FILE := dat/${LANG}/${BOOK}/${SEC}/${SIZEOPT}/bad.tlw RAWSIZE := ${shell get_sample_section_raw_size.sh ${LANG}/${BOOK}/${SEC} ${SIZEOPT} } # Sections to make the hard way: ifeq "/${SECTIONS}" "/" SECTIONS_TO_MAKE := tot.1 else SECTIONS_TO_MAKE := ${SECTIONS} endif ifeq "/${filter ${SEC}, ${SECTIONS_TO_MAKE}}" "/${SEC}" # Make the raw.tlw file the hard way: ${RAW_TLW_FILE}: ${ORG_WDS_FILE} \ ${SEC_SAMPLE_FNS} \ ${SEC_WORD_MAP_FILE} \ get_sample_section_raw_size.sh \ get_sample_section_attrs.sh \ wds_to_tlw.gawk echo "extracting ${RAW_TLW_FILE} from ${ORG_WDS_FILE} ..." 1>&2 cat ${ORG_WDS_FILE} \ | wds_to_tlw.gawk \ -i ${SEC_SAMPLE_FNS} \ -v table=${SEC_WORD_MAP_FILE} \ -v lang=${LANG} -v book=${BOOK} -v sec=${SEC} \ -v maxAlpha=${RAWSIZE} \ > ${RAW_TLW_FILE} else ifeq "/${SEC}" "/tot.1" # Merge the other sections. OTHER_TLW_FILES := \ ${addprefix dat/${LANG}/${BOOK}/, \ ${addsuffix /${SIZEOPT}/raw.tlw, \ ${SECTIONS} \ } \ } ${RAW_TLW_FILE}: merge_tlw_files.sh \ ${OTHER_TLW_FILES} echo "creating ${RAW_TLW_FILE} as merge of other \"raw.tlw\" files ..." 1>&2 echo "${OTHER_TLW_FILES}" | tr ' ' '\012' | sed -e 's:^: :g' 1>&2 merge_tlw_files.sh ${RAWSIZE} ${OTHER_TLW_FILES} > ${RAW_TLW_FILE} endif endif ${GUD_TLW_FILE}: ${RAW_TLW_FILE} echo "creating ${GUD_TLW_FILE} ..." 1>&2 cat ${RAW_TLW_FILE} \ | gawk ' ($$1 == "a") { print } ' \ > ${GUD_TLW_FILE} ${BAD_TLW_FILE}: ${RAW_TLW_FILE} echo "creating ${BAD_TLW_FILE} ..." 1>&2 cat ${RAW_TLW_FILE} \ | gawk ' ($$1 != "a") { print } ' \ > ${BAD_TLW_FILE} ###################################################################### # ${KIND} must be "raw","gud", or "bad". # ifeq "/${filter ${KIND}, raw gud bad}" "/${KIND}" TLW_FILE := dat/${LANG}/${BOOK}/${SEC}/${SIZEOPT}/${KIND}.tlw WDF_FILE := dat/${LANG}/${BOOK}/${SEC}/${SIZEOPT}/${KIND}.wdf WFR_FILE := dat/${LANG}/${BOOK}/${SEC}/${SIZEOPT}/${KIND}.wfr TEX_SUMM_FILE := dat/${LANG}/${BOOK}/${SEC}/${SIZEOPT}/${KIND}-wds-summary.tex TEX_INCL_FILE := tex/${LANG}/${BOOK}/${SEC}/${SIZEOPT}/${KIND}-wds-summary.tex ${WDF_FILE}: ${TLW_FILE} \ format_words_filled.sh echo "creating ${WDF_FILE} ..." 1>&2 cat ${TLW_FILE} \ | gawk ' /^ *([#]|$$)/ { next; } // { print $$3; } ' \ | format_words_filled.sh -v width=72 \ > ${WDF_FILE} echo " sample:" 1>&2 head -n 20 ${WDF_FILE} | sed -e 's:^: :g' 1>&2 echo " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ." 1>&2 tail -n 3 ${WDF_FILE} | sed -e 's:^: :g' 1>&2 ${WFR_FILE}: ${TLW_FILE} \ compute_freqs.gawk echo "creating ${WFR_FILE} ..." 1>&2 cat ${TLW_FILE} \ | gawk '// { print $$3; }' \ | sort | uniq -c | expand \ | sort -b -k1nr -k2 \ | compute_freqs.gawk \ > ${WFR_FILE} echo " the 10 most common lexemes in ${TLW_FILE}:" 1>&2 head -10 ${WFR_FILE} | sed -e 's:^: :g' 1>&2 ${TEX_SUMM_FILE}: ${TLW_FILE} \ make_smpsec_sizeopt_kind_wds_summary_tex_file.sh echo "creating ${TEX_SUMM_FILE} ..." 1>&2 make_smpsec_sizeopt_kind_wds_summary_tex_file.sh \ ${LANG}/${BOOK}/${SEC} ${SIZEOPT} ${KIND} > ${TEX_SUMM_FILE} cat ${TEX_SUMM_FILE} | sed -e 's:^: :g' 1>&2 update_paper_include.sh ${TEX_SUMM_FILE} ${TEX_INCL_FILE} \ | sed -e 's:^: :g' 1>&2 clean: rm -fv dat/${LANG}/${BOOK}/${SEC}/${SIZEOPT}/${KIND}{.tlw,.wdf,.wfr,-wds-summary.tex} endif # ${KIND} ###################################################################### endif # ${SIZEOPT} ###################################################################### endif # ${SEC} ###################################################################### endif # ${BOOK} endif # ${LANG} ######################################################################