Add build script to build all components in one run.
[gnupg.git] / scripts / build-all.sh
1 #! /bin/bash
2 # A simple script to build all parts of GnuPG from the git repos.
3 #
4 # Copyright 2011 Free Software Foundation, Inc.
5 #
6 # This file is free software; as a special exception the author gives
7 # unlimited permission to copy and/or distribute it, with or without
8 # modifications, as long as this notice is preserved.
9 #
10 # This file is distributed in the hope that it will be useful, but
11 # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
12 # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13
14 # Run this in another window:
15 #tail -n0 -F ~/tmp/gpg-tmp/b/{libgpg-error,libksba,libassuan,libgcrypt,gnupg}.log &
16
17 p=$HOME/tmp/gpg-tmp
18 parts="libgpg-error libassuan libksba libgcrypt gnupg"
19 die=no
20 for i in $parts; do
21   if test -d $i ; then
22     :
23   else
24     die=yes
25     echo "component $i missing"
26   fi
27 done
28 test $die = yes && exit 1
29
30 mkdir $p || exit 1
31 mkdir $p/b || exit 1
32 for i in $parts; do
33   mkdir $p/b/$i || exit 1
34 done
35
36 export PATH=$p/bin:$PATH
37 export LD_LIBRARY_PATH=$p/lib
38 here="$(pwd)"
39
40 prev=
41 cfg="configure --enable-maintainer-mode --prefix=$p"
42 for i in $parts; do
43   echo $i...
44   test -n "$prev" && cfg="$cfg --with-$prev-prefix=$p"
45   (cd $p/b/$i && eval $here/$i/$cfg && make && make check && make install) \
46       > $p/b/$i.log 2>&1 \
47       || { echo FAIL; break; }
48   prev=$i
49 done