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 Carl Worth <cworth@cworth.org>2011-06-28 11:59:48 -0700
commit51b7ab69687cf815e0e01f5f87d2cbf49ac41ec3 (patch)
tree9879b29e4bb1f22f208adad0e7b0ace5c54f4432 /lib/Makefile.local
parent891082befa4edd55acadbd0a66ff080f3e6dce9b (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.
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 eaa8af42..6dd095c5 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)
@@ -104,5 +103,5 @@ install-$(dir): $(dir)/$(LIBNAME)
SRCS := $(SRCS) $(libnotmuch_c_srcs) $(libnotmuch_cxx_srcs)
CLEAN += $(libnotmuch_modules) $(dir)/$(SONAME) $(dir)/$(LINKER_NAME)
-CLEAN += $(dir)/$(LIBNAME) $(dir)/libnotmuch.a notmuch.aux notmuch.sym
+CLEAN += $(dir)/$(LIBNAME) $(dir)/libnotmuch.a notmuch.sym
CLEAN += $(dir)/notmuch.h.gch