-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/18957/#review38247
-----------------------------------------------------------



configure.ac
<https://reviews.apache.org/r/18957/#comment70299>

    +1 on making this easier to read. Just decoded it and here's my pseudocode 
interpretation:
    if (enable-proper) {
      if (with-foo) { add path to flags; }
      if (canFind(foo, flags-path)) {
        disable building the bundled lib;
        set -lfoo to use the preinstalled lib;
      } else { Error; }
      // Ditto for with-bar, etc.
    } else {
      use only bundled libs;
    }
    Two problems with this:
    1. Right now we always error&abort if --enable-proper and the external 
leveldb cannot be found. We should fall back to bundled if --with-leveldb=path 
is not set.
    2. Also, it seems weird that the --with-leveldb=path parameter gets ignored 
unless I also set --enable-proper. I propose that --enable-proper (or whatever 
we call it) only applies to auto-detecting preinstalled libraries; explicit 
--with-foo=path parameters are always used, and we won't fall back to 
auto-detecting or bundled libraries if it can't be found at the provided path.
    Here's what I suggest:
    if (with-foo) { add path to flags; }
    if (with-foo || enable-system-dependencies) {
      if (canFind(foo, flags-path)) {
        disable building the bundled lib; set -lfoo;
      } else if (with-foo) {
        Error(Could not find foo in the given path, aborting);
      } else { // enable-system-dependencies
        Warn(Could not find foo in system paths, using bundled);
        use bundled lib;
      }
    } else {
      use bundled lib;
    }
    // Ditto for with-bar, etc.


- Adam B


On March 17, 2014, 12:51 p.m., Till Toenshoff wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/18957/
> -----------------------------------------------------------
> 
> (Updated March 17, 2014, 12:51 p.m.)
> 
> 
> Review request for mesos and Benjamin Hindman.
> 
> 
> Bugs: MESOS-1071
>     https://issues.apache.org/jira/browse/MESOS-1071
> 
> 
> Repository: mesos-git
> 
> 
> Description
> -------
> 
> Allows preventing the use of bundled libraries in favor of preinstalled 
> versions, where possible.
> 
> --enable-proper generally switches from bundled to preinstalled libraries. 
> This review only implements this preinstalled library usage on LevelDB. For 
> using the preinstalled LevelDB from a location that is not part of the 
> standard include and linker paths, you may specify --with-leveldb=PREFIX_PATH.
> 
> If --enable-proper is supplied, the configuration phase will attempt to 
> locate the needed headers as well as the library itself.
> 
> If --enable-proper is not supplied, the bundled library is built and used.
> 
> NOTE: Subsequent review requests for other bundled libraries will follow as 
> soon as this implementation has been accepted.
> 
> 
> Diffs
> -----
> 
>   3rdparty/Makefile.am 23ff1fa 
>   configure.ac 9a6de87 
>   src/Makefile.am 0775a0d 
>   src/python/setup.py.in 02f00ef 
> 
> Diff: https://reviews.apache.org/r/18957/diff/
> 
> 
> Testing
> -------
> 
> ../configure
> make check
> 
> installed leveldb in custom location
> ../configure --enable-proper --with-leveldb=/CUSTOM_LOCATION
> make check
> 
> installed leveldb in common location
> ../configure --enable-proper
> make check
> 
> 
> Thanks,
> 
> Till Toenshoff
> 
>

Reply via email to