bins += nr xd all: ${bins} nr_objs += main.o nr_objs += thread.o xd_objs += y.o $(foreach x,${bins},$(x):$($(x)_objs)) ${LD} ${LDFLAGS} -o $@ $^ %.o:%.cpp ${CXX} ${CXXFLAGS} -o $@ -c $< %.o:%.c ${CC} ${CFLAGS} -o $@ -c $< # Some scary ass voodoo... clean_objs += ${libs} ${bins} clean_objs += $(foreach x,${libs},$($(x)_libs)) clean_objs += $(foreach x,${bins},$($(x)_objs)) # Maintainence clean: ${RM} -f ${clean_objs}