AVRO-1840: Ensure that build.sh clean really cleans all generated files
diff --git a/CHANGES.txt b/CHANGES.txt
index 4eac415..c33e743 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -38,6 +38,8 @@
     AVRO-1838: Java: Update checkstyle to catch trailing whitespace.
     (nielsbasjes via blue)
 
+    AVRO-1840: Ensure that build.sh clean really cleans all generated files (nielsbasjes)
+
   BUG FIXES
 
     AVRO-1493. Java: Avoid the "Turkish Locale Problem". Schema fingerprints are
diff --git a/build.sh b/build.sh
index a373c2c..93654db 100755
--- a/build.sh
+++ b/build.sh
@@ -167,9 +167,20 @@
       (cd doc; ant clean)
 
       (mvn clean)
+      rm -rf lang/java/*/userlogs/
+      rm -rf lang/java/*/dependency-reduced-pom.xml
 
       (cd lang/py; ant clean)
+      rm -rf lang/py/userlogs/
+
       (cd lang/py3; python3 setup.py clean)
+      rm -rf lang/py3/dist
+      rm -rf lang/py3/avro_python3.egg-info
+      rm -f  lang/py3/avro/*.avsc
+      rm -f  lang/py3/avro/VERSION.txt
+      rm -rf lang/py3/avro/__pycache__/
+      rm -f  lang/py3/avro/tests/interop.avsc
+      rm -rf lang/py3/avro/tests/__pycache__/
 
       (cd lang/c; ./build.sh clean)
 
@@ -184,6 +195,10 @@
       (cd lang/php; ./build.sh clean)
 
       (cd lang/perl; [ ! -f Makefile ] || make clean)
+      rm -f  lang/perl/Avro-*.tar.gz
+      rm -f  lang/perl/META.yml
+      rm -f  lang/perl/Makefile.old
+      rm -rf lang/perl/inc/
       ;;
 
     docker)
diff --git a/lang/c++/build.sh b/lang/c++/build.sh
index e5beaea..2c98885 100755
--- a/lang/c++/build.sh
+++ b/lang/c++/build.sh
@@ -97,6 +97,7 @@
 
   clean)
     (cd build && make clean)
+    rm -rf doc test.avro test6.df
     ;;
 
   install)
diff --git a/lang/c/build.sh b/lang/c/build.sh
index e00db69..f76f035 100755
--- a/lang/c/build.sh
+++ b/lang/c/build.sh
@@ -36,9 +36,11 @@
 
 function clean {
   if [ -d $build_dir ]; then
-  find $build_dir | xargs chmod 755
-  rm -rf $build_dir
+    find $build_dir | xargs chmod 755
+    rm -rf $build_dir
   fi
+  rm -f VERSION.txt
+  rm -f examples/quickstop.db
 }
 
 case "$1" in
diff --git a/lang/csharp/build.sh b/lang/csharp/build.sh
index 66520c1..97beaf8 100755
--- a/lang/csharp/build.sh
+++ b/lang/csharp/build.sh
@@ -53,8 +53,9 @@
     ;;
 
   clean)
-    rm -rf src/apache/{main,test,codegen,ipc}/obj
+    rm -rf src/apache/{main,test,codegen,ipc,msbuild,perf}/obj
     rm -rf build
+    rm -f  TestResult.xml
     ;;
 
   *)
diff --git a/lang/js/build.sh b/lang/js/build.sh
index 08823fc..45a31f5 100755
--- a/lang/js/build.sh
+++ b/lang/js/build.sh
@@ -30,7 +30,7 @@
     mv avro-js-*.tgz ../../dist/js
     ;;
   clean)
-    rm -rf node_modules
+    rm -rf coverage
     ;;
   *)
     echo "Usage: $0 {test|dist|clean}" >&2
diff --git a/lang/ruby/build.sh b/lang/ruby/build.sh
index 3c3e043..ed8a61e 100755
--- a/lang/ruby/build.sh
+++ b/lang/ruby/build.sh
@@ -39,6 +39,7 @@
 
      clean)
         bundle exec rake clean
+        rm -rf tmp avro.gemspec data.avr
        ;;
 
      *)