Re: [Libreoffice] how to 'make' a single target?
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
Re: [Libreoffice] how to 'make' a single target?
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
Re: [Libreoffice] how to 'make' a single target?
Hello Kevin, 2011/10/30 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)? > 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
[Libreoffice] how to 'make' a single target?
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/