.SECONDEXPANSION:
$(PROGRAMS): $$(patsubst %.c,.%.o,$$($$@_SOURCES)) Makefile
$(CC) -o $@ $(CFLAGS) $(filter %.o,$^) $(LDFLAGS) $($@_LIBADD) $(filter %.a,$^)
.SECONDEXPANSION:
$(PROGRAMS): $$(patsubst %.c,.%.o,$$($$@_SOURCES)) Makefile
$(CC) -o $@ $(CFLAGS) $(filter %.o,$^) $(LDFLAGS) $($@_LIBADD) $(filter %.a,$^)