]> git.notmuchmail.org Git - notmuch/blob - configure
compat: Add implementation of getline from gnulib.
[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 the configure process, you can override any
11 decisions it makes by manually editing the Makefile.config file that
12 it creates. Also please do as much as you can to figure out what could
13 be different on your machine compared to those of the notmuch
14 developers. Then, please email those details to the Notmuch list
15 (notmuch@notmuchmail.org) so that we can hopefully make future
16 versions of notmuch easier for you to use.
17
18 We'll now investigate your system to verify that all required
19 dependencies are available:
20
21 EOF
22
23 errors=0
24
25 if pkg-config --version > /dev/null 2>&1; then
26     have_pkg_config=1
27 else
28     have_pkg_config=0
29 fi
30
31 printf "Checking for Xapian development files... "
32 if xapian-config --version > /dev/null 2>&1; then
33     printf "Yes.\n"
34     have_xapian=1
35 else
36     printf "No.\n"
37     have_xapian=0
38     errors=$((errors + 1))
39 fi
40
41 printf "Checking for GMime 2.4 development files... "
42 if pkg-config --modversion gmime-2.4 > /dev/null 2>&1; then
43     printf "Yes.\n"
44     have_gmime=1
45 else
46     printf "No.\n"
47     have_gmime=0
48     errors=$((errors + 1))
49 fi
50
51 printf "Checking for talloc development files... "
52 if pkg-config --modversion talloc > /dev/null 2>&1; then
53     printf "Yes.\n"
54     have_talloc=1
55 else
56     printf "No.\n"
57     have_talloc=0
58     errors=$((errors + 1))
59 fi
60
61 printf "Checking for valgrind development files... "
62 if pkg-config --modversion valgrind > /dev/null 2>&1; then
63     printf "Yes.\n"
64     have_valgrind=-DHAVE_VALGRIND
65 else
66     printf "No (but that's fine).\n"
67     have_valgrind=
68 fi
69
70 if [ $errors -gt 0 ]; then
71     cat <<EOF
72
73 *** Error: The dependencies of notmuch could not be satisfied. You will
74 need to install the following packages before being able to compile
75 notmuch:
76
77 EOF
78     if [ $have_xapian -eq 0 ]; then
79         echo "  Xapian library (including development files such as headers)"
80         echo "  http://xapian.org/"
81     fi
82     if [ $have_gmime -eq 0 ]; then
83         echo "  GMime 2.4 library (including development files such as headers)"
84         echo "  http://spruce.sourceforge.net/gmime/"
85     fi
86     if [ $have_talloc -eq 0 ]; then
87         echo "  The talloc library (including development files such as headers)"
88         echo "  http://talloc.samba.org/"
89     fi
90     cat <<EOF
91
92 On a modern, package-based operating system such as Debian, you can
93 install all of the dependencies with the following simple command
94 line:
95
96         sudo apt-get install libxapian-dev libgmime-2.4-dev libtalloc-dev
97
98 On other systems, a similar command can be used, but the details of the 
99 package names may be different, (such as "devel" in place of "dev").
100
101 EOF
102     if [ $have_pkg_config -eq 0 ]; then
103 cat <<EOF
104 Note: the pkg-config program is not available. Both this configure
105 script and the Makefile of notmuch use pkg-config to find the
106 compilation flags required to link against the various libraries
107 needed by notmuch. It's possible you simply need to install pkg-config
108 with a command such as:
109
110         sudo apt-get install pkg-config
111
112 But if pkg-config is not available for your system, then you will need
113 to manually edit the notmuch Makefile to set the variables such as
114 CFLAGS and LDFLAGS to the correct values without calling pkg-config.
115
116 EOF
117     fi
118 cat <<EOF
119 When you have installed the necessary dependencies, you can run
120 configure again to ensure the packages can be found, or simply run
121 "make" to compile notmuch.
122
123 EOF
124     exit 1
125 fi
126
127 cat <<EOF
128
129 All required packages were found. You may now run the following
130 commands to compile and install notmuch:
131
132         make
133         sudo make install
134
135 EOF
136
137 # construct the Makefile.config
138 cat > Makefile.config <<EOF
139 prefix = /usr/local
140 CFLAGS += ${have_valgrind}
141 EOF