SOURCES = $(wildcard sources/*.v source/*.vhd)
 PART ?= xc3s1500-fg456-4
 TARGET ?= bit
+CLEANFILES ?=
 
 ifdef DRIVER
 PRELOAD = LD_PRELOAD=$(DRIVER)
        @rm xcf.batch.tmp
 
 clean:
-       @rm -rf *.bit *.bgn *.mcs *.prm *.bld *.drc *.mcs *.ncd *.ngc *.ngd *.edn \
+       @rm -rf *.bit *.bgn *.mcs *.prm *.bld *.drc *.mcs *.ncd *.ngc *.ngd *.edn *.ncf *.ngo \
                *.ngr *.pad *.par *.pcf *.prm *.syr *.twr *.twx *.xpi *.lso *.prm *.mcs _impact* \
-               *.vm6 *.jed *.gyd *.mfd *.pnx *.rpt *.err \
+               *.vm6 *.jed *.gyd *.mfd *.pnx *.rpt *.err *.log \
                $(PROJECT)_map.* $(PROJECT)_pad.* \
                _ngo xst  \
                build.log \
-               $(PROJECT).unroutes *.xml
+               $(PROJECT).unroutes *.xml $(CLEANFILES)
 
 .PHONY: all final burn load flash clean xst ngdbuild log