-#########################
-sp := $(sp).x
-dirstack_$(sp) := $(d)
-d := $(dir)
-#########################
-
#
# Define rules and targets for libmoof.
#
-OBJECTS_$(d) := $(patsubst %.c,%.o,$(wildcard $(d)/*.c)) \
- $(patsubst %.cc,%.o,$(wildcard $(d)/*.cc))
-D_FILES_$(d) := $(OBJECTS_$(d):%=%.d)
-
-LIBRARY_$(d) := $(d)/libmoof.a
-
-CLEAN := $(CLEAN) $(OBJECTS_$(d)) $(D_FILES_$(d)) $(LIBRARY_$(d))
-
-$(OBJECTS_$(d)): CF_TGT := -I$(d) -I$(d)/..
-$(OBJECTS_$(d)): $(d)/rules.mk
-
-$(LIBRARY_$(d)): $(OBJECTS_$(d))
- $(DO_AR)
+objects = $(patsubst %.c,$(builddir)/%.o,$(patsubst %.cc,$(builddir)/%.o,$(wildcard $d/*.c $d/*.cc)))
+$(objects): TGT_CFLAGS := -I$d -I$d/..
+$(objects): config.h $(this) | $b
+library = $b/libmoof.a
+$(library): $(objects)
+ $(Q)$(ar)
-########################
--include $(D_FILES_$(d))
-d := $(dirstack_$(sp))
-sp := $(basename $(sp))
-########################
+exec += $(objects) $(library)