TODO: Add note on making "notmuch new" interruptible.
[notmuch] / configure
1 #! /bin/sh
2
3 cat <<EOF
4 Welcome to Notmuch, a system for indexing, searching and tagging your email.
5
6 We hope that the process of building and installing notmuch is quick
7 and smooth so that you can soon be reading and processing your email
8 more efficiently than ever.
9
10 If anything goes wrong in this process, please do as much as you can
11 to figure out what could be different on your machine compared to
12 those of the notmuch developers. Then, please email those details to
13 Carl Worth <cworth@cworth.org> so that we can hopefully make future
14 versions of notmuch easier for you to use.
15
16 We'll now investigate your system to find verify that various software
17 components that notmuch relies on are available.
18
19 EOF
20
21 errors=0
22
23 if pkg-config --version > /dev/null 2>&1; then
24     have_pkg_config=1
25 else
26     have_pkg_config=0
27 fi
28
29 if xapian-config --version > /dev/null 2>&1; then
30     echo "Checking for Xapian development files... Yes."
31     have_xapian=1
32 else
33     echo "Checking for Xapian development files... No."
34     have_xapian=0
35     errors=$((errors + 1))
36 fi
37
38 if pkg-config --modversion gmime-2.4 > /dev/null 2>&1; then
39     echo "Checking for GMime 2.4 development files... Yes."
40     have_gmime=1
41 else
42     echo "Checking for GMime 2.4 development files... No."
43     have_gmime=0
44     errors=$((errors + 1))
45 fi
46
47 if pkg-config --modversion talloc > /dev/null 2>&1; then
48     echo "Checking for talloc development files... Yes."
49     have_talloc=1
50 else
51     echo "Checking for talloc development files... No."
52     have_talloc=0
53     errors=$((errors + 1))
54 fi
55
56 if [ $errors -gt 0 ]; then
57     cat <<EOF
58
59 *** Error: The dependencies of notmuch could not be satisfied. You will
60 need to install the following packages before being able to compile
61 notmuch:
62
63 EOF
64     if [ $have_xapian -eq 0 ]; then
65         echo "  Xapian library (including development files such as headers)"
66         echo "  http://xapian.org/"
67     fi
68     if [ $have_gmime -eq 0 ]; then
69         echo "  GMime 2.4 library (including development files such as headers)"
70         echo "  http://spruce.sourceforge.net/gmime/"
71     fi
72     if [ $have_talloc -eq 0 ]; then
73         echo "  The talloc library (including development files such as headers)"
74         echo "  http://talloc.samba.org/"
75     fi
76     cat <<EOF
77
78 On a modern, package-based operating system such as Debian, you can
79 install all of the dependencies with the following simple command
80 line:
81
82         sudo apt-get install libxapian-dev libgmime-2.4-dev libtalloc-dev
83
84 On other systems, a similar command can be used, but the details of the 
85 package names may be different, (such as "devel" in place of "dev").
86
87 EOF
88     if [ $have_pkg_config -eq 0 ]; then
89 cat <<EOF
90 Note: the pkg-config program is not available. Both this configure
91 script and the Makefile of notmuch use pkg-config to find the
92 compilation flags required to link against the various libraries
93 needed by notmuch. It's possible you simply need to install pkg-config
94 with a command such as:
95
96         sudo apt-get install pkg-config
97
98 But if pkg-config is not available for your system, then you will need
99 to manually edit the notmuch Makefile to set NOTMUCH_CFLAGS and
100 NOTMUCH_LDFLAGS to the correct values without calling pkg-config.
101
102 EOF
103     fi
104 cat <<EOF
105 When you have installed the necessary dependencies, you can run
106 configure again to ensure the packages can be found, or simply run
107 "make" to compile notmuch.
108
109 EOF
110     exit 1
111 else
112 cat <<EOF
113
114 All required packages were found. You may now run the following
115 commands to compile and install notmuch:
116
117         make
118         sudo make install
119
120 EOF
121     exit 0
122 fi
123 cat <<EOF