mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-21 10:28:09 +01:00
build: integrate building ruby bindings into notmuch build process
Because ruby generates a Makefile, we have to use recursive make. Because mkmf.rb hardcodes the name Makefile, put our Makefile{.local} in the parent directory.
This commit is contained in:
parent
32fd74b7aa
commit
d038b93209
6 changed files with 51 additions and 2 deletions
|
@ -59,7 +59,7 @@ endif
|
|||
FINAL_LIBNOTMUCH_LDFLAGS = $(LDFLAGS) $(AS_NEEDED_LDFLAGS) $(CONFIGURE_LDFLAGS)
|
||||
|
||||
.PHONY: all
|
||||
all: notmuch notmuch-shared build-man
|
||||
all: notmuch notmuch-shared build-man ruby-bindings
|
||||
ifeq ($(MAKECMDGOALS),)
|
||||
ifeq ($(shell cat .first-build-message 2>/dev/null),)
|
||||
@NOTMUCH_FIRST_BUILD=1 $(MAKE) --no-print-directory all
|
||||
|
|
7
bindings/Makefile
Normal file
7
bindings/Makefile
Normal file
|
@ -0,0 +1,7 @@
|
|||
# See Makefile.local for the list of files to be compiled in this
|
||||
# directory.
|
||||
all:
|
||||
$(MAKE) -C .. all
|
||||
|
||||
.DEFAULT:
|
||||
$(MAKE) -C .. $@
|
18
bindings/Makefile.local
Normal file
18
bindings/Makefile.local
Normal file
|
@ -0,0 +1,18 @@
|
|||
# -*- makefile -*-
|
||||
|
||||
dir := bindings
|
||||
|
||||
# force the shared library to be built
|
||||
ruby-bindings: lib/libnotmuch.so
|
||||
ifeq ($(HAVE_RUBY_DEV),1)
|
||||
cd $(dir)/ruby && ruby extconf.rb --vendor
|
||||
$(MAKE) -C $(dir)/ruby
|
||||
else
|
||||
@echo Missing dependency, skipping ruby bindings
|
||||
endif
|
||||
|
||||
CLEAN += $(patsubst %,$(dir)/ruby/%, \
|
||||
.RUBYARCHDIR.time \
|
||||
Makefile database.o directory.o filenames.o\
|
||||
init.o message.o messages.o mkmf.log notmuch.so query.o \
|
||||
status.o tags.o thread.o threads.o)
|
7
bindings/ruby/README
Normal file
7
bindings/ruby/README
Normal file
|
@ -0,0 +1,7 @@
|
|||
To build the the notmuch ruby extension, run the following commands
|
||||
from the *top level* notmuch source directory:
|
||||
|
||||
% ./configure
|
||||
% make ruby-bindings
|
||||
|
||||
The generic documentation about building notmuch also applies.
|
18
configure
vendored
18
configure
vendored
|
@ -21,6 +21,7 @@ srcdir=$(dirname "$0")
|
|||
|
||||
subdirs="util compat lib parse-time-string completion doc emacs"
|
||||
subdirs="${subdirs} performance-test test test/test-databases"
|
||||
subdirs="${subdirs} bindings"
|
||||
|
||||
# For a non-srcdir configure invocation (such as ../configure), create
|
||||
# the directory structure and copy Makefiles.
|
||||
|
@ -474,6 +475,15 @@ else
|
|||
have_doxygen=0
|
||||
fi
|
||||
|
||||
printf "Checking for ruby development files... "
|
||||
if ruby -e "require 'mkmf'"> /dev/null 2>&1; then
|
||||
printf "Yes.\n"
|
||||
have_ruby_dev=1
|
||||
else
|
||||
printf "No (skipping ruby bindings)\n"
|
||||
have_ruby_dev=0
|
||||
fi
|
||||
|
||||
printf "Checking if sphinx is available and supports nroff output... "
|
||||
if command -v sphinx-build > /dev/null && ${python} -m sphinx.writers.manpage > /dev/null 2>&1 ; then
|
||||
printf "Yes.\n"
|
||||
|
@ -887,6 +897,10 @@ HAVE_CANONICALIZE_FILE_NAME = ${have_canonicalize_file_name}
|
|||
# build its own version)
|
||||
HAVE_GETLINE = ${have_getline}
|
||||
|
||||
# Are the ruby development files (and ruby) available? If not skip
|
||||
# building/testing ruby bindings.
|
||||
HAVE_RUBY_DEV = ${have_ruby_dev}
|
||||
|
||||
# Whether the strcasestr function is available (if not, then notmuch will
|
||||
# build its own version)
|
||||
HAVE_STRCASESTR = ${have_strcasestr}
|
||||
|
@ -999,6 +1013,10 @@ NOTMUCH_HAVE_MAN=$((have_sphinx))
|
|||
|
||||
# Name of python interpreter
|
||||
NOTMUCH_PYTHON=${python}
|
||||
|
||||
# Are the ruby development files (and ruby) available? If not skip
|
||||
# building/testing ruby bindings.
|
||||
NOTMUCH_HAVE_RUBY_DEV=${have_ruby_dev}
|
||||
EOF
|
||||
|
||||
# Finally, after everything configured, inform the user how to continue.
|
||||
|
|
1
debian/rules
vendored
1
debian/rules
vendored
|
@ -19,7 +19,6 @@ override_dh_auto_build:
|
|||
dh_auto_build -- V=1
|
||||
dh_auto_build --sourcedirectory bindings/python
|
||||
cd bindings/python && $(python3_all) setup.py build
|
||||
cd bindings/ruby && ruby extconf.rb --vendor && make
|
||||
$(MAKE) -C contrib/notmuch-mutt
|
||||
|
||||
override_dh_auto_clean:
|
||||
|
|
Loading…
Reference in a new issue