В моем проекте, у меня есть набор программ, которые строят из источников:марка: автоматическое выполнение целевых
SRC_FILES = $(wildcard $(SRC_DIR)/*.cpp)
TARGETS = $(patsubst $(SRC_DIR)/%.cpp,$(BIN_DIR)/%,$(SRC_FILES))
Моя цель сборки проста и работает отлично:
all: $(TARGETS)
@echo "- Done target [email protected]"
сейчас , Я хочу цель run
, чтобы все эти программы запускались из оболочки по запросу. Скажем, если у меня есть 3 файлов, я хочу сделать для автоматического запуска:
>$ ./test1
>$ ./test2
>$ ./test3
Или
>$ ./test1 && ./test2 && ./test3
Я попытался это:
run: $(TARGETS)
$(addsuffix && ,$(TARGETS))
Это порождает следующую команду:
./test1&& ./test2&&
но это не удается из-за след ING &&
(Конечно, я хочу, чтобы они были сгенерированы автоматически, так как может быть 3 ... или 30.)
Edit: собственно, &&
разделитель не требуется, так что-то вроде этого :
>$ ./test1; ./test2; ./test3;
будет хорошо.
Для записи, кроме ответов ниже, '$ (addsuffix;, $ (TARGETS))' тоже выполняет задание. – kebs