diff options
author | Jeremy Kerr <jk@ozlabs.org> | 2013-03-18 14:23:23 +0800 |
---|---|---|
committer | Jeremy Kerr <jk@ozlabs.org> | 2013-04-29 14:41:04 +1000 |
commit | 45e92aa32a80fdbbf5ad3ad64e34b1ac872018ef (patch) | |
tree | 2753fb3912c07d23f3e2f622c05043f55c8f24c9 /discover/Makefile.am | |
parent | 5444648fe1ff9b79f3db5ee6feadd51341f59d71 (diff) | |
download | talos-petitboot-45e92aa32a80fdbbf5ad3ad64e34b1ac872018ef.tar.gz talos-petitboot-45e92aa32a80fdbbf5ad3ad64e34b1ac872018ef.zip |
parsers: dynamically register parsers
Currently, we require all parsers to be defined in an array in
parsers.c.
This change removes this requirement, by introducting a
register_parser() macro, which adds a constructor to register the parser
with the core parser infrastructure.
Because each parser no longer resolves an undefined symbol, we need to
use a `ld -r` object for libparser, instead of using libtool, which
creates a .a (and hence has no parsers included).
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'discover/Makefile.am')
-rw-r--r-- | discover/Makefile.am | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/discover/Makefile.am b/discover/Makefile.am index a3087ef..8cbb0af 100644 --- a/discover/Makefile.am +++ b/discover/Makefile.am @@ -19,15 +19,13 @@ AM_CFLAGS = $(DEFAULT_CFLAGS) \ -DPKG_SHARE_DIR='"$(pkgdatadir)"' \ -DLOCAL_STATE_DIR='"$(localstatedir)"' -noinst_LTLIBRARIES = libparser.la +noinst_LIBRARIES = libparser.o -libparser_la_SOURCES = \ +libparser_o_SOURCES = \ parser.c \ parser.h \ parser-conf.c \ parser-conf.h \ - parser-utils.c \ - parser-utils.h \ paths.c \ paths.h \ resource.c \ @@ -36,9 +34,10 @@ libparser_la_SOURCES = \ grub2-parser.c \ yaboot-parser.c -EXTRA_DIST = native-parser.c +libparser.o: $(libparser_o_OBJECTS) + $(LD) -r -o $@ $^ -libparser_la_LIBADD = $(top_builddir)/lib/libpbcore.la +EXTRA_DIST = native-parser.c sbin_PROGRAMS = pb-discover @@ -54,6 +53,8 @@ pb_discover_SOURCES = \ event-parser.c \ params.c \ params.h \ + parser-utils.c \ + parser-utils.h \ pb-discover.c \ pb-discover.h \ udev.c \ @@ -61,6 +62,6 @@ pb_discover_SOURCES = \ user-event.c \ user-event.h -pb_discover_LDADD = libparser.la $(top_builddir)/lib/libpbcore.la +pb_discover_LDADD = libparser.o $(top_builddir)/lib/libpbcore.la MAINTAINERCLEANFILES = Makefile.in |