ruby: don't use a directory as a target.

The directory is (neccesarily) not updated by the build, so it keeps
trying to build. The proposed fix is to use the name of the dynamic
library containing the extension.  This is a partial fix for the
rebuilding reported at [1].

[1]: id:87r29wwgq2.fsf@fifthhorseman.net
This commit is contained in:
David Bremner 2021-10-30 17:48:54 -03:00
parent 20b2150406
commit 904c067f32

View file

@ -3,21 +3,23 @@
dir := bindings dir := bindings
# force the shared library to be built # force the shared library to be built
ruby-bindings: lib/$(LINKER_NAME) ruby-bindings: $(dir)/ruby.stamp
$(dir)/ruby.stamp: lib/$(LINKER_NAME)
ifeq ($(HAVE_RUBY_DEV),1) ifeq ($(HAVE_RUBY_DEV),1)
cd $(dir)/ruby && \ cd $(dir)/ruby && \
EXTRA_LDFLAGS="$(NO_UNDEFINED_LDFLAGS)" \ EXTRA_LDFLAGS="$(NO_UNDEFINED_LDFLAGS)" \
LIBNOTMUCH="../../lib/$(LINKER_NAME)" \ LIBNOTMUCH="../../lib/$(LINKER_NAME)" \
NOTMUCH_SRCDIR='$(NOTMUCH_SRCDIR)' \ NOTMUCH_SRCDIR='$(NOTMUCH_SRCDIR)' \
$(RUBY) extconf.rb --vendor $(RUBY) extconf.rb --vendor
$(MAKE) -C $(dir)/ruby CFLAGS="$(CFLAGS) -pipe -fno-plt -fPIC" $(MAKE) -C $(dir)/ruby CFLAGS="$(CFLAGS) -pipe -fno-plt -fPIC" && touch $@
endif endif
python-cffi-bindings: lib/$(LINKER_NAME) python-cffi-bindings: lib/$(LINKER_NAME)
ifeq ($(HAVE_PYTHON3_CFFI),1) ifeq ($(HAVE_PYTHON3_CFFI),1)
cd $(dir)/python-cffi && \ cd $(dir)/python-cffi && \
${PYTHON} setup.py build --build-lib build/stage && \ ${PYTHON} setup.py build --build-lib build/stage && \
mkdir -p build/stage/tests && cp tests/*.py build/stage/tests mkdir -p build/stage/tests && cp tests/*.py build/stage/tests && touch ../../$@
endif endif
CLEAN += $(patsubst %,$(dir)/ruby/%, \ CLEAN += $(patsubst %,$(dir)/ruby/%, \
@ -26,6 +28,6 @@ CLEAN += $(patsubst %,$(dir)/ruby/%, \
init.o message.o messages.o mkmf.log notmuch.so query.o \ init.o message.o messages.o mkmf.log notmuch.so query.o \
status.o tags.o thread.o threads.o) status.o tags.o thread.o threads.o)
CLEAN += bindings/ruby/.vendorarchdir.time CLEAN += bindings/ruby/.vendorarchdir.time $(dir)/ruby.stamp
CLEAN += bindings/python-cffi/build CLEAN += bindings/python-cffi/build