atoms/config.c atoms/dot1.c atoms/dot3.c \
atoms/interface.c atoms/med.c atoms/mgmt.c atoms/port.c \
atoms/custom.c atoms/chassis.c
-NON_ATOM_FILES = \
- errors.c connection.c atom.c helpers.c
liblldpctl_la_SOURCES = \
lldpctl.h atom.h helpers.h \
- $(NON_ATOM_FILES) \
+ errors.c connection.c atom.c helpers.c \
$(ATOM_FILES)
nodist_liblldpctl_la_SOURCES = atom-glue.c
liblldpctl_la_LIBADD = $(top_builddir)/src/libcommon-daemon-lib.la libfixedpoint.la
atom-glue.c: $(ATOM_FILES) Makefile
- $(AM_V_GEN)(cat $^ | \
- $(SED) -n 's+^ATOM_BUILDER_REGISTER(\([^,]*\), *\([0-9]*\)).*+\2 \1+p' | \
- sort -n | \
+ $(AM_V_GEN)($(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(filter %.c,$^) | \
+ $(SED) -n 's+^void init_atom_builder_\([^(]*\)().*, \([0-9]*\)).*+\2 \1+p' | \
+ sort | \
$(AWK) '{ atoms[$$2] = 1 } \
END { for (atom in atoms) { print "void init_atom_builder_"atom"(void);" } \
print "void init_atom_builder() {"; \
print " static int init = 0; if (init) return; init++;"; \
for (atom in atoms) { print " init_atom_builder_"atom"();" } \
print "}"; }' && \
- cat $^ | \
- $(SED) -n 's+^ATOM_MAP_REGISTER(\([^,]*\), *\([0-9]*\)).*+\2 \1+p' | \
+ $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(filter %.c,$^) | \
+ $(SED) -n 's+^void init_atom_map_\([^(]*\)().*, \([0-9]*\)).*+\2 \1+p' | \
sort -n | \
$(AWK) '{ atoms[$$2] = 1 } \
END { for (atom in atoms) { print "void init_atom_map_"atom"(void);" } \
for (atom in atoms) { print " init_atom_map_"atom"();" } \
print "}"; }' ) \
> $@.tmp
- @[ -s $@.tmp ]
+ @$(GREP) -q init_atom_builder_ $@.tmp
+ @$(GREP) -q init_atom_map_ $@.tmp
@mv $@.tmp $@
CLEANFILES = atom-glue.c
return empty_map;
}
-void atom_map_register(struct atom_map *map)
+void atom_map_register(struct atom_map *map, int prio)
{
+ (void)prio;
struct atom_map* iter = &atom_map_list;
while (iter->next)
.nextb = NULL
};
-void atom_builder_register(struct atom_builder *builder)
+void atom_builder_register(struct atom_builder *builder, int prio)
{
+ (void)prio;
struct atom_builder* iter = &atom_builder_list;
while (iter->nextb)
lldpctl_map_t map[];
};
-void atom_map_register(struct atom_map *map);
+void atom_map_register(struct atom_map *map, int);
void init_atom_map(void);
-#define ATOM_MAP_REGISTER(NAME, PRIO) void init_atom_map_ ## NAME() { atom_map_register(& NAME ); }
+#define ATOM_MAP_REGISTER(NAME, PRIO) void init_atom_map_ ## NAME() { atom_map_register(& NAME, PRIO); }
struct atom_builder {
atom_t type; /* Atom type */
struct atom_builder *nextb;
};
-void atom_builder_register(struct atom_builder *builder);
+void atom_builder_register(struct atom_builder *builder, int);
void init_atom_builder(void);
-#define ATOM_BUILDER_REGISTER(NAME, PRIO) void init_atom_builder_ ## NAME() { atom_builder_register(& NAME ); }
+#define ATOM_BUILDER_REGISTER(NAME, PRIO) void init_atom_builder_ ## NAME() { atom_builder_register(& NAME, PRIO); }