From 30237d294fcb522e3be0df3a5625178db6f47a32 Mon Sep 17 00:00:00 2001 From: David Lamparter Date: Fri, 4 Aug 2017 16:13:29 +0200 Subject: [PATCH] build: non-recursive ldpd This also fixes a build problem where using #include "ldpd/ldp_vty_cmds_clippy.c" results in the Makefile dependency tracking having both ldp_vty_cmds.c: ldp_vty_cmds_clippy.c ldp_vty_cmds.c: ../ldpd/ldp_vty_cmds_clippy.c (because, if it's included as "ldpd/..", it uses the "-I.." include path in gcc, so the gcc -MD dependency output is "../ldpd/...") ... all of which causes the build to try to build it twice (at the same time) and fail rather stupidly. With a non-recursive build, the two paths are identical and everything just works. Signed-off-by: David Lamparter --- Makefile.am | 5 +++-- configure.ac | 12 ++++------- ldpd/.gitignore | 2 +- ldpd/Makefile | 10 +++++++++ ldpd/Makefile.am | 30 -------------------------- ldpd/subdir.am | 55 ++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 73 insertions(+), 41 deletions(-) create mode 100644 ldpd/Makefile delete mode 100644 ldpd/Makefile.am create mode 100644 ldpd/subdir.am diff --git a/Makefile.am b/Makefile.am index 72689c28f7..7d607b2d53 100644 --- a/Makefile.am +++ b/Makefile.am @@ -37,14 +37,15 @@ include ospf6d/subdir.am include ospfclient/subdir.am include isisd/subdir.am include nhrpd/subdir.am +include ldpd/subdir.am SUBDIRS = . @LIBRFP@ @RFPTEST@ \ - @BGPD@ @LDPD@ \ + @BGPD@ \ @PIMD@ @EIGRPD@ @BABELD@ \ @WATCHFRR@ @VTYSH@ @DOC@ \ @SOLARIS@ tests tools -DIST_SUBDIRS = . bgpd ldpd \ +DIST_SUBDIRS = . bgpd \ watchfrr vtysh doc tests \ solaris pimd eigrpd bgpd/rfp-example/librfp \ bgpd/rfp-example/rfptest tools babeld \ diff --git a/configure.ac b/configure.ac index 7403047b62..0cae5e5824 100755 --- a/configure.ac +++ b/configure.ac @@ -1253,14 +1253,11 @@ AM_CONDITIONAL(BGPD, test "x$BGPD" = "xbgpd") AM_CONDITIONAL(RIPD, test "${enable_ripd}" != "no") AM_CONDITIONAL(OSPFD, test "${enable_ospfd}" != "no") +AM_CONDITIONAL(LDPD, test "${enable_ldpd}" != "no") -if test "${enable_ldpd}" = "no";then - LDPD="" -else - LDPD="ldpd" +AS_IF([test "${enable_ldpd}" != "no"], [ AC_DEFINE(HAVE_LDPD, 1, ldpd) -fi -AM_CONDITIONAL(LDPD, test "x$LDPD" = "xldpd") +]) NHRPD="" case "$host_os" in @@ -1352,7 +1349,6 @@ AC_SUBST(LIBRFP) AC_SUBST(RFPINC) AC_SUBST(BABELD) AC_SUBST(BGPD) -AC_SUBST(LDPD) AC_SUBST(EIGRPD) AC_SUBST(WATCHFRR) AC_SUBST(ISISD) @@ -1805,7 +1801,7 @@ AC_MSG_RESULT($ac_cv_htonl_works) AC_CONFIG_FILES([Makefile bgpd/Makefile watchfrr/Makefile - ldpd/Makefile vtysh/Makefile + vtysh/Makefile doc/Makefile tests/Makefile bgpd/rfp-example/rfptest/Makefile bgpd/rfp-example/librfp/Makefile babeld/Makefile diff --git a/ldpd/.gitignore b/ldpd/.gitignore index f52b227cb1..eee96c636f 100644 --- a/ldpd/.gitignore +++ b/ldpd/.gitignore @@ -1,4 +1,4 @@ -Makefile +!Makefile Makefile.in *.o ldpd diff --git a/ldpd/Makefile b/ldpd/Makefile new file mode 100644 index 0000000000..464e02cf51 --- /dev/null +++ b/ldpd/Makefile @@ -0,0 +1,10 @@ +all: ALWAYS + @$(MAKE) -s -C .. ldpd/ldpd +%: ALWAYS + @$(MAKE) -s -C .. ldpd/$@ + +Makefile: + #nothing +ALWAYS: +.PHONY: ALWAYS makefiles +.SUFFIXES: diff --git a/ldpd/Makefile.am b/ldpd/Makefile.am deleted file mode 100644 index de9b07ed4c..0000000000 --- a/ldpd/Makefile.am +++ /dev/null @@ -1,30 +0,0 @@ -## Process this file with automake to produce Makefile.in. - -include ../common.am - -AM_CPPFLAGS = -I.. -I$(top_srcdir) -I$(top_srcdir)/lib -I$(top_builddir)/lib -DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\" -INSTALL_SDATA=@INSTALL@ -m 600 - -AM_CFLAGS = $(WERROR) - -noinst_LIBRARIES = libldp.a -sbin_PROGRAMS = ldpd - -libldp_a_SOURCES = \ - accept.c address.c adjacency.c control.c hello.c init.c interface.c \ - keepalive.c l2vpn.c labelmapping.c lde.c lde_lib.c ldpd.c \ - ldpe.c log.c logmsg.c neighbor.c notification.c packet.c pfkey.c \ - socket.c util.c ldp_vty_cmds.c ldp_vty_conf.c ldp_vty_exec.c \ - ldp_debug.c ldp_zebra.c - -ldp_vty_cmds.o: ldp_vty_cmds_clippy.c - -noinst_HEADERS = \ - control.h lde.h ldpd.h ldpe.h ldp.h log.h ldp_debug.h ldp_vty.h - -ldpd_SOURCES = ldpd.c -ldpd_LDADD = libldp.a ../lib/libfrr.la @LIBCAP@ - -examplesdir = $(exampledir) -dist_examples_DATA = ldpd.conf.sample diff --git a/ldpd/subdir.am b/ldpd/subdir.am new file mode 100644 index 0000000000..db71cee618 --- /dev/null +++ b/ldpd/subdir.am @@ -0,0 +1,55 @@ +# +# ldpd +# + +if LDPD +noinst_LIBRARIES += ldpd/libldp.a +sbin_PROGRAMS += ldpd/ldpd +dist_examples_DATA += ldpd/ldpd.conf.sample +endif + +ldpd_libldp_a_SOURCES = \ + ldpd/accept.c \ + ldpd/address.c \ + ldpd/adjacency.c \ + ldpd/control.c \ + ldpd/hello.c \ + ldpd/init.c \ + ldpd/interface.c \ + ldpd/keepalive.c \ + ldpd/l2vpn.c \ + ldpd/labelmapping.c \ + ldpd/lde.c \ + ldpd/lde_lib.c \ + ldpd/ldp_debug.c \ + ldpd/ldp_vty_cmds.c \ + ldpd/ldp_vty_conf.c \ + ldpd/ldp_vty_exec.c \ + ldpd/ldp_zebra.c \ + ldpd/ldpd.c \ + ldpd/ldpe.c \ + ldpd/log.c \ + ldpd/logmsg.c \ + ldpd/neighbor.c \ + ldpd/notification.c \ + ldpd/packet.c \ + ldpd/pfkey.c \ + ldpd/socket.c \ + ldpd/util.c \ + # end + +ldpd/ldp_vty_cmds.$(OBJEXT): ldpd/ldp_vty_cmds_clippy.c + +noinst_HEADERS += \ + ldpd/control.h \ + ldpd/lde.h \ + ldpd/ldp.h \ + ldpd/ldp_debug.h \ + ldpd/ldp_vty.h \ + ldpd/ldpd.h \ + ldpd/ldpe.h \ + ldpd/log.h \ + # end + +ldpd_ldpd_SOURCES = ldpd/ldpd.c +ldpd_ldpd_LDADD = ldpd/libldp.a lib/libfrr.la @LIBCAP@