mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-22 10:58:10 +01:00
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.
This commit is contained in:
parent
891082befa
commit
51b7ab6968
1 changed files with 2 additions and 3 deletions
|
@ -76,9 +76,8 @@ $(dir)/$(LIBNAME): $(libnotmuch_modules) notmuch.sym
|
||||||
$(call quiet,CXX $(CXXFLAGS)) $(libnotmuch_modules) $(FINAL_LIBNOTMUCH_LDFLAGS) $(LIBRARY_LINK_FLAG) -o $@
|
$(call quiet,CXX $(CXXFLAGS)) $(libnotmuch_modules) $(FINAL_LIBNOTMUCH_LDFLAGS) $(LIBRARY_LINK_FLAG) -o $@
|
||||||
|
|
||||||
notmuch.sym: lib/notmuch.h
|
notmuch.sym: lib/notmuch.h
|
||||||
gcc -aux-info notmuch.aux $<
|
|
||||||
printf "{\nglobal:\n" > notmuch.sym
|
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
|
printf "local: *;\n};\n" >> notmuch.sym
|
||||||
|
|
||||||
$(dir)/$(SONAME): $(dir)/$(LIBNAME)
|
$(dir)/$(SONAME): $(dir)/$(LIBNAME)
|
||||||
|
@ -104,5 +103,5 @@ install-$(dir): $(dir)/$(LIBNAME)
|
||||||
|
|
||||||
SRCS := $(SRCS) $(libnotmuch_c_srcs) $(libnotmuch_cxx_srcs)
|
SRCS := $(SRCS) $(libnotmuch_c_srcs) $(libnotmuch_cxx_srcs)
|
||||||
CLEAN += $(libnotmuch_modules) $(dir)/$(SONAME) $(dir)/$(LINKER_NAME)
|
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
|
CLEAN += $(dir)/notmuch.h.gch
|
||||||
|
|
Loading…
Reference in a new issue