aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/Makefile.local
diff options
context:
space:
mode:
authorGravatar David Bremner <bremner@debian.org>2011-06-26 22:08:52 -0300
committerGravatar David Bremner <bremner@debian.org>2011-06-28 16:32:07 -0300
commit8d46f053043e2645da8a7c4d85d3cd321f9a5e3a (patch)
tree85ce6cad1fdcbc9e8deb44d795c4bbbda8b94116 /lib/Makefile.local
parentde1ed86b79a1428cd2f0cf7e3a80748367588e8b (diff)
libnotmuch: build symbols list without relying on gcc -aux-info.
Carl reports "gcc -aux-info notmuch.aux lib/notmuch.h" does not generate notmuch.aux for him with Debian gcc 4.6.0-8. A small modification of the original sed regular expression allows us to work directly from lib/notmuch.h, rather than preprocessing with gcc. As with most such simple regex based "parsing", this is quite sensitive to the input format, and needs that each symbol to be exported from libnotmuch should - start with "notmuch_" - be the first non-whitespace token on the line - be followed by an open parenthesis. (Cherry-picked from 51b7ab69687, with conflicts resolved by db)
Diffstat (limited to 'lib/Makefile.local')
-rw-r--r--lib/Makefile.local5
1 files changed, 2 insertions, 3 deletions
diff --git a/lib/Makefile.local b/lib/Makefile.local
index 4676504c..7e2bc87b 100644
--- a/lib/Makefile.local
+++ b/lib/Makefile.local
@@ -76,9 +76,8 @@ $(dir)/$(LIBNAME): $(libnotmuch_modules) notmuch.sym
$(call quiet,CXX $(CXXFLAGS)) $(libnotmuch_modules) $(FINAL_LIBNOTMUCH_LDFLAGS) $(LIBRARY_LINK_FLAG) -o $@
notmuch.sym: lib/notmuch.h
- gcc -aux-info notmuch.aux $<
printf "{\nglobal:\n" > notmuch.sym
- sed -n 's/.*\(notmuch_[a-z_]*\) (.*/\t\1;/p' notmuch.aux >> notmuch.sym
+ sed -n 's/^\s*\(notmuch_[a-z_]*\)\s*(.*/\t\1;/p' $< >> notmuch.sym
printf "local: *;\n};\n" >> notmuch.sym
$(dir)/$(SONAME): $(dir)/$(LIBNAME)
@@ -103,4 +102,4 @@ install-$(dir): $(dir)/$(LIBNAME)
$(LIBRARY_INSTALL_POST_COMMAND)
SRCS := $(SRCS) $(libnotmuch_c_srcs) $(libnotmuch_cxx_srcs)
-CLEAN := $(CLEAN) $(libnotmuch_modules) $(dir)/$(SONAME) $(dir)/$(LINKER_NAME) $(dir)$(LIBNAME) libnotmuch.a notmuch.aux notmuch.sym
+CLEAN := $(CLEAN) $(libnotmuch_modules) $(dir)/$(SONAME) $(dir)/$(LINKER_NAME) $(dir)$(LIBNAME) libnotmuch.a notmuch.sym