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 <equinox@opensourcerouting.org>
This commit is contained in:
David Lamparter 2017-08-04 16:13:29 +02:00
parent 50ffbc124b
commit 30237d294f
6 changed files with 73 additions and 41 deletions

View File

@ -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 \

View File

@ -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

2
ldpd/.gitignore vendored
View File

@ -1,4 +1,4 @@
Makefile
!Makefile
Makefile.in
*.o
ldpd

10
ldpd/Makefile Normal file
View File

@ -0,0 +1,10 @@
all: ALWAYS
@$(MAKE) -s -C .. ldpd/ldpd
%: ALWAYS
@$(MAKE) -s -C .. ldpd/$@
Makefile:
#nothing
ALWAYS:
.PHONY: ALWAYS makefiles
.SUFFIXES:

View File

@ -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

55
ldpd/subdir.am Normal file
View File

@ -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@