makefile, чтобы сжать все папки в текущем каталоге

Я пытаюсь написать make-файл, который будет сжимать (zip) все папки в моем текущем рабочем каталоге. Что я получил так далеко, это:

SUBDIRS := $(wildcard */)
ZIPS := $(addsuffix .zip,$(subst /,,$(SUBDIRS)))
$(ZIPS) : %.zip : | %
    zip $@ $*/*
dist: $(ZIPS)

(из Makefile: создание zip-файлов из всех подпапок)

это, однако, генерирует только zip-файл первой папки в моем текущем рабочем каталоге (я хотел бы сгенерировать zip-файлы всех).

1 ответ

Просто нужно было добавить все: $(ZIPS) следующим образом:

print-%  : ; @echo $* = $($*)
SUBDIRS := $(wildcard */)
ZIPS := $(addsuffix .zip,$(subst /,,$(SUBDIRS)))
all: $(ZIPS)
$(ZIPS) : %.zip : | %
    zip $@ $*/*
dist: $(ZIPS)
Другие вопросы по тегам