--- /dev/null
+
+T_DIRNAME := physics
+
+################################################################################
+
+# top define
+DIRNAME := ${T_DIRNAME}
+D := ${DIRNAME}
+P := ${DIRNAME}
+CURDIR := ${DIRNAME}/
+
+T_DIRNAME :=
+
+include ${CURDIR}${G_VARSMK}
+
+include ${CURDIR}${G_LISTSMK}
+
+include ${SRCSDIR_$P}${G_DIRMK}
+
+include ${CURDIR}${G_TVARSMK}
+
+include ${CURDIR}${G_RULESMK}
+
+${L_BLDDIRS_$P}: | $${@D}
+
+L_BLDDIRS_$P += ${OBJSDIR_$P}
+L_BLDDIRS_$P += ${DEPSDIR_$P}
+L_BLDDIRS_$P += ${BINDIR_$P}
+L_BLDDIRS_$P += ${DSTCFGDIR_$P}
+L_BLDDIRS_$P += ${DSTLIBSDIR_$P}
+
+L_DEPS += ${L_DEPS_$P}
+L_BLDDIRS += ${L_BLDDIRS_$P}
+
--- /dev/null
+
+# lists populated by dir.mk files in subdirectories
+L_SRCS_$P := # := start
+L_OBJS_$P := # := start
+L_DEPS_$P := # := start
+
+L_BLDDIRS_$P := # := start
+
+++ /dev/null
-#!/bin/sh
-
-exec make BUILD=FINAL $@
+++ /dev/null
-#!/bin/sh
-
-exec make BUILD=WIN32 $@
--- /dev/null
+
+# HACK
+all: ${TARGET_$P} ${CFGS_$P} ${LIBSTXT_$P} ${LIBSCPY_$P} ${TXT_$P}
+
+#${G_OBJS_TESTS}: ${L_OBJS_$P}
+#${G_DEPS_TESTS}: ${L_DEPS_$P}
+
+
+# how to link the main target
+${TARGETTMP_$P}: ${L_OBJS_$P} | $${@D}
+ ${cmd-link}
+
+# rule to copy tmp target to working directory
+${TARGET_$P}: ${TARGETTMP_$P} | $${@D}
+ ${cmd-cp}
+
+# how to copy a library to the bin directory
+#${BINDIR_$P}${SONAME_${G_LIB}}: ${TARGET_${G_LIB}} | $${@D}
+# ${cmd-cp}
+
+# rule to copy the config files into the working directory
+${DSTCFGDIR_$P}%: ${SRCCFGDIR_$P}% | $$(dir $$@)
+ ${cmd-cp}
+
+# rule to copy the library files into the working directory
+${DSTLIBSDIR_$P}%: ${SRCLIBSDIR_$P}% | $$(dir $$@)
+ ${cmd-cp}
+
+# rule to copy the text files into the working directory
+${DSTTXTDIR_$P}%: ${SRCTXTDIR_$P}% | $$(dir $$@)
+ ${cmd-cp}
+
+# rule to make an object file from a .cpp
+${OBJSDIR_$P}%.o: ${SRCSDIR_$P}%.cpp | $${@D}
+ ${cmd-cpptoobj}
+
+# rule to make a depend file from a .cpp
+${DEPSDIR_$P}%.d: ${SRCSDIR_$P}%.cpp | $${@D}
+ ${cmd-cpptodep}
+
+
+L_CLEANCMDS += cleanbin-$P
+cleanbin: cleanbin-$P
+.PHONY: cleanbin-$P
+cleanbin-$P:
+ ${Q1}${PRNTFMT} "rm" "${BINDIR}"
+ ${Q2}rm -rf ${BINDIR}
+
+L_CLEANCMDS += cleanobjs-$P
+cleanobjs: cleanobjs-$P
+.PHONY: cleanobjs-$P
+cleanobjs-$P:
+ ${Q1}${PRNTFMT} "rm" "${OBJSDIR}"
+ ${Q2}rm -rf ${OBJSDIR}
+
+L_CLEANCMDS += cleandeps-$P
+cleandeps: cleandeps-$P
+.PHONY: cleandeps-$P
+cleandeps-$P:
+ ${Q1}${PRNTFMT} "rm" "${DEPSDIR}"
+ ${Q2}rm -rf ${DEPSDIR}
+
+L_CLEANCMDS += clean-$P
+clean: clean-$P
+.PHONY: clean-$P
+clean-$P: cleanobjs-$P cleanbin-$P
+
+L_CLEANCMDS += cleanall-$P
+cleanall: cleanall-$P
+.PHONY: cleanall-$P
+cleanall-$P: cleanbin-$P cleanobjs-$P cleandeps-$P
+
-NEWSRCS := # insure blank
-NEWSRCS += Effect.cpp
-NEWSRCS += Gravity.cpp
-NEWSRCS += GravityWell.cpp
-NEWSRCS += Screen.cpp
+T_DIRNAME := Effects
+################################################################################
-# Post dir setup
+# save
+T := $D_TEMP
+ DIRNAME_$T := ${DIRNAME}
+ D_$T := $D
-CURDIR := Effects/
+ DIRNAME := ${T_DIRNAME}
+ D := $D_${DIRNAME}
-NEWSRCS := $(addprefix ${CURDIR},${NEWSRCS})
-NEWOBJS := ${NEWSRCS:.cpp=.o}
-NEWDEPS := ${NEWSRCS:.cpp=.d}
+ DIRNAME_$D := ${DIRNAME_$T}
+ D_$D := ${D_$T}
-# Append to lists
+ DIRNAME_$T :=
+ D_$T :=
+T :=
+
+T_DIRNAME :=
+
+CURDIR_$D := ${CURDIR}
+CURDIR := ${CURDIR_$D}${DIRNAME}/
+
+SRCPATH_$D := ${SRCPATH}
+SRCPATH := ${SRCPATH_$D}${DIRNAME}/
+
+
+include ${CURDIR}${G_FILESMK}
+include $(addprefix ${SRCSDIR_$P},$(addsuffix ${G_DIRMK},${NEWDIRS}))
+
+
+# restore
+
+CURDIR := ${CURDIR_$D}
+SRCPATH := ${SRCPATH_$D}
+DIRNAME := ${DIRNAME_$D}
+D := ${D_$D}
-SRCS += ${NEWSRCS}
-OBJS += $(addprefix ${OBJSDIR},${NEWOBJS})
-DEPS += $(addprefix ${DEPSDIR},${NEWDEPS})
--- /dev/null
+
+NEWSRCS := # := start; empty
+
+NEWSRCS += Effect.cpp
+NEWSRCS += Gravity.cpp
+NEWSRCS += GravityWell.cpp
+NEWSRCS += Screen.cpp
+
+NEWDIRS := # := start; empty
+
+################################################################################
+
+NEWSRCS := $(addprefix ${SRCPATH},${NEWSRCS})
+NEWDIRS := $(addprefix ${SRCPATH},${NEWDIRS})
+NEWOBJS := ${NEWSRCS:.cpp=.o}
+NEWDEPS := ${NEWSRCS:.cpp=.d}
+
+NEWOBJSDIRS := $(addprefix ${OBJSDIR_$P},${NEWDIRS})
+NEWDEPSDIRS := $(addprefix ${DEPSDIR_$P},${NEWDIRS})
+
+# Append to lists
+
+L_SRCS_$P += ${NEWSRCS}
+L_OBJS_$P += $(addprefix ${OBJSDIR_$P},${NEWOBJS})
+L_DEPS_$P += $(addprefix ${DEPSDIR_$P},${NEWDEPS})
+
+L_BLDDIRS_$P += ${NEWOBJSDIRS}
+L_BLDDIRS_$P += ${NEWDEPSDIRS}
+
-NEWSRCS := # insure blank
-NEWSRCS += Ball.cpp
-NEWSRCS += Entity.cpp
-NEWSRCS += Line.cpp
-NEWSRCS += Particle.cpp
-NEWSRCS += PhysicsEntity.cpp
-NEWSRCS += Point.cpp
-NEWSRCS += Polygon.cpp
-NEWSRCS += WindParticle.cpp
+T_DIRNAME := Entities
+################################################################################
-# Post dir setup
+# save
+T := $D_TEMP
+ DIRNAME_$T := ${DIRNAME}
+ D_$T := $D
-CURDIR := Entities/
+ DIRNAME := ${T_DIRNAME}
+ D := $D_${DIRNAME}
-NEWSRCS := $(addprefix ${CURDIR},${NEWSRCS})
-NEWOBJS := ${NEWSRCS:.cpp=.o}
-NEWDEPS := ${NEWSRCS:.cpp=.d}
+ DIRNAME_$D := ${DIRNAME_$T}
+ D_$D := ${D_$T}
-# Append to lists
+ DIRNAME_$T :=
+ D_$T :=
+T :=
+
+T_DIRNAME :=
+
+CURDIR_$D := ${CURDIR}
+CURDIR := ${CURDIR_$D}${DIRNAME}/
+
+SRCPATH_$D := ${SRCPATH}
+SRCPATH := ${SRCPATH_$D}${DIRNAME}/
+
+
+include ${CURDIR}${G_FILESMK}
+include $(addprefix ${SRCSDIR_$P},$(addsuffix ${G_DIRMK},${NEWDIRS}))
+
+
+# restore
+
+CURDIR := ${CURDIR_$D}
+SRCPATH := ${SRCPATH_$D}
+DIRNAME := ${DIRNAME_$D}
+D := ${D_$D}
-SRCS += ${NEWSRCS}
-OBJS += $(addprefix ${OBJSDIR},${NEWOBJS})
-DEPS += $(addprefix ${DEPSDIR},${NEWDEPS})
--- /dev/null
+
+NEWSRCS := # := start; empty
+
+NEWSRCS += Ball.cpp
+NEWSRCS += Entity.cpp
+NEWSRCS += Line.cpp
+NEWSRCS += Particle.cpp
+NEWSRCS += PhysicsEntity.cpp
+NEWSRCS += Point.cpp
+NEWSRCS += Polygon.cpp
+NEWSRCS += WindParticle.cpp
+
+NEWDIRS := # := start; empty
+
+################################################################################
+
+NEWSRCS := $(addprefix ${SRCPATH},${NEWSRCS})
+NEWDIRS := $(addprefix ${SRCPATH},${NEWDIRS})
+NEWOBJS := ${NEWSRCS:.cpp=.o}
+NEWDEPS := ${NEWSRCS:.cpp=.d}
+
+NEWOBJSDIRS := $(addprefix ${OBJSDIR_$P},${NEWDIRS})
+NEWDEPSDIRS := $(addprefix ${DEPSDIR_$P},${NEWDIRS})
+
+# Append to lists
+
+L_SRCS_$P += ${NEWSRCS}
+L_OBJS_$P += $(addprefix ${OBJSDIR_$P},${NEWOBJS})
+L_DEPS_$P += $(addprefix ${DEPSDIR_$P},${NEWDEPS})
+
+L_BLDDIRS_$P += ${NEWOBJSDIRS}
+L_BLDDIRS_$P += ${NEWDEPSDIRS}
+
-NEWSRCS := # insure blank
-NEWSRCS += CreatingPolygon.cpp
-NEWSRCS += GameState.cpp
-NEWSRCS += Paused.cpp
-NEWSRCS += Running.cpp
+T_DIRNAME := GameStates
+################################################################################
-# Post dir setup
+# save
+T := $D_TEMP
+ DIRNAME_$T := ${DIRNAME}
+ D_$T := $D
-CURDIR := GameStates/
+ DIRNAME := ${T_DIRNAME}
+ D := $D_${DIRNAME}
-NEWSRCS := $(addprefix ${CURDIR},${NEWSRCS})
-NEWOBJS := ${NEWSRCS:.cpp=.o}
-NEWDEPS := ${NEWSRCS:.cpp=.d}
+ DIRNAME_$D := ${DIRNAME_$T}
+ D_$D := ${D_$T}
-# Append to lists
+ DIRNAME_$T :=
+ D_$T :=
+T :=
+
+T_DIRNAME :=
+
+CURDIR_$D := ${CURDIR}
+CURDIR := ${CURDIR_$D}${DIRNAME}/
+
+SRCPATH_$D := ${SRCPATH}
+SRCPATH := ${SRCPATH_$D}${DIRNAME}/
+
+
+include ${CURDIR}${G_FILESMK}
+include $(addprefix ${SRCSDIR_$P},$(addsuffix ${G_DIRMK},${NEWDIRS}))
+
+
+# restore
+
+CURDIR := ${CURDIR_$D}
+SRCPATH := ${SRCPATH_$D}
+DIRNAME := ${DIRNAME_$D}
+D := ${D_$D}
-SRCS += ${NEWSRCS}
-OBJS += $(addprefix ${OBJSDIR},${NEWOBJS})
-DEPS += $(addprefix ${DEPSDIR},${NEWDEPS})
--- /dev/null
+
+NEWSRCS := # := start; empty
+
+NEWSRCS += CreatingPolygon.cpp
+NEWSRCS += GameState.cpp
+NEWSRCS += Paused.cpp
+NEWSRCS += Running.cpp
+
+NEWDIRS := # := start; empty
+
+################################################################################
+
+NEWSRCS := $(addprefix ${SRCPATH},${NEWSRCS})
+NEWDIRS := $(addprefix ${SRCPATH},${NEWDIRS})
+NEWOBJS := ${NEWSRCS:.cpp=.o}
+NEWDEPS := ${NEWSRCS:.cpp=.d}
+
+NEWOBJSDIRS := $(addprefix ${OBJSDIR_$P},${NEWDIRS})
+NEWDEPSDIRS := $(addprefix ${DEPSDIR_$P},${NEWDIRS})
+
+# Append to lists
+
+L_SRCS_$P += ${NEWSRCS}
+L_OBJS_$P += $(addprefix ${OBJSDIR_$P},${NEWOBJS})
+L_DEPS_$P += $(addprefix ${DEPSDIR_$P},${NEWDEPS})
+
+L_BLDDIRS_$P += ${NEWOBJSDIRS}
+L_BLDDIRS_$P += ${NEWDEPSDIRS}
+
-NEWSRCS := # insure blank
-NEWSRCS += config.cpp
-NEWSRCS += reader.cpp
-NEWSRCS += keys.cpp
+T_DIRNAME := config
+################################################################################
-# Post dir setup
+# save
+T := $D_TEMP
+ DIRNAME_$T := ${DIRNAME}
+ D_$T := $D
-CURDIR := config/
+ DIRNAME := ${T_DIRNAME}
+ D := $D_${DIRNAME}
-NEWSRCS := $(addprefix ${CURDIR},${NEWSRCS})
-NEWOBJS := ${NEWSRCS:.cpp=.o}
-NEWDEPS := ${NEWSRCS:.cpp=.d}
+ DIRNAME_$D := ${DIRNAME_$T}
+ D_$D := ${D_$T}
-# Append to lists
+ DIRNAME_$T :=
+ D_$T :=
+T :=
+
+T_DIRNAME :=
+
+CURDIR_$D := ${CURDIR}
+CURDIR := ${CURDIR_$D}${DIRNAME}/
+
+SRCPATH_$D := ${SRCPATH}
+SRCPATH := ${SRCPATH_$D}${DIRNAME}/
+
+
+include ${CURDIR}${G_FILESMK}
+include $(addprefix ${SRCSDIR_$P},$(addsuffix ${G_DIRMK},${NEWDIRS}))
+
+
+# restore
+
+CURDIR := ${CURDIR_$D}
+SRCPATH := ${SRCPATH_$D}
+DIRNAME := ${DIRNAME_$D}
+D := ${D_$D}
-SRCS += ${NEWSRCS}
-OBJS += $(addprefix ${OBJSDIR},${NEWOBJS})
-DEPS += $(addprefix ${DEPSDIR},${NEWDEPS})
--- /dev/null
+
+NEWSRCS := # := start; empty
+
+NEWSRCS += config.cpp
+NEWSRCS += reader.cpp
+NEWSRCS += keys.cpp
+
+NEWDIRS := # := start; empty
+
+################################################################################
+
+NEWSRCS := $(addprefix ${SRCPATH},${NEWSRCS})
+NEWDIRS := $(addprefix ${SRCPATH},${NEWDIRS})
+NEWOBJS := ${NEWSRCS:.cpp=.o}
+NEWDEPS := ${NEWSRCS:.cpp=.d}
+
+NEWOBJSDIRS := $(addprefix ${OBJSDIR_$P},${NEWDIRS})
+NEWDEPSDIRS := $(addprefix ${DEPSDIR_$P},${NEWDIRS})
+
+# Append to lists
+
+L_SRCS_$P += ${NEWSRCS}
+L_OBJS_$P += $(addprefix ${OBJSDIR_$P},${NEWOBJS})
+L_DEPS_$P += $(addprefix ${DEPSDIR_$P},${NEWDEPS})
+
+L_BLDDIRS_$P += ${NEWOBJSDIRS}
+L_BLDDIRS_$P += ${NEWDEPSDIRS}
+
-NEWSRCS := # insure blank
-NEWSRCS += game.cpp
-NEWSRCS += main.cpp
-NEWSRCS += handleSignal.cpp
+T_DIRNAME := src
-NEWSRCS += entityCreator.cpp
-NEWSRCS += entityManager.cpp
-NEWSRCS += effectManager.cpp
-NEWSRCS += collisionManager.cpp
-NEWSRCS += CollisionInfo.cpp
+################################################################################
+# save
+T := $D_TEMP
+ DIRNAME_$T := ${DIRNAME}
+ D_$T := $D
-NEWDIRS := # insure blank
+ DIRNAME := ${T_DIRNAME}
+ D := $D_${DIRNAME}
-NEWDIRS += Entities/
-NEWDIRS += GameStates/
-NEWDIRS += Effects/
-NEWDIRS += config/
-NEWDIRS += input/
-NEWDIRS += graphics/
+ DIRNAME_$D := ${DIRNAME_$T}
+ D_$D := ${D_$T}
+ DIRNAME_$T :=
+ D_$T :=
+T :=
-# Post dir setup
+T_DIRNAME :=
-CURDIR :=
+CURDIR_$D := ${CURDIR}
+CURDIR := ${CURDIR_$D}${DIRNAME}/
-NEWSRCS := $(addprefix ${CURDIR},${NEWSRCS})
-NEWDIRS := $(addprefix ${CURDIR},${NEWDIRS})
-NEWOBJS := ${NEWSRCS:.cpp=.o}
-NEWDEPS := ${NEWSRCS:.cpp=.d}
+# top define
+SRCPATH :=
-# Append to lists
-SRCS += ${NEWSRCS}
-DIRS += ${NEWDIRS}
-OBJS += $(addprefix ${OBJSDIR},${NEWOBJS})
-DEPS += $(addprefix ${DEPSDIR},${NEWDEPS})
+include ${CURDIR}${G_FILESMK}
+include $(addprefix ${SRCSDIR_$P},$(addsuffix ${G_DIRMK},${NEWDIRS}))
-include $(addprefix ${SRCSDIR},$(addsuffix ${DIRMK},${NEWDIRS}))
+# restore
+
+CURDIR := ${CURDIR_$D}
+SRCPATH :=
+DIRNAME := ${DIRNAME_$D}
+D := ${D_$D}
+
--- /dev/null
+
+NEWSRCS := # := start; empty
+
+NEWSRCS += game.cpp
+NEWSRCS += main.cpp
+NEWSRCS += handleSignal.cpp
+
+NEWSRCS += entityCreator.cpp
+NEWSRCS += entityManager.cpp
+NEWSRCS += effectManager.cpp
+NEWSRCS += collisionManager.cpp
+NEWSRCS += CollisionInfo.cpp
+
+NEWDIRS := # := start; empty
+
+NEWDIRS += Entities/
+NEWDIRS += GameStates/
+NEWDIRS += Effects/
+NEWDIRS += config/
+NEWDIRS += input/
+NEWDIRS += graphics/
+
+################################################################################
+
+NEWSRCS := $(addprefix ${SRCPATH},${NEWSRCS})
+NEWDIRS := $(addprefix ${SRCPATH},${NEWDIRS})
+NEWOBJS := ${NEWSRCS:.cpp=.o}
+NEWDEPS := ${NEWSRCS:.cpp=.d}
+
+NEWOBJSDIRS := $(addprefix ${OBJSDIR_$P},${NEWDIRS})
+NEWDEPSDIRS := $(addprefix ${DEPSDIR_$P},${NEWDIRS})
+
+# Append to lists
+
+L_SRCS_$P += ${NEWSRCS}
+L_OBJS_$P += $(addprefix ${OBJSDIR_$P},${NEWOBJS})
+L_DEPS_$P += $(addprefix ${DEPSDIR_$P},${NEWDEPS})
+
+L_BLDDIRS_$P += ${NEWOBJSDIRS}
+L_BLDDIRS_$P += ${NEWDEPSDIRS}
+
-NEWSRCS := # insure blank
-NEWSRCS += graphics.cpp
+T_DIRNAME := graphics
+################################################################################
-# Post dir setup
+# save
+T := $D_TEMP
+ DIRNAME_$T := ${DIRNAME}
+ D_$T := $D
-CURDIR := graphics/
+ DIRNAME := ${T_DIRNAME}
+ D := $D_${DIRNAME}
-NEWSRCS := $(addprefix ${CURDIR},${NEWSRCS})
-NEWOBJS := ${NEWSRCS:.cpp=.o}
-NEWDEPS := ${NEWSRCS:.cpp=.d}
+ DIRNAME_$D := ${DIRNAME_$T}
+ D_$D := ${D_$T}
-# Append to lists
+ DIRNAME_$T :=
+ D_$T :=
+T :=
+
+T_DIRNAME :=
+
+CURDIR_$D := ${CURDIR}
+CURDIR := ${CURDIR_$D}${DIRNAME}/
+
+SRCPATH_$D := ${SRCPATH}
+SRCPATH := ${SRCPATH_$D}${DIRNAME}/
+
+
+include ${CURDIR}${G_FILESMK}
+include $(addprefix ${SRCSDIR_$P},$(addsuffix ${G_DIRMK},${NEWDIRS}))
+
+
+# restore
+
+CURDIR := ${CURDIR_$D}
+SRCPATH := ${SRCPATH_$D}
+DIRNAME := ${DIRNAME_$D}
+D := ${D_$D}
-SRCS += ${NEWSRCS}
-OBJS += $(addprefix ${OBJSDIR},${NEWOBJS})
-DEPS += $(addprefix ${DEPSDIR},${NEWDEPS})
--- /dev/null
+
+NEWSRCS := # := start; empty
+
+NEWSRCS += graphics.cpp
+
+NEWDIRS := # := start; empty
+
+################################################################################
+
+NEWSRCS := $(addprefix ${SRCPATH},${NEWSRCS})
+NEWDIRS := $(addprefix ${SRCPATH},${NEWDIRS})
+NEWOBJS := ${NEWSRCS:.cpp=.o}
+NEWDEPS := ${NEWSRCS:.cpp=.d}
+
+NEWOBJSDIRS := $(addprefix ${OBJSDIR_$P},${NEWDIRS})
+NEWDEPSDIRS := $(addprefix ${DEPSDIR_$P},${NEWDIRS})
+
+# Append to lists
+
+L_SRCS_$P += ${NEWSRCS}
+L_OBJS_$P += $(addprefix ${OBJSDIR_$P},${NEWOBJS})
+L_DEPS_$P += $(addprefix ${DEPSDIR_$P},${NEWDEPS})
+
+L_BLDDIRS_$P += ${NEWOBJSDIRS}
+L_BLDDIRS_$P += ${NEWDEPSDIRS}
+
-NEWSRCS := # insure blank
-NEWSRCS += inputManager.cpp
+T_DIRNAME := input
+################################################################################
-# Post dir setup
+# save
+T := $D_TEMP
+ DIRNAME_$T := ${DIRNAME}
+ D_$T := $D
-CURDIR := input/
+ DIRNAME := ${T_DIRNAME}
+ D := $D_${DIRNAME}
-NEWSRCS := $(addprefix ${CURDIR},${NEWSRCS})
-NEWOBJS := ${NEWSRCS:.cpp=.o}
-NEWDEPS := ${NEWSRCS:.cpp=.d}
+ DIRNAME_$D := ${DIRNAME_$T}
+ D_$D := ${D_$T}
-# Append to lists
+ DIRNAME_$T :=
+ D_$T :=
+T :=
+
+T_DIRNAME :=
+
+CURDIR_$D := ${CURDIR}
+CURDIR := ${CURDIR_$D}${DIRNAME}/
+
+SRCPATH_$D := ${SRCPATH}
+SRCPATH := ${SRCPATH_$D}${DIRNAME}/
+
+
+include ${CURDIR}${G_FILESMK}
+include $(addprefix ${SRCSDIR_$P},$(addsuffix ${G_DIRMK},${NEWDIRS}))
+
+
+# restore
+
+CURDIR := ${CURDIR_$D}
+SRCPATH := ${SRCPATH_$D}
+DIRNAME := ${DIRNAME_$D}
+D := ${D_$D}
-SRCS += ${NEWSRCS}
-OBJS += $(addprefix ${OBJSDIR},${NEWOBJS})
-DEPS += $(addprefix ${DEPSDIR},${NEWDEPS})
--- /dev/null
+
+NEWSRCS := # := start; empty
+
+NEWSRCS += inputManager.cpp
+
+NEWDIRS := # := start; empty
+
+################################################################################
+
+NEWSRCS := $(addprefix ${SRCPATH},${NEWSRCS})
+NEWDIRS := $(addprefix ${SRCPATH},${NEWDIRS})
+NEWOBJS := ${NEWSRCS:.cpp=.o}
+NEWDEPS := ${NEWSRCS:.cpp=.d}
+
+NEWOBJSDIRS := $(addprefix ${OBJSDIR_$P},${NEWDIRS})
+NEWDEPSDIRS := $(addprefix ${DEPSDIR_$P},${NEWDIRS})
+
+# Append to lists
+
+L_SRCS_$P += ${NEWSRCS}
+L_OBJS_$P += $(addprefix ${OBJSDIR_$P},${NEWOBJS})
+L_DEPS_$P += $(addprefix ${DEPSDIR_$P},${NEWDEPS})
+
+L_BLDDIRS_$P += ${NEWOBJSDIRS}
+L_BLDDIRS_$P += ${NEWDEPSDIRS}
+
--- /dev/null
+
+${L_OBJS_$P} ${L_DEPS_$P}: CXX := ${CXX_$P}
+${L_OBJS_$P} ${L_DEPS_$P}: CXXFLAGS := ${CXXFLAGS_$P}
+${L_OBJS_$P} ${L_DEPS_$P}: INCFLAGS := ${INCFLAGS_$P}
+ ${L_DEPS_$P}: DEPSDIR := ${DEPSDIR_$P}
+ ${L_DEPS_$P}: OBJSDIR := ${OBJSDIR_$P}
+
+cleanbin-$P: BINDIR := ${BINDIR_$P}
+cleanobjs-$P: OBJSDIR := ${OBJSDIR_$P}
+cleandeps-$P: DEPSDIR := ${DEPSDIR_$P}
+
--- /dev/null
+
+CXX_$P := ${G_CXX}
+CXXFLAGS_$P := ${G_CXXFLAGS}
+LNKFLAGS_$P := ${G_LNKFLAGS} -Wl,-rpath,libs/ -rdynamic
+LIBS_$P := ${G_LIBSDL} ${G_LIBGL} -lbear
+
+SRCSDIR_$P := ${CURDIR}${G_SRCSDIR}
+DEPSDIR_$P := ${CURDIR}${G_DEPSDIR}
+OBJSDIR_$P := ${CURDIR}${G_OBJSDIR}
+BINDIR_$P := ${CURDIR}${G_BINDIR}
+
+# HACK
+T_INCDIRS_$P := ${SRCSDIR_$P} # lib/inc/
+ INCFLAGS_$P := $(addprefix -I, ${T_INCDIRS_$P})
+T_INCDIRS_$P := # empty
+
+CFGDIRNAME_$P := configs/
+SRCCFGDIR_$P := ${CURDIR}${CFGDIRNAME_$P}
+DSTCFGDIR_$P := ${BINDIR_$P}${CFGDIRNAME_$P}
+
+CFGS_$P := # := start
+CFGS_$P += keys.cfg
+CFGS_$P := $(addprefix ${DSTCFGDIR_$P},${CFGS_$P})
+
+LIBSDIRNAME_$P := libs/
+SRCLIBSDIR_$P := ${CURDIR}${LIBSDIRNAME_$P}
+ifeq (${BUILD},WIN32)
+ DSTLIBSDIR_$P := ${BINDIR_$P}
+else
+ DSTLIBSDIR_$P := ${BINDIR_$P}${LIBSDIRNAME_$P}
+endif
+
+LIBSTXT_$P := # := start
+LIBSTXT_$P += COPYING-SDL
+LIBSTXT_$P += README-SDL
+LIBSTXT_$P += VERSION-SDL
+LIBSTXT_$P := $(addprefix ${DSTLIBSDIR_$P},${LIBSTXT_$P})
+
+LIBSCPY_$P := # := start
+ifeq (${BUILD},WIN32)
+ LIBSCPY_$P += SDL.dll
+ LIBSCPY_$P += bear.dll
+else
+ LIBSCPY_$P += libSDL-1.2.so.0
+ LIBSCPY_$P += libbear.so.0
+endif
+LIBSCPY_$P := $(addprefix ${DSTLIBSDIR_$P},${LIBSCPY_$P})
+
+SRCTXTDIR_$P := ${CURDIR}
+DSTTXTDIR_$P := ${BINDIR_$P}
+
+TXT_$P := # := start
+TXT_$P += COPYING
+TXT_$P := $(addprefix ${DSTTXTDIR_$P},${TXT_$P})
+
+ifeq (${BUILD},WIN32)
+ TARGETNAME_$P := run_physics.exe
+else
+ TARGETNAME_$P := run_physics
+endif
+TARGETTMP_$P := ${OBJSDIR_$P}${TARGETNAME_$P}
+TARGET_$P := ${BINDIR_$P}${TARGETNAME_$P}