[llvm-dev] LLVM fails to install with ocaml enabled

44 views
Skip to first unread message

Alen Skondro via llvm-dev

unread,
Dec 4, 2015, 2:20:17 PM12/4/15
to llvm...@lists.llvm.org
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

_______________________________________________
LLVM Developers mailing list
llvm...@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

Chris Bieneman via llvm-dev

unread,
Dec 9, 2015, 1:56:20 PM12/9/15
to Alen Skondro, llvm...@lists.llvm.org
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

Alex Wang via llvm-dev

unread,
Dec 16, 2015, 3:43:57 PM12/16/15
to Chris Bieneman, Alen Skondro, llvm...@lists.llvm.org

> On Dec 9, 2015, at 1:56 PM, Chris Bieneman via llvm-dev <llvm...@lists.llvm.org> wrote:
>
> 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

Chris Bieneman via llvm-dev

unread,
Dec 16, 2015, 4:10:56 PM12/16/15
to Alex Wang, Alen Skondro, llvm...@lists.llvm.org
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

Alex Wang via llvm-dev

unread,
Dec 16, 2015, 5:55:39 PM12/16/15
to Chris Bieneman, Alen Skondro, llvm...@lists.llvm.org
Something like this?

llvm-ocaml.patch
Reply all
Reply to author
Forward
0 new messages