Use a full config.h with doxygen

Otherwise we get warnings that some documentation items don't have
corresponding #define, and more importantly the corresponding snippets are not
included in the output.

For that we need a modified version of the "full" argument for config.pl.

Also, the new CMakeLists.txt target only works on Unix (which was already the
case of the Makefile target). Hopefully this is not an issue as people are
unlikely to need that target on Windows.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 094d906..8905218 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -85,9 +85,20 @@
     add_subdirectory(programs)
 endif()
 
-ADD_CUSTOM_TARGET(apidoc
-    COMMAND doxygen doxygen/mbedtls.doxyfile
-    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
+# targets for doxygen only work on Unix
+if(UNIX)
+    ADD_CUSTOM_TARGET(apidoc
+        COMMAND mkdir -p apidoc
+        COMMAND cp include/mbedtls/config.h include/mbedtls/config.h.bak
+        COMMAND scripts/config.pl realfull
+        COMMAND doxygen doxygen/mbedtls.doxyfile
+        COMMAND mv include/mbedtls/config.h.bak include/mbedtls/config.h
+        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
+
+    ADD_CUSTOM_TARGET(apidoc_clean
+        COMMAND rm -rf apidoc
+        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
+endif(UNIX)
 
 if(ENABLE_TESTING)
     enable_testing()