Первое замечание: в этих списках файлов много избыточности:
C_SRCS += \
../Src/Tasks/BankWriteTask.c \
../Src/Tasks/CommTask.c \
../Src/Tasks/SrvTask.c \
../Src/Tasks/WatchdogTask.c
OBJS += \
./Src/Tasks/BankWriteTask.o \
./Src/Tasks/CommTask.o \
./Src/Tasks/SrvTask.o \
./Src/Tasks/WatchdogTask.o
C_DEPS += \
./Src/Tasks/BankWriteTask.d \
./Src/Tasks/CommTask.d \
./Src/Tasks/SrvTask.d \
./Src/Tasks/WatchdogTask.d
, которую вы можете уменьшить с помощью функции Make patsubst
:
NEW_C_SRCS := \
../Src/Tasks/BankWriteTask.c \
../Src/Tasks/CommTask.c \
../Src/Tasks/SrvTask.c \
../Src/Tasks/WatchdogTask.c
C_SRCS += $(NEW_C_SRCS)
OBJS += $(patsubst ../%.c,./%.o,$(NEW_C_SRCS))
C_DEPS += $(patsubst ../%.c,./%.d,$(NEW_C_SRCS))
И если четыре файла, перечисленные в C_SRCS
, являются единственными ".c" файлами в ../Src/
, вместо того, чтобы вводить их вручную в make-файл, вы можете сделать Make найти их автоматически с помощью подстановочной функции:
NEW_C_SRCS := $(wildcard ../Src/Tasks/*.c)
Тем не менее, подстановочные знаки могут работать в жестко контролируемом исходном дереве, подобном тому, которое вы, похоже, используете, но в противном случае это может вызвать головные боли;изменение одной строки в make-файле при добавлении или удалении исходного файла не представляет особой работы.