diff --git a/Lib/gftools/builder/__init__.py b/Lib/gftools/builder/__init__.py
index 661ef9c0..afdb9f20 100644
--- a/Lib/gftools/builder/__init__.py
+++ b/Lib/gftools/builder/__init__.py
@@ -349,12 +349,21 @@ def draw_graph(self):
             print("Could not parse ninja build file")
 
     def clean(self):
-        for file in ["./build.ninja", "./.ninja_log"]:
-            if os.path.exists(file):
-                os.remove(file)
+        if hasattr(self, "config") and isinstance(self.config, dict):
+            cleanUp = self.config.get("cleanUp")
+            if cleanUp == True:
+                print("Cleaning up temporary files...")
 
-        if os.path.exists("instance_ufos"):
-            shutil.rmtree("instance_ufos")
+                for file in ["./build.ninja", "./.ninja_log"]:
+                    if os.path.exists(file):
+                        os.remove(file)
+
+                if os.path.exists("instance_ufos"):
+                    shutil.rmtree("instance_ufos")
+
+                print("Done cleaning up temporary files")
+        else:
+            print("Configuration not found or invalid, skipping cleanup.")
 
 
 def main(args=None):