]> code.citadel.org Git - citadel.git/blob - citadel/techdoc/binaries.txt
* binaries.txt: noted OpenLDAP build
[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. If LDAP support is required, build OpenLDAP with:
27
28 export CFLAGS='-I/usr/local/ctdlsupport/include'
29 export CPPFLAGS='-I/usr/local/ctdlsupport/include'
30 export LDFLAGS='-L/usr/local/ctdlsupport/lib -Wl,--rpath -Wl,/usr/local/ctdlsupport/lib'
31 ./configure --prefix=/usr/local/citadel --with-db=/usr/local/ctdlsupport
32 make
33 make depend
34 make install
35
36 4. Build Citadel with:
37
38 export CFLAGS='-I/usr/local/ctdlsupport/include'
39 export LDFLAGS='-L/usr/local/ctdlsupport/lib -Wl,--rpath -Wl,/usr/local/ctdlsupport/lib'
40 ./configure --prefix=/usr/local/citadel --with-db=/usr/local/ctdlsupport
41 make
42 make install
43  
44  -L tells the build system where to find libraries during the build process,
45 while -Wl,--rpath inserts that same library path into the Citadel binaries
46 so they know where to find the libs at runtime.  Since we can't depend on
47 the correct version of Berkeley DB already being on the system, this is how
48 we carry our own along.  It's better than static linking everything.
49  
50  
51  FIXME / TODO
52  
53  -- Repair libical integration
54  -- Add newt to the supplied libraries
55  -- Possibly add curses to the supplied libraries
56  -- Maybe even add openssl to the supplied libraries
57  -- Write the web-based installer.