Смесь переменных make, автоматических переменных make (например, $<
, $@
), функций make (например, addsuffix
, addprefix
) и правил шаблонов, может быть:
RHOST := https://github.com/OlafenwaMoses/ImageAI/releases/download/1.0/
H5STEM := squeezenet resnet50 inception_v3
H5 := $(addsuffix _weights_tf_dim_ordering_tf_kernels.h5,$(H5STEM))
H5LOCAL := $(addprefix $(EXTERNAL_MODELS_LOCAL)/,$(H5))
H5ROOT := $(addprefix $(EXTERNAL_MODELS_ROOT)/,$(H5))
.PHONY: install download
install: $(H5LOCAL)
download: $(H5ROOT)
$(EXTERNAL_MODELS_LOCAL)/%.h5: $(EXTERNAL_MODELS_ROOT)/%.h5
ln -s $< $@
$(EXTERNAL_MODELS_ROOT)/%.h5:
wget $(RHOST)/$*.h5 -O $@
И, конечно, если бы был способ автоматически обнаружить список удаленных файлов *.h5
, было бы еще лучше. Но для того, чтобы представить, как это сделать, требуется дополнительная информация (ssh
, curl
, wget
...?). Конечно, отправной точкой будет функция make shell
:
H5 := $(shell <the-command-that-lists-the-remote-h5-files>)