--- /dev/null
+
+#
+# Yoink
+# Use this file with make to compile and install Yoink.
+#
+# This makefile supports these targets:
+# all, install, clean, cleandist, run, debug
+#
+# This build system incorporates the ideas written by Emile van Bergen:
+# http://www.xs4all.nl/~evbergen/nonrecursive-make.html
+#
+
+#
+# Define some options.
+#
+
+# Set this to `yes' to echo each build command.
+verbose := no
+
+
+#
+# Include the configuration file, config.mk.
+#
+
+have_config := $(wildcard config.mk)
+ifneq ($(strip $(have_config)),)
+include config.mk
+else
+no_config:
+ @echo "You must run the configure script before you can make anything."
+ @exit 1
+endif
+
+
+#
+# Some standard stuff.
+#
+
+.SUFFIXES:
+.SUFFIXES: .a .c .cc .cpp .o .rc
+
+all: targets
+
+
+#
+# Include the subdirectories--order is not important.
+#
+
+dir := src
+include $(dir)/rules.mk
+
+dir := data
+include $(dir)/rules.mk
+
+dir := doc
+include $(dir)/rules.mk
+
+
+#
+# Define some common rules.
+#
+
+CC_WRAPPER = ./build/compile.sh $(CC)
+CXX_WRAPPER = ./build/compile.sh $(CXX)
+
+ifeq ($(verbose),no)
+DO_CC = @echo " CC $@";
+DO_CXX = @echo " CXX $@";
+DO_LD = @echo " LD $@";
+DO_LDX = @echo " LD $@";
+DO_CCLD = @echo " CCLD $@";
+DO_CXXLD = @echo " CXXLD $@";
+DO_AR = @echo " AR $@";
+DO_RC = @echo " RC $@";
+endif
+
+DO_CC += $(CC_WRAPPER) $(CFLAGS) $(CF_TGT) -o $@ -c $<
+DO_CXX += $(CXX_WRAPPER) $(CXXFLAGS) $(CF_TGT) -o $@ -c $<
+DO_LD += $(CC_WRAPPER) $(LDFLAGS) $(LF_TGT) -o $@ $^ $(LL_TGT) $(LIBS)
+DO_LDX += $(CXX_WRAPPER) $(LDFLAGS) $(LF_TGT) -o $@ $^ $(LL_TGT) $(LIBS)
+DO_CCLD += $(CC_WRAPPER) $(CFLAGS) $(CF_TGT) $(LDFLAGS) $(LF_TGT) -o $@ $< $(LL_TGT) $(LIBS)
+DO_CXXLD += $(CXX_WRAPPER) $(CXXFLAGS) $(CF_TGT) $(LDFLAGS) $(LF_TGT) -o $@ $< $(LL_TGT) $(LIBS)
+DO_AR += $(AR) rcs $@ $^; $(RANLIB) $@
+DO_RC += $(WINDRES) $(DDEFINES) $(DF_TGT) -o $@ -i $<
+
+%.o: %.c
+ $(DO_CC)
+%.o: %.cc
+ $(DO_CXX)
+%.o: %.cpp
+ $(DO_CXX)
+%.o: %.rc
+ $(DO_RC)
+%: %.o
+ $(DO_LD)
+%: %.c
+ $(DO_CCLD)
+%: %.cc
+ $(DO_CXXLD)
+%: %.cpp
+ $(DO_CXXLD)
+%.a: %.o
+ $(DO_AR)
+
+
+#
+# Stuff.
+#
+
+#TGT_BIN := $(addsuffix $(EXEEXT),$(TGT_BIN))
+
+
+#
+# Define the phony targets.
+#
+
+.PHONY: targets
+targets: $(TGT_BIN) $(TGT_LIB)
+
+.PHONY: clean
+clean:
+ifeq ($(verbose),yes)
+ rm -f $(CLEAN)
+else
+ @echo " CLEAN"; rm -f $(CLEAN)
+endif
+
+.PHONY: distclean
+distclean: clean
+ifeq ($(verbose),yes)
+ rm -f config.mk
+else
+ @rm -f config.mk
+endif
+
+.PHONY: install
+install: targets
+ $(INSTALL) $(TGT_BIN) -m 755 -d $(DESTDIR)$(bindir)
+ $(INSTALL) $(TGT_DATA) -m 644 -d $(DESTDIR)$(datadir)
+ $(INSTALL) $(TGT_LIB) -m 750 -d $(DESTDIR)$(libdir)
+ $(INSTALL) $(TGT_MAN) -m 644 -d $(DESTDIR)$(mandir)
+
+
+#
+# Prevent make from removing any build targets.
+#
+
+.SECONDARY: $(CLEAN)
+