diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..53ae40a2c5e452d960a44e1fbe74d72820984eb3
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,18 @@
+/aof/
+/derived/swis
+/lib/
+/linked/
+/Makefile.d
+/map/
+/m_o/
+/m_o_rl/
+/o/
+/objs/
+/o_rl/
+/rm_o/
+/rm_o_rl/
+/s/swioptions
+/syms/
+/test/!TboxCalc/!RunImage,fd3
+/test/!TboxCalc/Makefile.d
+/test/!TboxCalc/o/
diff --git a/Makefile b/Makefile
index 31d71cf7b8d0808934432ee22b76b1dbfddb9ac9..a21ac20e201a009e292f2e4bdfb0b89f715dfdfc 100644
--- a/Makefile
+++ b/Makefile
@@ -518,6 +518,18 @@ bbe-clibrary: bbe-generic
 	${CP} clib.rom_link_v ${VERBATIMROMLINK} ${CPFLAGS}
 
 dirs:
+	${MKDIR} aof
+	${MKDIR} derived
+	${MKDIR} lib
+	${MKDIR} linked
+	${MKDIR} map
+	${MKDIR} m_o
+	${MKDIR} m_o_rl
+	${MKDIR} o
+	${MKDIR} o_rl
+	${MKDIR} rm_o
+	${MKDIR} rm_o_rl
+	${MKDIR} syms
 	${MKDIR} ${LIBDIR}
 	${MKDIR} ${LIBDIR}.CLib
 	${MKDIR} ${LIBDIR}.CLib.h
diff --git a/aof/.gitignore b/aof/.gitignore
deleted file mode 100644
index d6b7ef32c8478a48c3994dcadc86837f4371184d..0000000000000000000000000000000000000000
--- a/aof/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*
-!.gitignore
diff --git a/derived/.gitignore b/derived/.gitignore
deleted file mode 100644
index d6b7ef32c8478a48c3994dcadc86837f4371184d..0000000000000000000000000000000000000000
--- a/derived/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*
-!.gitignore
diff --git a/lib/.gitignore b/lib/.gitignore
deleted file mode 100644
index d6b7ef32c8478a48c3994dcadc86837f4371184d..0000000000000000000000000000000000000000
--- a/lib/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*
-!.gitignore
diff --git a/linked/.gitignore b/linked/.gitignore
deleted file mode 100644
index d6b7ef32c8478a48c3994dcadc86837f4371184d..0000000000000000000000000000000000000000
--- a/linked/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*
-!.gitignore
diff --git a/m_o/.gitignore b/m_o/.gitignore
deleted file mode 100644
index d6b7ef32c8478a48c3994dcadc86837f4371184d..0000000000000000000000000000000000000000
--- a/m_o/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*
-!.gitignore
diff --git a/m_o_rl/.gitignore b/m_o_rl/.gitignore
deleted file mode 100644
index d6b7ef32c8478a48c3994dcadc86837f4371184d..0000000000000000000000000000000000000000
--- a/m_o_rl/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*
-!.gitignore
diff --git a/map/.gitignore b/map/.gitignore
deleted file mode 100644
index d6b7ef32c8478a48c3994dcadc86837f4371184d..0000000000000000000000000000000000000000
--- a/map/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*
-!.gitignore
diff --git a/o/.gitignore b/o/.gitignore
deleted file mode 100644
index d6b7ef32c8478a48c3994dcadc86837f4371184d..0000000000000000000000000000000000000000
--- a/o/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*
-!.gitignore
diff --git a/o_rl/.gitignore b/o_rl/.gitignore
deleted file mode 100644
index d6b7ef32c8478a48c3994dcadc86837f4371184d..0000000000000000000000000000000000000000
--- a/o_rl/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*
-!.gitignore
diff --git a/o_rl_dec/.gitignore b/o_rl_dec/.gitignore
deleted file mode 100644
index d6b7ef32c8478a48c3994dcadc86837f4371184d..0000000000000000000000000000000000000000
--- a/o_rl_dec/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*
-!.gitignore
diff --git a/rm_o/.gitignore b/rm_o/.gitignore
deleted file mode 100644
index d6b7ef32c8478a48c3994dcadc86837f4371184d..0000000000000000000000000000000000000000
--- a/rm_o/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*
-!.gitignore
diff --git a/rm_o_d/.gitignore b/rm_o_d/.gitignore
deleted file mode 100644
index d6b7ef32c8478a48c3994dcadc86837f4371184d..0000000000000000000000000000000000000000
--- a/rm_o_d/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*
-!.gitignore
diff --git a/rm_o_rl/.gitignore b/rm_o_rl/.gitignore
deleted file mode 100644
index d6b7ef32c8478a48c3994dcadc86837f4371184d..0000000000000000000000000000000000000000
--- a/rm_o_rl/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*
-!.gitignore
diff --git a/rm_o_rl_d/.gitignore b/rm_o_rl_d/.gitignore
deleted file mode 100644
index d6b7ef32c8478a48c3994dcadc86837f4371184d..0000000000000000000000000000000000000000
--- a/rm_o_rl_d/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*
-!.gitignore
diff --git a/syms/.gitignore b/syms/.gitignore
deleted file mode 100644
index d6b7ef32c8478a48c3994dcadc86837f4371184d..0000000000000000000000000000000000000000
--- a/syms/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*
-!.gitignore
diff --git a/test/!TboxCalc/Makefile b/test/!TboxCalc/Makefile
index e84e73eeb9e31c58cf0920eca560141e945c3959..6458a99ea532f53b25dcf75ccbdd21913abe7a55 100644
--- a/test/!TboxCalc/Makefile
+++ b/test/!TboxCalc/Makefile
@@ -36,6 +36,7 @@ Squeezeflags = -f $@
 	   cc $(ccflags) -o @.o.Calc @.c.Calc
 
 @.o.foo:      @.s.foo
+	   CDir @.o
 	   objasm $(asflags) -o @.o.foo @.s.foo           
 	   
 # Dynamic dependencies:
diff --git a/test/!TboxCalc/o/.gitignore b/test/!TboxCalc/o/.gitignore
deleted file mode 100644
index d6b7ef32c8478a48c3994dcadc86837f4371184d..0000000000000000000000000000000000000000
--- a/test/!TboxCalc/o/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*
-!.gitignore