Hi,
I'm playing around with LLVM and stumbled upon this issue while while performing "make install". The build itself was successful. I'm using the latest git version.
#make install
-- Installing: /home/alesko/llvm-install/bin/llvm-mc
-- Installing: /home/alesko/llvm-install/bin/sancov
-- Installing: /home/alesko/llvm-install/bin/opt
-- Installing: /home/alesko/llvm-install/bin/llvm-split
-- Installing: /home/alesko/llvm-install/bin/llvm-cov
-- Installing: /home/alesko/llvm-install/bin/obj2yaml
CMake Error at docs/cmake_install.cmake:36 (file):
file INSTALL cannot find
"/home/alesko/repositories/build-llvm/docs/ocamldoc/html".
Call Stack (most recent call first):
cmake_install.cmake:66 (include)
Makefile:93: recipe for target 'install' failed
make: *** [install] Error 1
Without ocaml, install works fine.
What am I missing?
regards,
Alen
Not sure, but my guess is that the ocaml documents targets aren’t being included in the ALL target, which is resulting in them not being built before the install action.
The fix for this will probably involve changing the add_custom_target command at docs/CMakeLists.txt:146 to be split out into several add_custom_command calls that have output files, and making the target depend on the output files.
-Chris
Not sure, but my guess is that the ocaml documents targets aren’t being included in the ALL target, which is resulting in them not being built before the install action.
I think you're right. Running "make ocaml_doc" then rerunning "make install" completed the build.
The fix for this will probably involve changing the add_custom_target command at docs/CMakeLists.txt:146 to be split out into several add_custom_command calls that have output files, and making the target depend on the output files.
Adding "ALL" to that add_custom_command let a general "make && make install" build finish. Is that a viable fix, or would it have some other effects I'm not aware of?
-Alex
I think you meant adding ALL to the add_custom_target call, that should work.
The only side-effect of that is that because the add_custom_target isn’t a custom_command with properly mapped outputs it will always re-run, so “make && make” and “make && make install” will both build the docs twice. Not sure if anyone really cares about that.
The better solution would probably be to do one or more add_custom_commands that had output files that could be timestamp compared against the inputs, but that may be more work than it is worth here.
-Chris
Something like this?
llvm-ocaml.patch (1.07 KB)