Re: [Libreoffice] how to 'make' a single target?

2011-10-30 Thread Kevin Hunter

At 9:29pm -0400 Sat, 29 Oct 2011, Bjoern Michaelsen wrote:

On Sat, Oct 29, 2011 at 06:17:09PM -0400, Kevin Hunter wrote:

This is proving very cumbersome, however, as I'm unable to re-make
just the affected files. For instance



$ make -j1 | head; sleep; make -j1 | head


The attached output indeed should never happen. What file did you
touch to generate it?


Between those two make runs?  Nada.  (That's why I showed it working in 
one shell command line.)  If you mean before I started the compile, I'd 
touched a bunch of ScPostIt* related files in sc/inc and 
sc/source/core/data.


However, I churned through the slow build time about 20 times last night 
until I was finally able to build 'sc'.  Now the behavior seems to be 
correct, in that only the necessary files are actually built.  I.e. I 
can no longer recreate that behavior.


From the outside, it smells to me like there is a transactional 
behavior defined in the make files.  That is, if all the files of a 
certain transaction don't get built properly, then the build redoes all 
of them.  Is that expected/intentional behavior?  Or did I just hit some 
corner case in my sc/ modifications?



Should not at least the first 3 completed executions no longer need
to be re-executed?


Yes. Could you check the timestamps of
(1) [...]/workdir/unxlngx6.pro/Dep/CxxObject/sc/source/filter/dif/difexp.d
being newer than
(2) [...]/workdir/unxlngx6.pro/CxxObject/sc/source/filter/dif/difexp.o
and that again being newer than
(3) [...]/sc/source/filter/dif/difexp.cxx
, please?


Last night, (2) was newer than (1), (1) was newer than (3).  Now, after 
a couple of successful builds,  (3) is newer than (2), which is newer 
than (1).  Summary (= == younger than):


Before success: (2) = (1) = (3)
After success:  (3) = (2) = (1)

In any event, since I can't recreate it anymore, and it seems to be 
working fine, I'm moving on ...


Thanks,

Kevin
___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


[Libreoffice] how to 'make' a single target?

2011-10-29 Thread Kevin Hunter

Hullo List,

I'm currently working in the sc/ module, and I'm in the make small 
change, re-compile, make small change, re-compile stage.  This is 
proving very cumbersome, however, as I'm unable to re-make just the 
affected files.  For instance, note my attached output, showing the 
output of


$ make -j1 | head; sleep; make -j1 | head

Should not at least the first 3 completed executions no longer need to 
be re-executed?


This is frustrating because it results in a latency of 5+ minutes on my 
slow 2-core machine before I can see the results of a code change.


Are there any pointers for me on how I can compile _just the exact_ 
piece of code on which I'm working (and affected other snippets, of course)?


Thanks,

Kevin
$ . Env.Host.sh

$ cd sc/

$ echo; make -j1 | head; echo -e \n-\nFinished 1st round\n-; sleep 
2s; make -j1 | head

[ build CXX ] sc/source/filter/dif/difexp
R=[...]  S=$R/libreoffice  O=$S/solver/unxlngx6.pro  
W=$S/workdir/unxlngx6.pro   mkdir -p $W/CxxObject/sc/source/filter/dif/ 
$W/Dep/CxxObject/sc/source/filter/dif/  ccache g++ -DCPPU_ENV=gcc3 
-DENABLE_GRAPHITE -DENABLE_GTK -DENABLE_LAYOUT=0 -DENABLE_LAYOUT_EXPERIMENTAL=0 
-DGCC -DGXX_INCLUDE_PATH=/usr/local/include/c++/4.6.1 
-DHAVE_GCC_VISIBILITY_FEATURE -DHAVE_THREADSAFE_STATICS -DLINUX -DNDEBUG 
-DOPTIMIZE -DOSL_DEBUG_LEVEL=0 -DPRODUCT -DSUPD=350 -DUNIX -DUNX -DVCL -DX86_64 
-D_PTHREADS -D_REENTRANT-Wall -Wendif-labels -Wextra -Wshadow -Wsign-promo 
-Woverloaded-virtual -Wno-non-virtual-dtor -fPIC -fmessage-length=0 -fno-common 
-pipe  -fvisibility=hidden  -fvisibility-inlines-hidden  -std=c++0x   
-DEXCEPTIONS_ON -fexceptions -fno-enforce-eh-specs  -O2 -c 
$S/sc/source/filter/dif/difexp.cxx -o 
$W/CxxObject/sc/source/filter/dif/difexp.o -MMD -MT 
$W/CxxObject/sc/source/filter/dif/difexp.o -MP -MF 
$W/Dep/CxxObject/sc/source/filter/dif/difexp.d -I$S/sc/source/filter/dif/ 
-I$O/inc/stl -I$S/sc/source/core/inc -I$S/sc/source/filter/inc 
-I$S/sc/source/ui/inc -I$S/sc/inc -I$S/sc/inc/pch -I$W/Misc/sc/ 
-I$O/inc/external -I$O/inc -I$O/include -I$S/solenv/unxlngx6/inc 
-I$S/solenv/inc -I$S/res -I$S/solenv/inc/Xp31 -I$W/oox/inc/ -I$O/inc  
-I$O/inc/offapi -I$O/inc/udkapi
touch 
/home/kevin/devel/libreoffice/workdir/unxlngx6.pro/Dep/CxxObject/sc/source/filter/dif/difexp.d
[ build CXX ] sc/source/filter/dif/difimp
R=[...]  S=$R/libreoffice  O=$S/solver/unxlngx6.pro  
W=$S/workdir/unxlngx6.pro   mkdir -p $W/CxxObject/sc/source/filter/dif/ 
$W/Dep/CxxObject/sc/source/filter/dif/  ccache g++ -DCPPU_ENV=gcc3 
-DENABLE_GRAPHITE -DENABLE_GTK -DENABLE_LAYOUT=0 -DENABLE_LAYOUT_EXPERIMENTAL=0 
-DGCC -DGXX_INCLUDE_PATH=/usr/local/include/c++/4.6.1 
-DHAVE_GCC_VISIBILITY_FEATURE -DHAVE_THREADSAFE_STATICS -DLINUX -DNDEBUG 
-DOPTIMIZE -DOSL_DEBUG_LEVEL=0 -DPRODUCT -DSUPD=350 -DUNIX -DUNX -DVCL -DX86_64 
-D_PTHREADS -D_REENTRANT-Wall -Wendif-labels -Wextra -Wshadow -Wsign-promo 
-Woverloaded-virtual -Wno-non-virtual-dtor -fPIC -fmessage-length=0 -fno-common 
-pipe  -fvisibility=hidden  -fvisibility-inlines-hidden  -std=c++0x   
-DEXCEPTIONS_ON -fexceptions -fno-enforce-eh-specs  -O2 -c 
$S/sc/source/filter/dif/difimp.cxx -o 
$W/CxxObject/sc/source/filter/dif/difimp.o -MMD -MT 
$W/CxxObject/sc/source/filter/dif/difimp.o -MP -MF 
$W/Dep/CxxObject/sc/source/filter/dif/difimp.d -I$S/sc/source/filter/dif/ 
-I$O/inc/stl -I$S/sc/source/core/inc -I$S/sc/source/filter/inc 
-I$S/sc/source/ui/inc -I$S/sc/inc -I$S/sc/inc/pch -I$W/Misc/sc/ 
-I$O/inc/external -I$O/inc -I$O/include -I$S/solenv/unxlngx6/inc 
-I$S/solenv/inc -I$S/res -I$S/solenv/inc/Xp31 -I$W/oox/inc/ -I$O/inc  
-I$O/inc/offapi -I$O/inc/udkapi
touch 
/home/kevin/devel/libreoffice/workdir/unxlngx6.pro/Dep/CxxObject/sc/source/filter/dif/difimp.d
[ build CXX ] sc/source/filter/excel/colrowst
R=[...]  S=$R/libreoffice  O=$S/solver/unxlngx6.pro  
W=$S/workdir/unxlngx6.pro   mkdir -p $W/CxxObject/sc/source/filter/excel/ 
$W/Dep/CxxObject/sc/source/filter/excel/  ccache g++ -DCPPU_ENV=gcc3 
-DENABLE_GRAPHITE -DENABLE_GTK -DENABLE_LAYOUT=0 -DENABLE_LAYOUT_EXPERIMENTAL=0 
-DGCC -DGXX_INCLUDE_PATH=/usr/local/include/c++/4.6.1 
-DHAVE_GCC_VISIBILITY_FEATURE -DHAVE_THREADSAFE_STATICS -DLINUX -DNDEBUG 
-DOPTIMIZE -DOSL_DEBUG_LEVEL=0 -DPRODUCT -DSUPD=350 -DUNIX -DUNX -DVCL -DX86_64 
-D_PTHREADS -D_REENTRANT-Wall -Wendif-labels -Wextra -Wshadow -Wsign-promo 
-Woverloaded-virtual -Wno-non-virtual-dtor -fPIC -fmessage-length=0 -fno-common 
-pipe  -fvisibility=hidden  -fvisibility-inlines-hidden  -std=c++0x   
-DEXCEPTIONS_ON -fexceptions -fno-enforce-eh-specs  -O2 -c 
$S/sc/source/filter/excel/colrowst.cxx -o 
$W/CxxObject/sc/source/filter/excel/colrowst.o -MMD -MT 
$W/CxxObject/sc/source/filter/excel/colrowst.o -MP -MF 
$W/Dep/CxxObject/sc/source/filter/excel/colrowst.d -I$S/sc/source/filter/excel/ 
-I$O/inc/stl -I$S/sc/source/core/inc -I$S/sc/source/filter/inc 
-I$S/sc/source/ui/inc -I$S/sc/inc -I$S/sc/inc/pch -I$W/Misc/sc/ 
-I$O/inc/external -I$O/inc -I$O/include -I$S/solenv/unxlngx6/inc 

Re: [Libreoffice] how to 'make' a single target?

2011-10-29 Thread Markus Mohrhard
Hello Kevin,

2011/10/30 Kevin Hunter hunt...@earlham.edu:
 Hullo List,

 I'm currently working in the sc/ module, and I'm in the make small change,
 re-compile, make small change, re-compile stage.  This is proving very
 cumbersome, however, as I'm unable to re-make just the affected files.  For
 instance, note my attached output, showing the output of

 $ make -j1 | head; sleep; make -j1 | head

 Should not at least the first 3 completed executions no longer need to be
 re-executed?

 This is frustrating because it results in a latency of 5+ minutes on my slow
 2-core machine before I can see the results of a code change.

 Are there any pointers for me on how I can compile _just the exact_ piece of
 code on which I'm working (and affected other snippets, of course)?


 Use make build -srj2 but leave out the build at least once before
creating the patch or pushing your changes. What needs most time is
linking and executing our unit tests and with make build you skip the
tests.

Regards,
Markus
___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


Re: [Libreoffice] how to 'make' a single target?

2011-10-29 Thread Bjoern Michaelsen
Hi,

On Sat, Oct 29, 2011 at 06:17:09PM -0400, Kevin Hunter wrote:
 I'm currently working in the sc/ module, and I'm in the make small
 change, re-compile, make small change, re-compile stage.  This is
 proving very cumbersome, however, as I'm unable to re-make just the
 affected files.  For instance, note my attached output, showing the
 output of
 
 $ make -j1 | head; sleep; make -j1 | head

The attached output indeed should never happen. What file did you touch to
generate it?

 Should not at least the first 3 completed executions no longer need
 to be re-executed?

Yes. Could you check the timestamps of
 
/home/kevin/devel/libreoffice/workdir/unxlngx6.pro/Dep/CxxObject/sc/source/filter/dif/difexp.d
being newer than
 
/home/kevin/devel/libreoffice/workdir/unxlngx6.pro/CxxObject/sc/source/filter/dif/difexp.o
and that again being newer than
 /home/kevin/devel/libreoffice/sc/source/filter/dif/difexp.cxx
, please?

 Are there any pointers for me on how I can compile _just the exact_
 piece of code on which I'm working (and affected other snippets, of
 course)?

You can build without unitchecks by doing a:
 (. ../Env.Host.sh  make build)
You make it ignore header dependencies by doing a:
 (. ../Env.Host.sh  make gb_FULLDEPS= build)
Then only objects get rebuild if you touched the cxx directly.
If you do a:
 (. ../Env.Host.sh  make gb_FULLDEPS= -W `readlink -f 
source/filter/dif/difexp.cxx` build)
only difexp.cxx gets recompiled and relinked, even if it wasnt directly
changed.

Best,

Bjoern
___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice