App-Greple-tee
view release on metacpan or search on metacpan
docs/Makefile view on Meta::CPAN
.DELETE_ON_ERROR:
LANGS := DE EL ES ET FR ID JA KO NL RO RU TR ZH AR
RM_LANGS := JA KO ZH
IGNORE := VERSION AUTHOR LICENSE
ENGINES := deepl gpt5
#LANGS_deepl := DE EL ES ET FR ID JA KO NL RO RU TR ZH
LANGS_gpt5 := JA KO ZH
MOD_NAME := $(shell perl -MJSON -0777nE 'say decode_json($$_)->{name}' ../META.json)
MOD_PATH := ../lib/$(subst -,/,$(MOD_NAME)).pm
MOD_FILE := $(notdir $(MOD_PATH))
MOD_DIR := $(dir $(MOD_PATH))
MOD_NAME := $(MOD_FILE:.pm=)
SRC_DIR := src
ORIGIN := $(MOD_PATH)
PM := $(notdir $(ORIGIN))
POD := $(PM:.pm=.pod)
SRC := $(POD:%=$(if $(SRC_DIR),$(SRC_DIR)/,)%)
###########
$(foreach E,$(ENGINES),\
$(foreach L,$(LANGS_$E),\
$(eval PODS += $(SRC:.pod=.$E-$L.pod))\
$(eval MDS += $(PM:.pm=.$E-$L.md))\
$(eval READMES += $(if $(filter $L,$(RM_LANGS)),../README.$E-$L.md))\
))
###########
ALL := $(PODS) $(MDS) README.md $(READMES)
all: $(ALL)
ifdef SRC_DIR
$(SRC_DIR):
mkdir -p $(SRC_DIR)
endif
SRCPATH := $(if $(SRC_DIR),$(SRC_DIR)/,)
GREPLE := perl -I../lib -S greple
PODIFY := $(GREPLE) -Mperl --nocolor --le :pod
$(foreach mod,$(ORIGIN),$(eval \
$(SRCPATH)$(subst .pm,.pod,$(notdir $(mod))): $(mod) Makefile; $(PODIFY) $$< > $$@ \
))
XLATE := $(GREPLE) -Mxlate
XLATE += $(if $(XLATE_LABOR),--xlate-labor,--xlate)
XLATE += --xlate-cache=$(if $(XLATE_INIT),clear,yes)
XLATE += --match-podtext --xlate-format=none --all --need=0
MASKFILE=PATTERN_MASK
ifneq ($(wildcard $(MASKFILE)),)
XLATE += --xlate-setopt maskfile=$(MASKFILE)
endif
CONTEXTFILE=CONTEXT.md
ifneq ($(wildcard $(CONTEXTFILE)),)
XLATE += --xlate-context "$$(cat $(CONTEXTFILE))"
endif
ifdef IGNORE
$(foreach ignore,$(IGNORE),$(eval \
XLATE += --exclude '^=head\d[ ]+(?i:$(ignore))\b(?s:.*?)(?=^=|\z)'\
))
endif
deepl_JA_FORM ?= desumasu
deepl_JA_DICT := $(wildcard *.dict)
deepl_JA_FILTER := $(GREPLE) -Mperl -Msubst::desumasu \
$(if $(findstring $(deepl_JA_FORM).dict,$(deepl_JA_DICT)),--dict $(deepl_JA_FORM).dict) \
( run in 0.767 second using v1.01-cache-2.11-cpan-d7a12ab2c7f )