aboutsummaryrefslogtreecommitdiffhomepage
path: root/configure
Commit message (Collapse)AuthorAge
* make install: Run ldconfig or install a DT_RUNPATH in binary as appropriate.Gravatar Carl Worth2010-06-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Various users were confused as to why they couldn't run notmuch immediately after "make install", (with linker errors saying that libnotmuch.so could not be found). The errors came from two different causes: 1. The user had installed to a system library directory, but had not yet run ldconfig. 2. The user had installed to some non-system directory, and had not set the LD_LIBRARY_PATH variable. With this change we fix both problems (on Linux) without the user having to do anything additional. We first use ldconfig to find the system library directories. If the user is installing to one of these, then we run ldconfig as part of "make install". For case (2) we use the -rpath and --enable-new-dtags linker options to install a DT_RUNPATH entry in the binary. This entry tells the dynamic linker where to find libnotmuch. Without the --enable-new-dtags option only a DT_RPATH option would be installed, (which has the drawback of not allowing any override with the LD_LIBRARY_PATH variable). Distributions (such as Debian and Fedora) don't want to see binaries packaged with a DT_RPATH or DT_RUNPATH entry. This should be avoided automatically as long as the packages install to standard locations, (such as /usr/lib).
* configure: Remove space from IFS (using tab as necessary)Gravatar Carl Worth2010-06-04
| | | | | | | The idea here is to more easily support filenames with spaces in them in various loops. We're about to add a loop over the paths configured by the dynamic linker. Hopefully, they wouldn't contain spaces, but one never knows so we might as well be prepared.
* Add support for the Solaris platformGravatar Tomas Carnecky2010-06-03
| | | | | | Like on Mac OS X, the linker doesn't automatically resolve dependencies. Signed-off-by: Tomas Carnecky <tom@dbservice.com>
* configure: Respect LDFLAGS from the environment.Gravatar Tomas Carnecky2010-06-03
| | | | | | | | | | The configure usage string documents that it respects LDFLAGS, but currently it doesn't do anything with the configure-time LDFLAGS value. Signed-off-by: Tomas Carnecky <tom@dbservice.com> [Tomas and Nelson sent almost identical patches which I've merged together here.]
* configure: add ignored options for compatibility.Gravatar Cédric Cabessa2010-04-26
| | | | | | gentoo's ebuild script expects 2 more options for configure: --host (same format as --build) --datadir
* configure: Print version of Xapian found during configure check.Gravatar Carl Worth2010-04-21
| | | | | This might be handy to know, (since there are important performance considerations that depend on the Xapian version).
* configure: Generalize the GMime configure checks.Gravatar Carl Worth2010-04-21
| | | | | | This way when GMime 2.8 comes out we can simply add it to the list rather than adding an additional block of conditional code for it. Also GMime 2.6 is now preferred over GMime 2.4.
* configure: Add support for GMime 2.6Gravatar Adrien Bustany2010-04-21
| | | | | Notmuch compiles just fine with GMime 2.6, so accept it in the configure script.
* configure: Fix syntax error (spaces in assignment).Gravatar Gregor Hoffleit2010-04-15
| | | | | | Before and after the assignment operator, no spaces are allowed. I don't know if there are any /bin/sh which allow spaces, but at least in bash, csh and zsh, the former code was no valid assigment.
* Makefile: Fix final linking of notmuch binary for OS X.Gravatar Carl Worth2010-04-14
| | | | | | | | | | | | Apparently the OS X linker can't resolve symbols when linking a program (notmuch) against a library (libnotmuch) when the library depends on another library (libgmime) that the program doesn't depend on directly. For this case, we need to link the program directly against both libraries, but we don't want to do this on Linux, where the linker can do this on its own and the explicit, unneeded link would cause problems.
* Add infrastructure for building shared library on OS X.Gravatar Aaron Ecay2010-04-14
| | | | | | | | This patch adds a configure check for OS X (actually Darwin), and sets up the Makefiles to build a proper shared library on that platform. Signed-off-by: Aaron Ecay <aaronecay@gmail.com>
* Add simplistic reimplementation of strcasestr to compat libraryGravatar Dirk Hohndel2010-04-14
| | | | | | | | | | While all systems that I have access to support strcasestr, it is in fact not part of POSIX. So here's a fallback reimplementation based on POSIX functions. Signed-off-by: Dirk Hohndel <hohndel@infradead.org> Tested-by: Tomas Carnecky <tom@dbservice.com> (on OpenSolaris snv_134)
* Fix the default value for --includedir.Gravatar Mike Kelly2010-04-07
|
* Makefile: Install emacs code to site-lisp, not site-lisp/notmuchGravatar Carl Worth2010-04-07
| | | | | | And just make the Debian packaging request site-lisp/notmuch like it wants. Otherwise, the installed files won't appear on the load-path so won't be found by emacs.
* Install emacs lisp files into a notmuch sub-directory of site-lisp.Gravatar Carl Worth2010-04-06
| | | | | Now that we have multiple emacs-lisp source files, it's just more polite this way.
* configure: Ignore more options that debhelper expects.Gravatar Carl Worth2010-04-06
| | | | | | | | | | These include: --infodir=DIR --localstatedir=DIR --libexecdir=DIR --disable-maintainer-mode --disable-dependency-tracking
* configure: Add a --sysconfdir option.Gravatar Carl Worth2010-04-06
| | | | | | Which means that the bash completion script will now install to ${prefix}/etc by default (unless configured with --syconfdir=/etc) which is probably the right thing to do.
* configure: Add support for a --mandir optionGravatar Carl Worth2010-04-06
| | | | Again, nothing tricky here.
* configure: Add support for a --includedir optionGravatar Carl Worth2010-04-06
| | | | Very similar to the existing --libdir option.
* configure: Avoid printing '.' at the end of error message.Gravatar Carl Worth2010-04-06
| | | | | Since we're emitting the user's input back, let's leave it pristine and not confuse the issue by adding a final period.
* configure: Add stub support for --build=<cpu>-<vendor>-<host> option.Gravatar Carl Worth2010-04-06
| | | | | | I'm not sure that this option would actually be useful for anything, but debhelper at least expects our configure script to support it. So we'll accept it and ignore it.
* Move "config" test programs to "compat".Gravatar Carl Worth2010-04-06
| | | | | | | | It makes sense to me to have the little tests for functionality right next to the comptability implementations of that same functionality. But also, this means I can now tab-complete ./configure from the three initial characters (rather than the seven required previously).
* Makefile: Eliminate the "make install-emacs" target.Gravatar Carl Worth2010-04-06
| | | | | | | | | Instead, simply byte-compile the emacs source files as part of "make" and install them as part of "make install". The byte compilation is made conditional on the configure script finding the emacs binary. That way, "make; make install" will still work for someone that doesn't have emacs installed, (which was the only reason we had made a separate "make install-emacs" target in the first place).
* Makefiles: Eliminate the useless quiet_* functions.Gravatar Carl Worth2010-04-06
| | | | | | | | | | | | | | | | | | With the original quiet function, there's an actual purpose (hiding excessively long compiler command lines so that warnings and errors from the compiler can be seen). But with things like quiet_symlink there's nothing quieter. In fact "SYMLINK" is longer than "ln -sf". So all this is doing is hiding the actual command from the user for no real benefit. The only actual reason we implemented the quiet_* functions was to be able to neatly right-align the command name and left-align the arguments. Let's give up on that, and just left-align everything, simplifying the Makefiles considerably. Now, the only instances of a captialized command name in the output is if there's some actually shortening of the command itself.
* Makefiles: Align the columns of output.Gravatar Carl Worth2010-04-01
| | | | Much better.
* Makefiles: Make the install rules quiet like the compilation rules.Gravatar Carl Worth2010-03-31
| | | | | The output from make is looking better all the time, (though the columns still aren't lined up).
* Makefile.config: Avoid pre-expanding the ${prefix} variable.Gravatar Carl Worth2010-03-31
| | | | | | | One of the supproted mechanisms we offer for configuration is manually editing the Makefile.config file after it is generated by the configure script. In this case it would be nice to be able to change prefix only once, so allow that.
* Move some variable assignments from Makefile.local to Makefile.configGravatar Carl Worth2010-03-31
| | | | | | | | | | | | | There's not any special configure logic for determining these variable values, but if we did add some in the future, then these will now be in the right place for that. Additionally, this now makes Makefile.local the single place for the user to look for manually tweaking a variable assignment, (say, for a compiler that can't accept a particular warning argument). With this change, there should rarely be any need for a user to poke into any Makefile.local file.
* configure: Fix installation of library to work with alternate --prefixGravatar Carl Worth2010-03-31
| | | | | | If an explicit --libdir is passed, then that is used directly. Otherwise libdir is chosen as the value of $PREFIX/lib, (whether or not prefix was passed explicitly or set by default).
* configure: Fix typo in help message.Gravatar Carl Worth2010-03-31
| | | | Documentation is installed to PREFIX/man not PREFIX/share.
* Add a --libdir option to ./configureGravatar Ingmar Vanhassel2010-03-31
| | | | | | | This allows packagers to specify to which directory libraries should be installed. Signed-off-by: Ingmar Vanhassel <ingmar@exherbo.org>
* Add install target for notmuch.desktop file.Gravatar Jeffrey C. Ollie2010-01-24
| | | | | | | | Add an install target that uses desktop-file-install to install the desktop file in the appropriate location. The location of the install can be modified by changing the desktop_dir variable. Signed-off-by: Jeffrey C. Ollie <jeff@ocjtech.us>
* configure: Look for both Xapian 1.1 and 1.0 and allow user override.Gravatar Carl Worth2010-01-06
| | | | | | | | The in-development version of Xapian provides a config program named xapian-config-1.1 while the released version provides a program named xapian-config instead. By default, we now try each of these in turn, and we also allow the user to set a XAPIAN_CONFIG environment variable to explicitly specify a particular program.
* configure: Implement a --help option to document --prefix.Gravatar Carl Worth2009-12-04
| | | | | Also document that values for CC, CFLAGS, etc. can be specified via environment variables.
* configure: Support the capturing of CFLAGS and CXXFLAGS at configure time.Gravatar Carl Worth2009-12-04
| | | | | | | | | | | | | | | | | | These variables can now be set via configure time via environment variables like so: CFLAGS=-g ./configure and subsequent builds will remember these values. The values can still be overridden at compile time by passing make variables: make CFLAGS=-O2 The CXXFLAGS variable is optional. If unset at either configure time or at compile time, it will inherit its value from the CFLAGS variable. (Though if explicitly set at configure time it must be explicitly overriden at compile time---just overriding CFLAGS will not override CXXFLAGS as well.)
* Fix quiet compilation to print the user's CFLAGS, CXXFLAGS, LDFLAGS.Gravatar Carl Worth2009-12-04
| | | | | | | | | | The only reason I ever call "make V=1" myself, (other than when debugging the compiler command-line for some reason), is to ensure whether my CFLAGS, (like "-g -O0" or "-O2"), are actually making it to the command-line. But these are hard to find in the V=1 output, and really, we should just print these even in the quiet case. So do that.
* Fix option parsing for the case of a value with '='.Gravatar Carl Worth2009-12-04
| | | | | To support this we need to match the longest-possible suffix and then strip the shortest-possible prefix.
* Fix configure script to handle --prefix=Gravatar Jameson Graef Rollins2009-12-04
| | | | | | | Reviewed-by: Carl Worth <cworth@cworth.org>: This is really the fundamental thing that people expect a configure script to do, so it's important to support it.
* configure: Tweak the working of the example commands slightly.Gravatar Carl Worth2009-12-03
| | | | | Basically just getting better parallelism between the descriptions of the Defora and Debian commands. (And fixing a nearby typo.)
* Add some text to configure on how to install dependencies with yum.Gravatar Jeffrey C. Ollie2009-12-03
| | | | | | | | | Add some text on how to install dependencies with yum for Fedora or other systems that use yum for package management. Since the named of the required packages on Fedora are slightly different from Debian this will help get new users of notmuch that use Fedora going quicker. Signed-off-by: Jeffrey C. Ollie <jeff@ocjtech.us>
* configure: Allow user to specify compiler to be used.Gravatar Carl Worth2009-12-01
| | | | | | | | | | | | The environment variables CC and CXX can be set at configure time to specify what compiler to use. This compiler will be used for any configure-time compilation, and will also be recorded in Makefile.config to be used during the actual build. The compiler to be used can still be overridden at build time by using a make variable such as: make CC=gcc
* configure: Generate more friendly Makefile.config with separated CFLAGSGravatar Carl Worth2009-12-01
| | | | | | Each dependency now gets its own variable in the resulting Makefile.config to make it much easier to debug where the various flags came from in the case of any problems.
* configure: Clarify pkg-config warning now that Makefile does not invoke ↵Gravatar Carl Worth2009-12-01
| | | | | | | | pkg-config. It's probably a bit more work to use this configure script without pkg-config, but it's at least possible, (and we could make it even easier if this becomes an important use case).
* configure: Generate some documentation into Makefile.config.Gravatar Carl Worth2009-12-01
| | | | | It's just not nice to auto-generate a file without helping out the poor user who gets stuck trying to figure out what went wrong.
* configure: Resolve all pkg-config flags at configure time.Gravatar Carl Worth2009-12-01
| | | | | | | | Previously, we were resolving these within the Makefile. This had the problem that if pkg-config was not present, the Makefile would still invoke it resulting in ugly errors before the configure script was even run, (which would finally present a kind error message about pkg-config not being present).
* configure: Move getlinetest.c down into config/have_getline.c.Gravatar Carl Worth2009-12-01
| | | | | | This keeps configure-related clutter out of the main directory, and also gives a more direct correlation between the name of the test and the feature being tested for.
* configure: Assimilate new getlinetest into recent configure conventions.Gravatar Carl Worth2009-12-01
| | | | | | | | | We're now using printf to print what we're checking before we check. We're also making variables such as HAVE_GETLINE available to both make and to the C pre-processor. With this, the local getline implementation is now only compiled if not available on the system.
* Add test to configure script to detect getlineGravatar Jeffrey C. Ollie2009-12-01
| | | | | | | | Add a simple test to the configure script to detect getline. It's not important that the test run, just that it compiles and links without any errors. Signed-off-by: Jeffrey C. Ollie <jeff@ocjtech.us>
* configure: Fix valgrind check to take effect, and to work.Gravatar Carl Worth2009-12-01
| | | | | | | We were missing an "override" directive in the assignment of CFLAGS within Makefile.config so it was actually having no effect. Then, we were also failing to get the proper include path for valgrind.h so it wouldn't have worked even it were having effect. Fix both problems.
* configure: Use printf to achieve result of "echo -n".Gravatar Carl Worth2009-12-01
| | | | | | | We had avoided using "echo -n" originally for portability concerns, and instead just printed the same string in both conditions, (and also printed the string late if any check took long). The word is that printf is quite portable, so we use that instead.