try to sense the architecture better
[citadel.git] / appimage / build_appimage.sh
1 #!/bin/bash
2
3 export CITADEL_BUILD_DIR=/tmp/citadel-build-$$
4 export WEBCIT_BUILD_DIR=/tmp/webcit-build-$$
5 rm -fr $CITADEL_BUILD_DIR $WEBCIT_BUILD_DIR
6
7 # libcitadel has to be built in a "real" library directory
8 pushd ../libcitadel || exit 1
9 make distclean 2>/dev/null
10 ./bootstrap || exit 2
11 ./configure || exit 3
12 make || exit 4
13 make install || exit 5
14 popd
15
16 # Build the Citadel server
17 pushd ../citadel || exit 6
18 make distclean 2>/dev/null
19 ./bootstrap || exit 7
20 ./configure --prefix=$CITADEL_BUILD_DIR || exit 8
21 make || exit 9
22 make install || exit 10
23 popd
24
25 # Build WebCit
26 pushd ../webcit || exit 11
27 make distclean 2>/dev/null
28 ./bootstrap || exit 12
29 ./configure --prefix=$WEBCIT_BUILD_DIR || exit 13
30 make || exit 14
31 make install || exit 15
32 popd
33
34 # Clear out any old versions in the AppDir
35 rm -frv citadel.AppDir/usr
36 mkdir -p citadel.AppDir/usr/bin
37 mkdir -p citadel.AppDir/usr/lib
38
39 # Copy over all the libraries we used
40 for bin in $CITADEL_BUILD_DIR/citserver $WEBCIT_BUILD_DIR/webcit
41 do
42         for x in `ldd $bin | awk ' { print $3 } ' | grep -v -e '^$' | grep -v 'libc.so' | grep -v 'libpthread.so' | grep -v 'libresolv.so'`
43         do
44                 cp -v -L $x citadel.AppDir/usr/lib/
45         done
46 done
47 ldconfig -v citadel.AppDir/usr/lib
48
49 # Copy over some utilities
50 for bin in db_dump db_load db_recover
51 do
52         cp `which $bin` citadel.AppDir/usr/bin/ || exit 16
53 done
54
55 # Install the Citadel Server application tree
56 mkdir -p citadel.AppDir/usr/local/citadel || exit 17
57 rsync -va $CITADEL_BUILD_DIR/ ./citadel.AppDir/usr/local/citadel/ || exit 18
58
59 # Install the WebCit application tree
60 mkdir -p citadel.AppDir/usr/local/webcit || exit 19
61 rsync -va $WEBCIT_BUILD_DIR/ ./citadel.AppDir/usr/local/webcit/ || exit 20
62
63 # Remove the build directories
64 rm -fr $CITADEL_BUILD_DIR $WEBCIT_BUILD_DIR
65
66 cc ctdlvisor.c -o citadel.AppDir/usr/bin/ctdlvisor || exit 21
67
68 CPU=`uname -m`
69 basefilename=citadel-`date +%s`
70 if [ $CPU == x86_64 ] ; then
71         export ARCH=x86_64
72 else
73         export ARCH=ARM
74 fi
75 echo ARCH: $ARCH
76 echo CPU: $CPU
77 appimagetool citadel.AppDir/ ${basefilename}-${CPU}.appimage