Index: Makefile.am
===================================================================
--- Makefile.am	(revision d7a10aff63ea1cd1a6c0d13bc06ac341ed3ef568)
+++ Makefile.am	(revision 2a59655a1dd1d977b68a881bb4951a8e017eeb1d)
@@ -19,4 +19,5 @@
 
 MAINTAINERCLEANFILES = lib/* bin/* tests/.deps/* tests/.out/* # order important
+DISTCLEANFILES = version
 
 SUBDIRS = driver src . @LIBCFA_TARGET_DIRS@
@@ -50,2 +51,18 @@
 	@./config.status --config | sed "s/ /\n\t/g; s/\t'/\t/g; s/'\n/\n/g; s/^'//g; s/'$$//g"
 	@find libcfa -name config.status -printf "\n%h\n\t" -exec {} --config \; | sed "s/ /\n\t/g; s/\t'/\t/g; s/'\n/\n/g; s/^'//g; s/'$$//g"
+
+mostlyclean-local: @LIBCFA_TARGET_MAKEFILES@
+	for dir in @LIBCFA_TARGET_DIRS@; do \
+		$(MAKE) -C $${dir} mostlyclean; \
+	done
+
+clean-local: @LIBCFA_TARGET_MAKEFILES@
+	for dir in @LIBCFA_TARGET_DIRS@; do \
+		$(MAKE) -C $${dir} clean; \
+	done
+
+distclean-local: @LIBCFA_TARGET_MAKEFILES@
+	for dir in @LIBCFA_TARGET_DIRS@; do \
+		$(MAKE) -C $${dir} distclean; \
+		rm $${dir}/config.data; \
+	done
Index: driver/Makefile.am
===================================================================
--- driver/Makefile.am	(revision d7a10aff63ea1cd1a6c0d13bc06ac341ed3ef568)
+++ driver/Makefile.am	(revision 2a59655a1dd1d977b68a881bb4951a8e017eeb1d)
@@ -28,4 +28,5 @@
 	@test -z "$(CFA_BINDIR)" || $(MKDIR_P) "$(CFA_BINDIR)"
 	@echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) cfa '$(CFA_BINDIR)/$(CFA_NAME)'"; \
+	chmod u+w $(CFA_BINDIR);\
 	$(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) cfa $(CFA_BINDIR)/$(CFA_NAME) || exit $$?
 
Index: libcfa/prelude/Makefile.am
===================================================================
--- libcfa/prelude/Makefile.am	(revision d7a10aff63ea1cd1a6c0d13bc06ac341ed3ef568)
+++ libcfa/prelude/Makefile.am	(revision 2a59655a1dd1d977b68a881bb4951a8e017eeb1d)
@@ -70,4 +70,5 @@
 
 MOSTLYCLEANFILES = bootloader.c builtins.cf extras.cf gcc-builtins.c gcc-builtins.cf prelude.cfa
+DISTCLEANFILES = $(DEPDIR)/builtins.Po
 MAINTAINERCLEANFILES = ${addprefix ${libdir}/,${cfalib_DATA}} ${addprefix ${libdir}/,${lib_LIBRARIES}}
 
Index: libcfa/src/Makefile.am
===================================================================
--- libcfa/src/Makefile.am	(revision d7a10aff63ea1cd1a6c0d13bc06ac341ed3ef568)
+++ libcfa/src/Makefile.am	(revision 2a59655a1dd1d977b68a881bb4951a8e017eeb1d)
@@ -197,4 +197,7 @@
 	-rm -rf ${CFA_INCDIR} ${CFA_LIBDIR}
 
+distclean-local:
+	find ${builddir} -path '*.Plo' -delete
+
 
 # $(AM_V_CFA)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
Index: tests/Makefile.am
===================================================================
--- tests/Makefile.am	(revision d7a10aff63ea1cd1a6c0d13bc06ac341ed3ef568)
+++ tests/Makefile.am	(revision 2a59655a1dd1d977b68a881bb4951a8e017eeb1d)
@@ -102,6 +102,13 @@
 	@+${TEST_PY} --debug=${debug} --install=${installed} --archive-errors=${archiveerrors} ${concurrent} ${timeouts} --all # '@' => do not echo command (SILENT), '+' => allows recursive make from within python program
 
-clean-local :
+mostlyclean-local :
 	rm -f ${EXTRA_PROGRAMS}
+	rm -rf __pycache__
+	find ${builddir} -path '*.o' -delete
+	find ${builddir} -path '*/.err/*.log' -delete
+	find ${builddir} -path '*/.out/*.log' -delete
+
+distclean-local :
+	find ${builddir} -path '*.Po' -delete
 
 list :
