Skip to content

Enhance build system to add TileDB if not installed already #118

Merged
eddelbuettel merged 10 commits intomasterfrom
feature/build_tiledb_pr
May 11, 2020
Merged

Enhance build system to add TileDB if not installed already #118
eddelbuettel merged 10 commits intomasterfrom
feature/build_tiledb_pr

Conversation

@eddelbuettel
Copy link
Contributor

@eddelbuettel eddelbuettel commented May 10, 2020

This pull request for the R package adds

  • a test in configure.ac to see if a very simple TileDB program can be built
  • a bootstrapping procedure if not
    • relying on a download of the most recent release
    • a static build of a (minimal) TileDB configuration
    • as well as of all it components
  • tested successfully on Debian, Fedora, macOS via R-Hub as well as locally.

More to do in terms potentially accelerating build by pre-building static libraries as well as expanding to to more optional features. We benefit from a recent increase of the build time limit at R-Hub from 10 minutes to 20 minutes -- so we probably need the former ("faster build") to get the latter ("richer build").

The branch is identical to feature/build_tiledb branch but reverts out the one commit underlying the parallel PR #117 (which adds S4 aliases to the docs) to make the comparison simpler and cleaner.

configure.ac Outdated
[],
[AC_MSG_ERROR([unable to find tiledb/tiledb.h])])
if test x"${have_tiledb}" = x"0"; then
AC_MSG_RESULT([** Installting TileDB])
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor typo: `Installting

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for catching that, fixed in 71d1cb7.

Copy link
Member

@Shelnutt2 Shelnutt2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Excellent addition, few minor question/comments, but overall lgtm.

if test -d src/tiledb-inst/lib64; then
## checking for lib64 used e.g. on Fedora
AC_MSG_RESULT([** Now using src/tiledb-inst/lib64/])
AC_SUBST([TILEDB_LIBS], "tiledb-inst/lib64/libtiledb.a tiledb-inst/lib64/libtbb.a tiledb-inst/lib64/libssl.a tiledb-inst/lib64/libcrypto.a tiledb-inst/lib64/libzstd.a tiledb-inst/lib64/liblz4.a")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When we have the .pc file, will we be able to avoid the static list of libs?

mkdir build
cd build
../tiledb-src/bootstrap --prefix=../tiledb-inst --enable-static-tiledb --force-build-all-deps
make -j 8
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe use $(nproc) instead?

[],
[AC_MSG_ERROR([unable to find tiledb/tiledb.h])])
if test x"${have_tiledb}" = x"0"; then
AC_DEFUN([AC_PROG_CMAKE], [AC_CHECK_PROG(have_cmake,cmake,yes)])
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

some system the cmake command might be cmake3, this is mostly Ubuntu 16.04/RHEL 6 or 7.

@eddelbuettel
Copy link
Contributor Author

Thanks for the two approvals. I'll merge this to clear the stack but with the understanding that it is ultimately work in progress (as we may need a richer config, support more platforms etc pp).

@eddelbuettel eddelbuettel merged commit 11b4515 into master May 11, 2020
@eddelbuettel eddelbuettel deleted the feature/build_tiledb_pr branch May 11, 2020 22:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants