Bug 132072 - make install does not start an install until compiling finishes
Summary: make install does not start an install until compiling finishes
Status: RESOLVED FIXED
Alias: None
Product: buildsystem
Classification: Developer tools
Component: KDE4 (cmake) (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: Alexander Neundorf
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-08-08 19:25 UTC by Alexander Neundorf
Modified: 2006-08-29 21:02 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alexander Neundorf 2006-08-08 19:25:24 UTC
Version:           svn (using KDE Devel)
Installed from:    Compiled sources
Compiler:          gcc 
OS:                Linux

make install does not start an install until compiling finishes.
installing one project to quickly look at it is impossible since cmake insists on compiling the whole project before it starts to install anything.
Comment 1 Alexander Neundorf 2006-08-08 19:30:24 UTC
If you "make install", it will automatically do a "make all" before, even if done in a subdirectory.
This can be disabled by setting CMAKE_SKIP_INSTALL_ALL_DEPENDENCY to TRUE. Then "make install" would just try to install, and if nothing has been built, it will just fail.
Some people prefer may prefer this way, others (I discussed this with David) would consider this a bug. So I will leave this option disabled.
Check if you can disable it for you by setting it to TRUE using ccmake or -D...=TRUE.

Which version of cmake are you using ?

If you do a "make install/fast" (not sure it works with cmake 2.4.2, it does work with 2.4.3), it should build an relink only the current directory and then install it.
Does this work for you ?

Alex

Comment 2 Thomas Zander 2006-08-08 20:09:20 UTC
I think you misunderstood the bug. This is about installing libs as soon as they are linked instead of waiting for all files to be compiled + linked.

So I expect something like

compile foo.cp
compile bar.cpp
link x
install x
compile thing.cpp
compile baz.cpp
link y
install y
Comment 3 Alexander Neundorf 2006-08-08 21:58:47 UTC
In which cases does this help ?
It should only make a difference if the project doesn't compile.
I guess a buildsystem author would reply: "if your project doesn't compile, go fix it." (I know that that's really hard to do in KDE with its large modules)

Does "make -i install" do what you want ?
Maybe together with "cmake <dir> -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY:BOOL=TRUE"

Alex
Comment 4 Thomas Zander 2006-08-08 22:13:02 UTC
On Tuesday 8 August 2006 21:58, Alexander Neundorf wrote:
> In which cases does this help ?


read the usecase I stated in the original bugreport.

make install in koffice takes over an hour before it _starts_ to install.
If I only updated svn I want the libraries installed as soon as they are 
linked so I can see how their changes effected the already installed 
apps.
Comment 5 Alexander Neundorf 2006-08-10 00:22:10 UTC
Can you try "cmake -P cmake_install.cmake" ?
This is what is done on "make install".
I'll have a look whether maybe a special target can be added in the generated makefiles (e.g. "make install_local").
Would this help ?

Alex
Comment 6 Thomas Zander 2006-08-10 00:30:34 UTC
the cmake call just does what make install/fast does; which has nothing to do with this request since it still separates installing from compiling.

I'm not sure what a 'install_local' would do, from the name I think it would not help since you still want to keep installing separate from compiling while they should be merged into one target. See my example in comment 2.
Comment 7 Alexander Neundorf 2006-08-29 21:02:36 UTC
Current cmake cvs has "make install/local" which will just install the local directory.
So you should be able to do something like "make libkoffice install/local".