summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Lamparter <equinox@opensourcerouting.org>2017-08-04 16:13:29 +0200
committerDavid Lamparter <equinox@opensourcerouting.org>2017-08-04 19:09:11 +0200
commit30237d294fcb522e3be0df3a5625178db6f47a32 (patch)
tree8447ae64a257378808081e27cca355a9694a05cd
parent50ffbc124bca15b2ca09c1b8b2fd57de6c4d3da4 (diff)
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>
-rw-r--r--Makefile.am5
-rwxr-xr-xconfigure.ac12
-rw-r--r--ldpd/.gitignore2
-rw-r--r--ldpd/Makefile10
-rw-r--r--ldpd/Makefile.am30
-rw-r--r--ldpd/subdir.am55
6 files changed, 73 insertions, 41 deletions
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@