AUTHOR_CHECK_LOG = COD-check-authors.log BIBLIOGRAPHY_CHECK_LOG = COD-check-bibliography.log FORMULAE_CHECK_LOG = COD-check-formulae.log SYMMETRY_CHECK_LOG = COD-check-symmetry.log CIF_VALIDATE_LOGS = \ cif-validate-series1.log \ cif-validate-series2.log \ cif-validate-series4.log \ cif-validate-series5.log \ cif-validate-series7.log \ cif-validate-series8.log \ cif-validate-series9.log CIF_COD_CHECK_LOGS = \ ${AUTHOR_CHECK_LOG} \ ${BIBLIOGRAPHY_CHECK_LOG} \ ${FORMULAE_CHECK_LOG} \ ${SYMMETRY_CHECK_LOG} \ LOGS = \ ${CIF_COD_CHECK_LOGS} \ ${CIF_VALIDATE_LOGS} DATA_TABLES = cif-validate.dat cif-cod-check.dat CORE_DICT = ${HOME}/struct/CIF-dictionaries/cif_core.dic POWDER_DICT = ${HOME}/struct/CIF-dictionaries/cif_pd.dic COD_DICT = ../dictionaries/cif_cod.dic define cif_validate_with_options cif_validate \ --check all \ --check tag-exists-local- \ --check-values-enum-nocase \ --dict ${CORE_DICT} \ --dict ${POWDER_DICT} \ --dict ${COD_DICT} endef .PHONY: all all: ${LOGS} ${DATA_TABLES} ${AUTHOR_CHECK_LOG}: find .. -name \*.cif \ | xargs cif_cod_check --check-only-authors \ > $@ 2>&1 ${SYMMETRY_CHECK_LOG}: find .. -name \*.cif \ | xargs cif_cod_check --check-only-symmetry \ > $@ 2>&1 ${FORMULAE_CHECK_LOG}: find .. -name \*.cif \ | xargs cif_cod_check --check-only-chemical-formula \ > $@ 2>&1 ${BIBLIOGRAPHY_CHECK_LOG}: find .. -name \*.cif \ | xargs cif_cod_check --check-only-bibliography \ > $@ 2>&1 cif-validate-series%.log: ${DICT} find ../$* -name \*.cif \ | xargs -n1 -i \ sh -xc '${cif_validate_with_options} {}' \ > $@ 2>&1 cif-validate.dat: ${CIF_VALIDATE_LOGS} awk -F: 'BEGIN{OFS="\t"}/^\// { \ gsub("\t"," "); \ gsub("^ *| *$$","",$$3); \ sub(", ","\t",$$3); \ print substr($$2,30,7), $$1, NF==3?$$3:$$3":"$$4 \ }' $^ > $@ cif-cod-check.dat: ${CIF_COD_CHECK_LOGS} awk -F: 'BEGIN{OFS="\t"}/^\//{ \ gsub("\t"," "); \ gsub("^ *| *$$","",$$3); \ if( match($$3,"^(WARNING|NOTE|ERROR), (.*)$$", a) ) { \ print substr($$2,30,7), $$1, \ a[1], NF==3?a[2]:a[2]":"$$4 \ } else { \ print substr($$2,30,7), $$1, \ "WARNING", NF==3?$$3:$$3":"$$4 \ } \ }' $^ > $@ .PHONY: clean-author-log clean-symmetry-log clean-formulae-log clean-bibliography-log clean-author-log: rm -f ${AUTHOR_CHECK_LOG} clean-symmetry-log: rm -f ${SYMMETRY_CHECK_LOG} clean-formulae-log: rm -f ${FORMULAE_CHECK_LOG} clean-bibliography-log: rm -f ${BIBLIOGRAPHY_CHECK_LOG} .PHONY: clean cleanAll clean cleanAll: clean-author-log clean-symmetry-log clean-formulae-log \ clean-bibliography-log rm -f ${CIF_CODIFY_LOGS} rm -f ${CIF_VALIDATE_LOGS} rm -f ${DATA_TABLES}