Build citadel server and webcit in temp directories. This allows the builder to...
[citadel.git] / appimage / build_appimage.sh
index f98e8ef214d4c68cb8f0b1d524e8c2085c303ad0..ae54bb2a347b95132409ca8cbe05dbe6ae7abc04 100755 (executable)
@@ -1,8 +1,10 @@
 #!/bin/bash
 
-rm -fr /usr/local/citadel /usr/local/webcit
+export CITADEL_BUILD_DIR=/tmp/citadel-build-$$
+export WEBCIT_BUILD_DIR=/tmp/webcit-build-$$
+rm -fr $CITADEL_BUILD_DIR $WEBCIT_BUILD_DIR
 
-# Build libcitadel
+# libcitadel has to be built in a "real" library directory
 pushd ../libcitadel || exit 1
 ./bootstrap || exit 1
 ./configure || exit 1
@@ -13,7 +15,7 @@ popd
 # Build the Citadel server
 pushd ../citadel || exit 1
 ./bootstrap || exit 1
-./configure --prefix=/usr/local/citadel || exit 1
+./configure --prefix=$CITADEL_BUILD_DIR || exit 1
 make || exit 1
 make install || exit 1
 popd
@@ -21,18 +23,18 @@ popd
 # Build WebCit
 pushd ../webcit || exit 1
 ./bootstrap || exit 1
-./configure --prefix=/usr/local/webcit || exit 1
+./configure --prefix=$WEBCIT_BUILD_DIR || exit 1
 make || exit 1
 make install || exit 1
 popd
 
-# Clear out our build directories
+# Clear out any old versions in the AppDir
 rm -frv citadel.AppDir/usr
 mkdir -p citadel.AppDir/usr/bin
 mkdir -p citadel.AppDir/usr/lib
 
 # Copy over all the libraries we used
-for bin in /usr/local/citadel/citserver /usr/local/webcit/webcit
+for bin in $CITADEL_BUILD_DIR/citserver $WEBCIT_BUILD_DIR/webcit
 do
        for x in `ldd $bin | awk ' { print $3 } ' | grep -v -e '^$' | grep -v 'libc.so' | grep -v 'libpthread.so' | grep -v 'libresolv.so'`
        do
@@ -41,14 +43,22 @@ do
 done
 ldconfig -v citadel.AppDir/usr/lib
 
-# Copy over our application trees
-for x in citadel webcit
-do
-       mkdir -p citadel.AppDir/usr/local/$x
-       rsync -va /usr/local/$x/ ./citadel.AppDir/usr/local/$x/
-done
+# Install the Citadel Server application tree
+mkdir -p citadel.AppDir/usr/local/citadel
+rsync -va $CITADEL_BUILD_DIR/ ./citadel.AppDir/usr/local/citadel/
 
-rm -fr /usr/local/citadel /usr/local/webcit
+# Install the WebCit application tree
+mkdir -p citadel.AppDir/usr/local/webcit
+rsync -va $WEBCIT_BUILD_DIR/ ./citadel.AppDir/usr/local/webcit/
+
+# Remove the build directories
+rm -fr $CITADEL_BUILD_DIR $WEBCIT_BUILD_DIR
 
 cc ctdlvisor.c -o citadel.AppDir/usr/bin/ctdlvisor || exit 1
-ARCH=ARM appimagetool citadel.AppDir/
+
+cpu=`uname -p`
+if [ $cpu == x86_64 ] ; then
+       ARCH=x86_64 appimagetool citadel.AppDir/
+else
+       ARCH=ARM appimagetool citadel.AppDir/
+fi