ubrige:
make -j5 TARGET=unwired BOARD=$(BOARD)/$(CPU) -f makefiles/Makefile.$@
../bootloader/generate-metadata/generate-metadata $@.bin 0x0 0x01A00001 1
srec_cat firmware-metadata.bin -binary $@.bin -binary -offset 0x100 -o $@-ota-image.bin -binary
rm $@.hex
ubrige-fb: ubrige-CLEAN
../../tools/backdoor-bootloader.py -e -w -v ubrige-firmware.hex
ubrige-f: ubrige-CLEAN
/Applications/ti/Uniflash/flash_cc1310.sh ubrige-firmware.hex
ubrige-ota: ubrige
scp ubrige-ota-image.bin root@192.168.20.187:/root/unwired_smarthome
Нетрудно заметить, что там часто повторяется имя цели(в данном случае ubrige). Это имя проекта. Если я создаю новый проект, то мне приходится копировать эти четыре цели, а потом заменять ubrige на новое имя проекта. Шут бы с заменой, но мне не нравится, что в файле куча одинакового кода.
Для первой цели я нашел $@, перестало требоваться заменять все названия проекта в командах.
Но она не уменьшает количество кода — все равно для каждого проекта надо скопировать несколько целей. В примере выше содержимое ubrige, ubrige-fb, ubrige-f, ubrige-ota будет одно и то же для всех проектов, отличатся только названием ubrige.
Как мне избавится от дублирования кода, который одинаковый для нескольких целей, однако, отличается именами файлов(пусть имена файлов совпадают с названием целей)?