PROGRAMS = server client server_OBJS = server.o server_priv.o server_access.o client_OBJS = client.o client_api.o client_mem.o # Everything after this is generic .PHONY: all all: $(PROGRAMS) define PROGRAM_template $(1): $$($(1)_OBJS) @echo sdffsx endef $(foreach prog,$(PROGRAMS),$(eval $(call PROGRAM_template,$(prog))))