Единственное, что я хотел бы сделать, - это полагаться на правила по умолчанию.Итак, если вы просто напишите:
CFLAGS := -ggdb -Wall -pthread -std=c89
CPPFLAGS := -DLINUX
LOADLIBES := -lpthread
CC := gcc
all: svr clt
svr: $(SVR_OBJECTS)
clt: $(CLT_OBJECTS)
...snip...
без явного написания правила для svr, то (gnumake) сгенерирует правильное правило.Тем не менее, это не может быть портативным для всех различных ароматов.Если это проблема, вам гораздо лучше использовать automake.(Другими словами, не беспокойтесь о переносимости Make, если вы не обязаны, но если вам нужно, вы не хотите писать свой Makefile вручную.) Обратите внимание, что вы должны использовать LOADLIBES вместо LIBS, чтобы заставить работать правило по умолчаниюдля тебя.