diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html
index 11c134634f96b1d4e37cd66b42f6a5dd59689364..9ae720862ca0690396ec7b728ab016d09cb0edc7 100644
--- a/Documentation/NuttxPortingGuide.html
+++ b/Documentation/NuttxPortingGuide.html
@@ -16,7 +16,7 @@
   </b></big>
   <p><small>by</small></p>
   <p>Gregory Nutt</p>
-  <p><small>Last Update: January 6, 2006</small></p>
+  <p><small>Last Update: January 10, 2008</small></p>
 </center>
 
 <center><h1>Table of Contents</h1></center>
@@ -518,7 +518,7 @@
     <ul>
       <li>Tools: CC, LD, AR, NM, OBJCOPY, OBJDUMP</li>
       <li>Tool options: CFLAGS, LDFLAGS</li>
-      <li>COMPILE, ASSEMBLE, ARCHIVE, and MKDEP macros</li>
+      <li>COMPILE, ASSEMBLE, ARCHIVE, CLEAN, and MKDEP macros</li>
     </ul>
     <p>
       When this makefile fragment runs, it will be passed TOPDIR which
diff --git a/Makefile b/Makefile
index 43d8d5093ddaff815d5d9644cdc03adc0ad873d8..2d5d2aba5d78976fa3ba5bf38a35d3dda2575b29 100644
--- a/Makefile
+++ b/Makefile
@@ -217,7 +217,7 @@ subdir_clean:
 	@$(MAKE) -C mm -f Makefile.test TOPDIR="$(TOPDIR)" clean
 
 clean: subdir_clean
-	rm -f $(BIN) $(BIN).* mm_test *.map *~
+	@rm -f $(BIN) $(BIN).* mm_test *.map *~
 
 subdir_distclean:
 	@for dir in $(CLEANDIRS) ; do \
@@ -227,6 +227,6 @@ subdir_distclean:
 	done
 
 distclean: clean subdir_distclean clean_context
-	rm -f Make.defs setenv.sh .config
+	@rm -f Make.defs setenv.sh .config
 
 
diff --git a/arch/arm/src/Makefile b/arch/arm/src/Makefile
index 445577b4afa924337a8db1e31dee273936eb3340..9e6bda77cc62b4d6c7bc89d8a240a797359e0e92 100644
--- a/arch/arm/src/Makefile
+++ b/arch/arm/src/Makefile
@@ -111,8 +111,8 @@ clean:
 	@if [ -e board/Makefile ]; then \
 		$(MAKE) -C board TOPDIR="$(TOPDIR)" clean ; \
 	fi
-	@rm -f libarch$(LIBEXT) *~
-	@if [ ! -z "$(OBJEXT)" ]; then rm -f *$(OBJEXT); fi
+	@rm -f libarch$(LIBEXT) *~ .*.swp
+	$(call CLEAN)
 
 distclean: clean
 	@if [ -e board/Makefile ]; then \
diff --git a/arch/c5471/src/Makefile b/arch/c5471/src/Makefile
index c04d9a9a6811b46755f502153eb0b7cf2c90160c..1e7933b8fd801120de9b1dd61de0b5018e61e0db 100644
--- a/arch/c5471/src/Makefile
+++ b/arch/c5471/src/Makefile
@@ -113,7 +113,8 @@ clean:
 	@if [ -e board/Makefile ]; then \
 		$(MAKE) -C board TOPDIR=$(TOPDIR) clean ; \
 	fi
-	rm -f libarch$(LIBEXT) *.o *.obj *~
+	@rm -f libarch$(LIBEXT) *~ .*.swp
+	$(call CLEAN)
 
 distclean: clean
 	@if [ -e board/Makefile ]; then \
diff --git a/arch/dm320/src/Makefile b/arch/dm320/src/Makefile
index 41b9a90ab287bd3a16ee4d157c67d3a75fec0df2..8ce53aa74118b9b11bd6c68792f9c347699af884 100644
--- a/arch/dm320/src/Makefile
+++ b/arch/dm320/src/Makefile
@@ -113,12 +113,13 @@ clean:
 	@if [ -e board/Makefile ]; then \
 		$(MAKE) -C board TOPDIR=$(TOPDIR) clean ; \
 	fi
-	rm -f libarch$(LIBEXT) *.o *.obj *~
+	@rm -f libarch$(LIBEXT) *~ .*.swp
+	$(call CLEAN)
 
 distclean: clean
 	@if [ -e board/Makefile ]; then \
 		$(MAKE) -C board TOPDIR=$(TOPDIR) distclean ; \
 	fi
-	rm -f Make.dep .depend
+	@rm -f Make.dep .depend
 
 -include Make.dep
diff --git a/arch/pjrc-8051/src/Makefile b/arch/pjrc-8051/src/Makefile
index 5d95b2f78df9da6f2e90a6ae5891eafd6a36f00c..d77bf546dd779cc45b9ded4d654076b6edfa608b 100644
--- a/arch/pjrc-8051/src/Makefile
+++ b/arch/pjrc-8051/src/Makefile
@@ -211,9 +211,8 @@ clean:
 	@if [ -e board/Makefile ]; then \
 		$(MAKE) -C board TOPDIR=$(TOPDIR) clean ; \
 	fi
-	rm -f libarch$(LIBEXT) up_mem.h
-	rm -f *.asm *.rel *.lst *.rst *.sym *.adb *.lnk *.map *.mem *.ihx *.hex *~
-	if [ ! -z "$(OBJEXT)" ]; then rm -f *$(OBJEXT); fi
+	@rm -f libarch$(LIBEXT) up_mem.h *~ .*.swp
+	$(call CLEAN)
 
 distclean: clean
 	@if [ -e board/Makefile ]; then \
diff --git a/arch/sim/src/Makefile b/arch/sim/src/Makefile
index c31c4e17ec2005f6fe496020182d4f757ca1a2d0..ea92eb50c83b4d282ec25e32d7e7415354185142 100644
--- a/arch/sim/src/Makefile
+++ b/arch/sim/src/Makefile
@@ -101,8 +101,8 @@ nuttx$(EXEEXT): $(LINKOBJS)
 depend: .depend
 
 clean:
-	@rm -f libarch$(LIBEXT) *~
-	@if [ ! -z "$(OBJEXT)" ]; then rm -f *$(OBJEXT); fi
+	@rm -f libarch$(LIBEXT) *~ .*.swp
+	$(call CLEAN)
 
 distclean: clean
 	@rm -f Make.dep .depend
diff --git a/arch/z16/src/Makefile b/arch/z16/src/Makefile
index 2ce3a301303558cec5555a9d4c7a7bb330a75969..cd06924471063df0aa922f58edac03cd2c738676 100644
--- a/arch/z16/src/Makefile
+++ b/arch/z16/src/Makefile
@@ -99,8 +99,8 @@ clean:
 	@if [ -e board/Makefile ]; then \
 		$(MAKE) -C board TOPDIR="$(TOPDIR)" clean ; \
 	fi
-	@rm -f libarch$(LIBEXT) *~
-	@if [ ! -z "$(OBJEXT)" ]; then rm -f *$(OBJEXT); fi
+	@rm -f libarch$(LIBEXT) *~ .*.swp
+	$(call CLEAN)
 
 distclean: clean
 	@if [ -e board/Makefile ]; then \
diff --git a/arch/z80/src/Makefile b/arch/z80/src/Makefile
index 2c1f15c99bed521244d6e49cac3684c0b90fc9e2..9f5e752d448ea68e4370f65c670ff4cedde739bf 100644
--- a/arch/z80/src/Makefile
+++ b/arch/z80/src/Makefile
@@ -234,10 +234,8 @@ clean:
 	@if [ -e board/Makefile ]; then \
 		$(MAKE) -C board TOPDIR="$(TOPDIR)" clean ; \
 	fi
-	rm -f libarch$(LIBEXT) up_mem.h asm_mem.h pass1.* nuttx.*
-	rm -f *.asm *.rel *.lst *.rst *.sym *.adb *.lnk *.map *.mem *.ihx *.hex
-	rm -f core *~ .*.swp *.swp
-	if [ ! -z "$(OBJEXT)" ]; then rm -f *$(OBJEXT); fi
+	@rm -f libarch$(LIBEXT) up_mem.h asm_mem.h pass1.* nuttx.* *~ .*.swp
+	$(call CLEAN)
 
 distclean: clean
 	@if [ -e board/Makefile ]; then \
diff --git a/configs/README.txt b/configs/README.txt
index 3bcb62e00ae80bc224c698f3ac084cc9579ab593..fb6c655657d6d7796693942d6121cd0626f4088b 100644
--- a/configs/README.txt
+++ b/configs/README.txt
@@ -81,7 +81,7 @@ Make.defs -- This makefile fragment provides architecture and
 
 	Tools: CC, LD, AR, NM, OBJCOPY, OBJDUMP
 	Tool options: CFLAGS, LDFLAGS
-	COMPILE, ASSEMBLE, ARCHIVE, and MKDEP macros
+	COMPILE, ASSEMBLE, ARCHIVE, CLEAN, and MKDEP macros
 
   When this makefile fragment runs, it will be passed TOPDIR which
   is the path to the root directory of the build.  This makefile
diff --git a/configs/c5471evm/Make.defs b/configs/c5471evm/Make.defs
index cda4d72082c933723323eff2a29dd7adfb335118..bd44f0f7f9fe1386dfaaad1cd4b184bc625dfb5d 100644
--- a/configs/c5471evm/Make.defs
+++ b/configs/c5471evm/Make.defs
@@ -84,6 +84,10 @@ define ARCHIVE
 	$(AR) $1 $2 || { echo "$(AR) $1 $2 FAILED!" ; exit 1 ; }
 endef
 
+define CLEAN
+	@rm -f *.o *.a
+endef
+
 MKDEP			= $(TOPDIR)/tools/mkdeps.sh
 
 HOSTCC			= gcc
diff --git a/configs/c5471evm/src/Makefile b/configs/c5471evm/src/Makefile
index 4b0541ae16c546ac1aeb8d0b0c6c737b27b2fc73..9a05c016230ea3cadedaa81e675647b9565e5d33 100644
--- a/configs/c5471evm/src/Makefile
+++ b/configs/c5471evm/src/Makefile
@@ -68,8 +68,8 @@ libboard$(LIBEXT): $(OBJS)
 depend: .depend
 
 clean:
-	rm -f libboard$(LIBEXT) *~
-	if [ ! -z "$(OBJEXT)" ]; then rm -f *$(OBJEXT); fi
+	@rm -f libboard$(LIBEXT) *~ .*.swp
+	$(call CLEAN)
 
 distclean: clean
 	rm -f Make.dep .depend
diff --git a/configs/m68332evb/Make.defs b/configs/m68332evb/Make.defs
index af4a880119b7cb4bc036b0e73cadf08225f7bad6..f12369c970a126e37fc05ae58e3b30a50d699a43 100644
--- a/configs/m68332evb/Make.defs
+++ b/configs/m68332evb/Make.defs
@@ -84,6 +84,10 @@ define ARCHIVE
 	$(AR) $1 $2 || { echo "$(AR) $1 $2 FAILED!" ; exit 1 ; }
 endef
 
+define CLEAN
+	@rm -f *.o *.a
+endef
+
 MKDEP			= $(TOPDIR)/tools/mkdeps.sh
 
 HOSTCC			= gcc
diff --git a/configs/m68332evb/src/Makefile b/configs/m68332evb/src/Makefile
index a3c568cec69087d19bd7b5c66c83be86b72a6c74..0265ec858d3f50826b46eb20faefc653eb1b59da 100644
--- a/configs/m68332evb/src/Makefile
+++ b/configs/m68332evb/src/Makefile
@@ -65,8 +65,8 @@ libboard$(LIBEXT): $(OBJS)
 depend: .depend
 
 clean:
-	rm -f libboard$(LIBEXT) *~
-	if [ ! -z "$(OBJEXT)" ]; then rm -f *$(OBJEXT); fi
+	@rm -f libboard$(LIBEXT) *~ .*.swp
+	$(call CLEAN)
 
 distclean: clean
 	rm -f Make.dep .depend
diff --git a/configs/mcu123-lpc214x/Make.defs b/configs/mcu123-lpc214x/Make.defs
index 356b6e9c70d2401448bdf6ecf3ee5e2bf378bc51..70c1d8cc5e1745e79a1d42fb4618540b50923780 100644
--- a/configs/mcu123-lpc214x/Make.defs
+++ b/configs/mcu123-lpc214x/Make.defs
@@ -84,6 +84,10 @@ define ARCHIVE
 	$(AR) $1 $2 || { echo "$(AR) $1 $2 FAILED!" ; exit 1 ; }
 endef
 
+define CLEAN
+	@rm -f *.o *.a
+endef
+
 MKDEP			= $(TOPDIR)/tools/mkdeps.sh
 
 HOSTCC			= gcc
diff --git a/configs/mcu123-lpc214x/src/Makefile b/configs/mcu123-lpc214x/src/Makefile
index 93dea86be8f361f04c9b74f62858a4d6122d27cf..ab06f20022357ed5d6bfafa7bedc60ff371ce266 100644
--- a/configs/mcu123-lpc214x/src/Makefile
+++ b/configs/mcu123-lpc214x/src/Makefile
@@ -68,8 +68,8 @@ libboard$(LIBEXT): $(OBJS)
 depend: .depend
 
 clean:
-	rm -f libboard$(LIBEXT) *~
-	if [ ! -z "$(OBJEXT)" ]; then rm -f *$(OBJEXT); fi
+	@rm -f libboard$(LIBEXT) *~ .*.swp
+	$(call CLEAN)
 
 distclean: clean
 	rm -f Make.dep .depend
diff --git a/configs/ntosd-dm320/Make.defs b/configs/ntosd-dm320/Make.defs
index 1be65e7b82a18cb49bfaeff473ecd9f50cd60598..25acc1e41d66995dddc6afe6c19c570ec932bf8a 100644
--- a/configs/ntosd-dm320/Make.defs
+++ b/configs/ntosd-dm320/Make.defs
@@ -84,6 +84,10 @@ define ARCHIVE
 	$(AR) $1 $2 || { echo "$(AR) $1 $2 FAILED!" ; exit 1 ; }
 endef
 
+define CLEAN
+	@rm -f *.o *.a
+endef
+
 MKDEP			= $(TOPDIR)/tools/mkdeps.sh
 
 HOSTCC			= gcc
diff --git a/configs/ntosd-dm320/src/Makefile b/configs/ntosd-dm320/src/Makefile
index de36b3d5cba0ae9fe1a4f0eaed41c8e8e3cb9d88..45a008c58c4c751701eaa050ed631161f3853e34 100644
--- a/configs/ntosd-dm320/src/Makefile
+++ b/configs/ntosd-dm320/src/Makefile
@@ -68,8 +68,8 @@ libboard$(LIBEXT): $(OBJS)
 depend: .depend
 
 clean:
-	rm -f libboard$(LIBEXT) *~
-	if [ ! -z "$(OBJEXT)" ]; then rm -f *$(OBJEXT); fi
+	@rm -f libboard$(LIBEXT) *~ .*.swp
+	$(call CLEAN)
 
 distclean: clean
 	rm -f Make.dep .depend
diff --git a/configs/pjrc-8051/Make.defs b/configs/pjrc-8051/Make.defs
index 5c2482e37e7e463afe39a2d9fcf526ed0193c234..5c77c6f22a7f487a19412be8a9a9c9b302baf30a 100644
--- a/configs/pjrc-8051/Make.defs
+++ b/configs/pjrc-8051/Make.defs
@@ -77,6 +77,10 @@ define ARCHIVE
 	$(AR) $1 $2 || { echo "$(AR) $1 $2 FAILED!" ; exit 1 ; }
 endef
 
+define CLEAN
+	@rm -f *.asm *.rel *.lst *.rst *.sym *.adb *.lnk *.map *.mem *.ihx *.hex
+endef
+
 MKDEP			= $(TOPDIR)/tools/mkdeps.sh
 
 HOSTCC			= gcc
diff --git a/configs/pjrc-8051/src/Makefile b/configs/pjrc-8051/src/Makefile
index 31066a6372fdeaada7faad713429956bff822b2f..0d6a7f05a2795a351b9c4069b891451bdecc165d 100644
--- a/configs/pjrc-8051/src/Makefile
+++ b/configs/pjrc-8051/src/Makefile
@@ -67,9 +67,8 @@ libboard$(LIBEXT): $(OBJS)
 depend: .depend
 
 clean:
-	rm -f libboard$(LIBEXT)
-	rm -f *.asm *.rel *.lst *.rst *.sym *.adb *.lnk *.map *.mem *.ihx *.hex *~
-	if [ ! -z "$(OBJEXT)" ]; then rm -f *$(OBJEXT); fi
+	@rm -f libboard$(LIBEXT) *~ .*.swp
+	$(call CLEAN)
 
 distclean: clean
 	rm -f Make.dep .depend
diff --git a/configs/sim/Make.defs b/configs/sim/Make.defs
index 528d8cf53e33abd0e84dca38c54f598f2be1f885..28069e16a36a00150ba8d9b24d5714649acbfc7b 100644
--- a/configs/sim/Make.defs
+++ b/configs/sim/Make.defs
@@ -83,6 +83,10 @@ define ARCHIVE
 	$(AR) $1 $2 || { echo "$(AR) $1 $2 FAILED!" ; exit 1 ; }
 endef
 
+define CLEAN
+	@rm -f *.o *.a
+endef
+
 MKDEP			= $(TOPDIR)/tools/mkdeps.sh
 
 HOSTCC			= gcc
diff --git a/configs/sim/src/Makefile b/configs/sim/src/Makefile
index 55f6860917dd38602430ffe9ea5bf4702fb2ce7b..076b917c5dee20e2c90f2cc947ae592072a74190 100644
--- a/configs/sim/src/Makefile
+++ b/configs/sim/src/Makefile
@@ -65,8 +65,8 @@ libboard$(LIBEXT): $(OBJS)
 depend: .depend
 
 clean:
-	rm -f libboard$(LIBEXT) *~
-	if [ ! -z "$(OBJEXT)" ]; then rm -f *$(OBJEXT); fi
+	@rm -f libboard$(LIBEXT) *~ .*.swp
+	$(call CLEAN)
 
 distclean: clean
 	rm -f Make.dep .depend
diff --git a/configs/z16f2800100zcog/Make.defs b/configs/z16f2800100zcog/Make.defs
index 7e1984384f62d376e6ab490c5198ab349dd152ca..8c5b7edfd8fc1fa846792539c92eb0c233e11ecb 100644
--- a/configs/z16f2800100zcog/Make.defs
+++ b/configs/z16f2800100zcog/Make.defs
@@ -131,6 +131,10 @@ define ARCHIVE
 	$(AR) $(ARFLAGS) $1=-+$2 || { echo "$(AR) $1=-+$2 FAILED!" ; exit 1 ; }
 endef
 
+define CLEAN
+	@rm -f *.obj *.src *.lib *.hex
+endef
+
 # This is the tool to use for dependencies (i.e., none)
 
 MKDEP			= $(TOPDIR)/tools/mknulldeps.sh
diff --git a/configs/z16f2800100zcog/src/Makefile b/configs/z16f2800100zcog/src/Makefile
index a479cdbe2fce8e16f978a87304258986f4009cb6..33ac4263bcca7dca5922eb825bb285214df909e9 100644
--- a/configs/z16f2800100zcog/src/Makefile
+++ b/configs/z16f2800100zcog/src/Makefile
@@ -70,8 +70,8 @@ libboard$(LIBEXT): $(OBJS)
 depend: .depend
 
 clean:
-	rm -f libboard$(LIBEXT) *~
-	if [ ! -z "$(OBJEXT)" ]; then rm -f *$(OBJEXT); fi
+	@rm -f libboard$(LIBEXT) *~ .*.swp
+	$(call CLEAN)
 
 distclean: clean
 	rm -f Make.dep .depend
diff --git a/configs/z80sim/Make.defs b/configs/z80sim/Make.defs
index 2e4c6db47b9973274d591f48df9aefe165d0b66f..75b6de6c83d2ef2147e37f71eb9ec20882ddcef1 100644
--- a/configs/z80sim/Make.defs
+++ b/configs/z80sim/Make.defs
@@ -82,6 +82,10 @@ define ARCHIVE
 	$(AR) $1 $2 || { echo "$(AR) $1 $2 FAILED!" ; exit 1 ; }
 endef
 
+define CLEAN
+	@rm -f *.asm *.rel *.lst *.rst *.sym *.adb *.lnk *.map *.mem *.ihx *.hex
+endef
+
 MKDEP			= $(TOPDIR)/tools/mkdeps.sh
 
 HOSTCC			= gcc
diff --git a/configs/z80sim/src/Makefile b/configs/z80sim/src/Makefile
index fba996597c8cf9ddc087b85027b06773ed767462..472037c5850d1f949c28fb025e1293d4c33ba879 100644
--- a/configs/z80sim/src/Makefile
+++ b/configs/z80sim/src/Makefile
@@ -67,9 +67,8 @@ libboard$(LIBEXT): $(OBJS)
 depend: .depend
 
 clean:
-	rm -f libboard$(LIBEXT)
-	rm -f *.asm *.rel *.lst *.rst *.sym *.adb *.lnk *.map *.mem *.ihx *.hex *~
-	if [ ! -z "$(OBJEXT)" ]; then rm -f *$(OBJEXT); fi
+	@rm -f libboard$(LIBEXT) *~ .*.swp
+	$(call CLEAN)
 
 distclean: clean
 	rm -f Make.dep .depend
diff --git a/drivers/Makefile b/drivers/Makefile
index cfe0ab02d6a8146955ed5674ac4172776643de71..1655629d730eddc465fcc255698a29885e56fb37 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -80,9 +80,10 @@ endif
 depend: .depend
 
 clean:
-	rm -f $(BIN) *.o *.obj *.rel *.asm *.lst *.sym *.adb *~
+	@rm -f $(BIN) *~ .*.swp
+	$(call CLEAN)
 
 distclean: clean
-	rm -f Make.dep .depend
+	@rm -f Make.dep .depend
 
 -include Make.dep
diff --git a/examples/mount/Makefile b/examples/mount/Makefile
index bee957d072f5ad73b96d8b02d81e9aadee536113..71e75ed9bc20b32ff129b3edf3fbac260541ebd6 100644
--- a/examples/mount/Makefile
+++ b/examples/mount/Makefile
@@ -66,9 +66,10 @@ $(BIN):	$(OBJS)
 depend: .depend
 
 clean:
-	rm -f $(BIN) *.o *.obj *.rel *.asm *.lst *.sym *.adb *~
+	@rm -f $(BIN) *~ .*.swp
+	$(call CLEAN)
 
 distclean: clean
-	rm -f Make.dep .depend
+	@rm -f Make.dep .depend
 
 -include Make.dep
diff --git a/examples/nettest/Makefile b/examples/nettest/Makefile
index 1a917e3bebef1693600b2229099159148c7341e4..0dd12ccbf459231aa1888c911759e91e7770bc31 100644
--- a/examples/nettest/Makefile
+++ b/examples/nettest/Makefile
@@ -97,9 +97,10 @@ $(HOST_BIN):	$(HOST_OBJS)
 depend: .depend
 
 clean:
-	rm -f $(TARG_BIN) $(HOST_BIN) *.o *.obj *.rel *.asm *.lst *.sym *.adb *~
+	@rm -f $(TARG_BIN) $(HOST_BIN) *~ .*.swp
+	$(call CLEAN)
 
 distclean: clean
-	rm -f Make.dep .depend
+	@rm -f Make.dep .depend
 
 -include Make.dep
diff --git a/examples/nsh/Makefile b/examples/nsh/Makefile
index 9c1bb7a780179d4901e8a667e28a4d5800192d3b..2f1c2c804e38f6d48fcf916c633c6c0bf4a15064 100644
--- a/examples/nsh/Makefile
+++ b/examples/nsh/Makefile
@@ -79,9 +79,10 @@ $(BIN):	$(OBJS)
 depend: .depend
 
 clean:
-	rm -f $(BIN) *.o *.obj *.rel *.asm *.lst *.sym *.adb *~
+	@rm -f $(BIN) *~ .*.swp
+	$(call CLEAN)
 
 distclean: clean
-	rm -f Make.dep .depend
+	@rm -f Make.dep .depend
 
 -include Make.dep
diff --git a/examples/null/Makefile b/examples/null/Makefile
index 39542b084d6617ca5f5c249e59792fc2a62cf4b0..3eb745b4135b242bff2b1aa2701cf5335e85c88c 100644
--- a/examples/null/Makefile
+++ b/examples/null/Makefile
@@ -66,9 +66,10 @@ $(BIN):	$(OBJS)
 depend: .depend
 
 clean:
-	rm -f $(BIN) *.o *.obj *.rel *.asm *.lst *.sym *.adb *~
+	@rm -f $(BIN) *~ .*.swp
+	$(call CLEAN)
 
 distclean: clean
-	rm -f Make.dep .depend
+	@rm -f Make.dep .depend
 
 -include Make.dep