Handle deleting non-existant files on Windows

If we try to delete a non-existant file using del on Windows, as
can happen when running make clean, del will throw an error. Make
the Makefiles more robust by only deleting files if they exist.
diff --git a/library/Makefile b/library/Makefile
index 1764b05..501421f 100644
--- a/library/Makefile
+++ b/library/Makefile
@@ -165,5 +165,7 @@
 ifndef WINDOWS
 	rm -f *.o libmbed* $(OBJS_CRYPTO)
 else
-	del /Q /F *.o libmbed* $(OBJS_CRYPTO)
+	if exist *.o del /Q /F *.o
+	if exist libmbed* del /Q /F libmbed*
+	if exist $(OBJS_CRYPTO) del /Q /F $(OBJS_CRYPTO)
 endif
diff --git a/programs/Makefile b/programs/Makefile
index 589b1b5..dce970b 100644
--- a/programs/Makefile
+++ b/programs/Makefile
@@ -317,7 +317,8 @@
 	-rm -f ssl/ssl_pthread_server$(EXEXT)
 	-rm -f test/cpp_dummy_build$(EXEXT)
 else
-	del /S /Q /F *.o *.exe
+	if exist *.o del /Q /F *.o
+	if exist *.exe del /Q /F *.exe
 endif
 	$(MAKE) -C fuzz clean
 
diff --git a/programs/fuzz/Makefile b/programs/fuzz/Makefile
index 83059aa..5cde090 100644
--- a/programs/fuzz/Makefile
+++ b/programs/fuzz/Makefile
@@ -69,5 +69,6 @@
 ifndef WINDOWS
 	rm -rf $(BINARIES) *.o
 else
-	del /Q /F *.o *.exe
+	if exist *.o del /Q /F *.o
+	if exist *.exe del /Q /F *.exe
 endif
diff --git a/tests/Makefile b/tests/Makefile
index 1c7efe0..0bed6b1 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -160,7 +160,9 @@
 ifndef WINDOWS
 	rm -rf $(BINARIES) *.c *.datax TESTS
 else
-	del /Q /F *.c *.exe *.datax
+	if exist *.c del /Q /F *.c
+	if exist *.exe del /Q /F *.exe
+	if exist *.datax del /Q /F *.datax
 ifneq ($(wildcard TESTS/.*),)
 	rmdir /Q /S TESTS
 endif