Revert changes done to 'make apidoc' target

This partially reverts 1989caf7 (only the changes to Makefile and
CMakeLists, the addition to scripts/config.pl is kept).

Modifying config.h in the apidoc target creates a race condition with

    make -j4 all apidoc

where some parts of the library, tests or programs could be built with the
wrong config.h, resulting in all kinds of (semi-random) errors. Recent
versions of CMake mitigate this by adding a .NOTPARALLEL target to the
generated Makefile, but people would still get errors with older CMake
versions that are still in use (eg in RHEL 5), and with plain make.

An additional issue is that, by failing to use cp -p, the apidoc target was
updating the timestamp on config.h, which seems to cause further build issues.

Let's get back to the previous, safe, situation. The improved apidoc building
will be resurrected in a script in the next commit.

fixes #390
fixes #391
parent 04d42111
......@@ -85,20 +85,9 @@ if(ENABLE_PROGRAMS)
add_subdirectory(programs)
endif()
# 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)
ADD_CUSTOM_TARGET(apidoc
COMMAND doxygen doxygen/mbedtls.doxyfile
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
if(ENABLE_TESTING)
enable_testing()
......
......@@ -6,6 +6,8 @@ Bugfix
* Fix bug in mbedtls_mpi_add_mpi() that caused wrong results when the three
arguments where the same (in-place doubling). Found and fixed by Janos
Follath.
* Fix potential build failures related to the 'apidoc' target, introduced
in the previous patch release. Found by Robert Scheck. #390 #391
= mbed TLS 2.2.1 released 2016-01-05
......
......@@ -87,10 +87,7 @@ lcov:
apidoc:
mkdir -p apidoc
cp include/mbedtls/config.h include/mbedtls/config.h.bak
scripts/config.pl realfull
doxygen doxygen/mbedtls.doxyfile
mv include/mbedtls/config.h.bak include/mbedtls/config.h
apidoc_clean:
rm -rf apidoc
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment