Merge branch 'master' of ssh://git.citadel.org/appl/gitroot/citadel
[citadel] / appimage / build_appimage.sh
1 #!/bin/bash
2
3 rm -fr /usr/local/citadel /usr/local/webcit
4
5 # Build libcitadel
6 pushd ../libcitadel || exit 1
7 ./bootstrap || exit 1
8 ./configure || exit 1
9 make || exit 1
10 make install || exit 1
11 popd
12
13 # Build the Citadel server
14 pushd ../citadel || exit 1
15 ./bootstrap || exit 1
16 ./configure --prefix=/usr/local/citadel || exit 1
17 make || exit 1
18 make install || exit 1
19 popd
20
21 # Build WebCit
22 pushd ../webcit || exit 1
23 ./bootstrap || exit 1
24 ./configure --prefix=/usr/local/webcit || exit 1
25 make || exit 1
26 make install || exit 1
27 popd
28
29 # Build the appimage supervisor
30 cc ctdlvisor.c -o ctdlvisor || exit 1
31
32 # Clear out our build directories
33 rm -frv citadel.AppDir/usr
34 mkdir -p citadel.AppDir/usr/bin
35 mkdir -p citadel.AppDir/usr/lib
36
37 # Copy over all the libraries we used
38 for bin in /usr/local/citadel/citserver /usr/local/webcit/webcit
39 do
40         for x in `ldd $bin | awk ' { print $3 } ' | grep -v -e '^$' | grep -v 'libc.so' | grep -v 'libpthread.so' | grep -v 'libresolv.so'`
41         do
42                 cp -v -L $x citadel.AppDir/usr/lib/
43         done
44 done
45 ldconfig -v citadel.AppDir/usr/lib
46
47 # Copy over our application trees
48 for x in citadel webcit
49 do
50         mkdir -p citadel.AppDir/usr/local/$x
51         rsync -va /usr/local/$x/ ./citadel.AppDir/usr/local/$x/
52 done
53
54 cp ctdlvisor citadel.AppDir/usr/bin/
55 ARCH=x86_64 appimagetool citadel.AppDir/
56 rm -fr /usr/local/citadel /usr/local/webcit