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