----------------------------------------------------------- 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 > >
