programs: Make `make clean` clean all programs always

If `make TEST_CPP:=1` is run, and then `make clean` (as opposed to `make
TEST_CPP:=1 clean`), the cpp_dummy_build will be left behind after the
clean. Make `make clean more convenient to use by removing programs that
could be generated from any configuration, not just the active one.

Fixes #1862
diff --git a/ChangeLog b/ChangeLog
index 62e5a8c..af3f236 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -63,6 +63,7 @@
      test CRTs are available because MBEDTLS_PEM_PARSE_C is disabled.
      Fixes #2254.
    * Replace multiple uses of MD2 by SHA-256 in X.509 test suite. Fixes #821.
+   * Make `make clean` clean all programs always. Fixes #1862.
 
 = mbed TLS 2.7.10 branch released 2019-03-19
 
diff --git a/programs/Makefile b/programs/Makefile
index b4a553a..d38b9e7 100644
--- a/programs/Makefile
+++ b/programs/Makefile
@@ -276,6 +276,8 @@
 clean:
 ifndef WINDOWS
 	rm -f $(APPS)
+	-rm -f ssl/ssl_pthread_server$(EXEXT)
+	-rm -f test/cpp_dummy_build$(EXEXT)
 else
 	del /S /Q /F *.o *.exe
 endif