Notes on building a set of portable binaries -------------------------------------------- This is kind of a work in progress. Here's what we've done so far to build a portable tarball. We keep all the stuff that Citadel needs, but is not part of Citadel itself, in /usr/local/ctdlsupport, and we keep Citadel in /usr/local/citadel. (This is only known to work on Linux+GCC.) We build in /usr/src. 1. Build Berkeley DB with: ../dist/configure --prefix=/usr/local/ctdlsupport make make install 2. Build libical with: ./configure --prefix=/usr/local/ctdlsupport make make install (FIXME still not detected properly) 3. Set these environment variables for the rest of the build: export CFLAGS='-I/usr/local/ctdlsupport/include' export CPPFLAGS='-I/usr/local/ctdlsupport/include' export LDFLAGS='-L/usr/local/ctdlsupport/lib -Wl,--rpath -Wl,/usr/local/ctdlsupport/lib' -L tells the build system where to find libraries during the build process, while -Wl,--rpath inserts that same library path into the Citadel binaries so they know where to find the libs at runtime. Since we can't depend on the correct version of Berkeley DB already being on the system, this is how we carry our own along. It's better than static linking everything. 4. If LDAP support is required, build OpenLDAP with: ./configure --prefix=/usr/local/ctdlsupport --with-db=/usr/local/ctdlsupport make make depend make install 5. Build Citadel with: ./configure --prefix=/usr/local/citadel --with-db=/usr/local/ctdlsupport make make install 6. Build WebCit with: ./configure --prefix=/usr/local/webcit make make install FIXME / TODO -- Repair libical integration -- Add newt to the supplied libraries -- Possibly add curses to the supplied libraries -- Maybe even add openssl to the supplied libraries -- Write the web-based installer.