User:ErAck/WorkFlow

From Apache OpenOffice Wiki
< User:ErAck
Revision as of 19:36, 1 February 2009 by ErAck (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Here I'm noting down my work flow and environment I use when working on code, hopefully giving some useful hints for others.

System

Preferably Debian. Etch does it. Which is what I use at home. At work I use Kubuntu, Solaris/SPARC, Solaris/x86, MacOSX/x86, and with a ten-foot pole only when necessary Windows XP.

Shell environment

With the migration to SVN the .svn/* subdirectories' content comes in the way when using grep -r ..., so at home in ~/.bashrc I have

export GREP_OPTIONS='--exclude=\*.svn\*'

respectively at work in ~/.cshrc

setenv GREP_OPTIONS '--exclude=\*.svn\*'

Note: On some old systems there's an old version of grep that doesn't know that option and bails out if set. This will break the build later, so check by just invoking grep whether it complains, and if so do not set the variable.

Vim editor

I'm a Vim addict since the mid 90s, so I use the stuff lined out in Editor Vim.

Tools and Little Helpers

To tame the source base I heavily use exuberant ctags and GNU id-utils and sometimes cscope. For scripts generating databases suitable for OOo see the Little Helpers.

Building

Out of habits introduced at Sun Hamburg labs, I usually follow the same naming scheme even at home when setting up CWSs, which is to checkout source code into a subdirectory of $CWS_WORK_STAMP/$WORK_STAMP/src.milestone, for example cwsname/DEV300/src.m42

Configure

When I don't need a full-blown tree because I don't plan to work on globally used stuff that would also affect the much disregarded binfilter binary filter module, I of course exclude that from the build, and I exclude many others as well. This boils build time down to 2 hours for the entire tree [hey, you Windows guys are getting envious, aren't you? ;-)]. My configure call currently (2009-02-01) is

./configure --disable-binfilter --without-fonts --without-ppds --disable-build-mozilla --with-system-stdlibs --enable-dbgutil --disable-strip-solver --disable-systray --with-build-version="Built by erAck" --with-vendor="erAck" --disable-odk --disable-qadevooo --disable-pdfimport --disable-mediawiki --disable-reportdesign --disable-neon --with-system-zlib --with-system-openssl --with-system-jpeg

Especially note

--enable-dbgutil 
This builds a non-product version with assertions and various checks during runtime enabled. The output directories are without the .pro extension, for example unxlngi6 instead of unxlngi6.pro
--disable-strip-solver 
Symbols are not stripped from the libraries, so we'll have useful information in the debugger for backtraces.

More shell variables

I add these to LinuxX86Env.Set

Personal tools