--- /dev/null
+L2E_DIRS := $(shell cd $(srcdir) && find * -type d)
+L2E_SRCS := $(shell cd $(srcdir)&& find * -type f -name '*.cpp')
+L2E_DEPS = $(L2E_SRCS:%.cpp=%.d)
+L2E_OBJS = $(L2E_SRCS:%.cpp=%.o)
+L2E_EXES = l2e
+
+L2E_FLAGS = $(sort $(strip \
+ $(SDL_FLAGS) \
+ $(SDL_IMG_FLAGS) \
+ ))
+L2E_LIBS = $(sort $(strip \
+ $(SDL_LIBS) \
+ $(SDL_IMG_LIBS) \
+ ))
+
+-include $(L2E_DEPS)
+
+$(L2E_OBJS): %.o: $(srcdir)/%.cpp
+ -@$(MKDIR) "$(@D)"
+ @echo "compile: $@"
+ $(VERBOSE) $(CXX) -c -o "$@" -MMD -MP -MF"$*.d" -MT"$@)" "$<" \
+ $(L2E_FLAGS) $(CPPFLAGS) $(CXXFLAGS)
+
+$(L2E_EXES): $(L2E_OBJS)
+ -@$(MKDIR) "$(@D)"
+ @echo "link: $@"
+ $(VERBOSE) $(CXX) -o "$@" $^ \
+ $(L2E_FLAGS) $(L2E_LIBS) $(LDFLAGS)
+
+l2e-all: $(L2E_EXES)
+
+l2e-clean:
+ $(VERBOSE) -$(RM) $(L2E_DEPS)
+ $(VERBOSE) -$(RM) $(L2E_OBJS)
+ $(VERBOSE) -$(RM) $(L2E_EXES)
+ $(VERBOSE) -$(RMDIR) $(L2E_DIRS)
+
+all: l2e-all
+clean: l2e-clean
+
+.PHONY: l2e-all l2e-clean
+
+-include $(BUILD)l2e-local.mk