]> code.citadel.org Git - citadel.git/blob - citadel/techdoc/binaries.txt
*** empty log message ***
[citadel.git] / citadel / techdoc / binaries.txt
1
2 Notes on building a set of portable binaries
3 --------------------------------------------
4
5 This is kind of a work in progress.  Here's what we've done so far to 
6 build a portable tarball.  We keep all the stuff that Citadel needs, but
7 is not part of Citadel itself, in /usr/local/ctdlsupport, and we keep
8 Citadel in /usr/local/citadel.
9
10 We build in /usr/src.
11
12 1. Build Berkeley DB with:
13  
14  ../dist/configure --prefix=/usr/local/ctdlsupport
15  make
16  make install
17
18 2. Build libical with:
19  
20  ./configure --prefix=/usr/local/ctdlsupport
21  make
22  make install
23  
24  (FIXME still not detected properly)
25
26 3. Build Citadel with:
27
28  export CFLAGS='-I/usr/local/ctdlsupport/include'
29  export LDFLAGS='-L/usr/local/ctdlsupport/lib -Wl,--rpath -Wl,/usr/local/ctdlsupport/lib'
30  ./configure --prefix=/usr/local/citadel --with-db=/usr/local/ctdlsupport
31  make
32  make install
33  
34  -L tells the build system where to find libraries during the build process,
35 while -Wl,--rpath inserts that same library path into the Citadel binaries
36 so they know where to find the libs at runtime.  Since we can't depend on
37 the correct version of Berkeley DB already being on the system, this is how
38 we carry our own along.  It's better than static linking everything.
39  
40  
41  FIXME / TODO
42  
43  -- Repair libical integration
44  -- Add newt to the supplied libraries
45  -- Possibly add curses to the supplied libraries
46  -- Maybe even add openssl to the supplied libraries
47  -- Write the web-based installer.