blob: d5675d39af55340d339a563141d815115c9bba2a [file] [log] [blame]
From 106aa50d4e5b336f7dd2d5cf4d882e692d205e91 Mon Sep 17 00:00:00 2001
From: Vincent Bernat <vincent@bernat.im>
Date: Sat, 18 Jun 2016 22:18:41 +0200
Subject: [PATCH] build: make generation of atom-glue compatible with older gcc
versions
With old versions, cpp doesn't accept several files as input. See #186.
Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
---
src/lib/Makefile.am | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am
index 250e32a..2a5cdb3 100644
--- a/src/lib/Makefile.am
+++ b/src/lib/Makefile.am
@@ -20,8 +20,9 @@ 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)($(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(ATOM_FILES:%=$(srcdir)/%) | \
+ $(AM_V_GEN)(for f in $(ATOM_FILES:%=$(srcdir)/%); do \
+ $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $$f; done | \
$(SED) -n 's+^void init_atom_builder_\([^(]*\)().*, \([0-9]*\)).*+\2 \1+p' | \
sort | \
$(AWK) '{ atoms[$$2] = 1 } \
@@ -30,8 +31,9 @@ atom-glue.c: $(ATOM_FILES) Makefile
print " static int init = 0; if (init) return; init++;"; \
for (atom in atoms) { print " init_atom_builder_"atom"();" } \
print "}"; }' && \
+ for f in $(ATOM_FILES:%=$(srcdir)/%); do \
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(ATOM_FILES:%=$(srcdir)/%) | \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $$f; done | \
$(SED) -n 's+^void init_atom_map_\([^(]*\)().*, \([0-9]*\)).*+\2 \1+p' | \
sort -n | \
$(AWK) '{ atoms[$$2] = 1 } \
--
2.9.0