#
# pimd
#

if PIMD
sbin_PROGRAMS += pimd/pimd
bin_PROGRAMS += pimd/mtracebis
noinst_PROGRAMS += pimd/test_igmpv3_join
vtysh_daemons += pimd
vtysh_daemons += pim6d
man8 += $(MANBUILD)/frr-pimd.8
man8 += $(MANBUILD)/mtracebis.8
endif

pim_common = \
	pimd/pim_addr.c \
	pimd/pim_assert.c \
	pimd/pim_bfd.c \
	pimd/pim_bsm.c \
	pimd/pim_bsr_rpdb.c \
	pimd/pim_cmd_common.c \
	pimd/pim_errors.c \
	pimd/pim_hello.c \
	pimd/pim_iface.c \
	pimd/pim_ifchannel.c \
	pimd/pim_instance.c \
	pimd/pim_int.c \
	pimd/pim_join.c \
	pimd/pim_jp_agg.c \
	pimd/pim_macro.c \
	pimd/pim_memory.c \
	pimd/pim_mroute.c \
	pimd/pim_msg.c \
	pimd/pim_nb.c \
	pimd/pim_nb_config.c \
	pimd/pim_neighbor.c \
	pimd/pim_nht.c \
	pimd/pim_oil.c \
	pimd/pim_pim.c \
	pimd/pim_routemap.c \
	pimd/pim_rp.c \
	pimd/pim_rpf.c \
	pimd/pim_sock.c \
	pimd/pim_ssm.c \
	pimd/pim_ssmpingd.c \
	pimd/pim_static.c \
	pimd/pim_tib.c \
	pimd/pim_time.c \
	pimd/pim_tlv.c \
	pimd/pim_upstream.c \
	pimd/pim_util.c \
	pimd/pim_vty.c \
	pimd/pim_zebra.c \
	pimd/pim_zlookup.c \
	pimd/pim_vxlan.c \
	pimd/pim_register.c \
	pimd/pimd.c \
	# end

pimd_pimd_SOURCES = \
	$(pim_common) \
	pimd/pim_autorp.c \
	pimd/pim_cmd.c \
	pimd/pim_igmp.c \
	pimd/pim_igmp_mtrace.c \
	pimd/pim_igmp_stats.c \
	pimd/pim_igmpv2.c \
	pimd/pim_igmpv3.c \
	pimd/pim_main.c \
	pimd/pim_mlag.c \
	pimd/pim_msdp.c \
	pimd/pim_msdp_packet.c \
	pimd/pim_msdp_socket.c \
	pimd/pim_signals.c \
	pimd/pim_zpthread.c \
	# end

nodist_pimd_pimd_SOURCES = \
	yang/frr-pim.yang.c \
	yang/frr-pim-rp.yang.c \
	yang/frr-pim-candidate.yang.c \
	yang/frr-gmp.yang.c \
	# end

pimd_pim6d_SOURCES = \
	$(pim_common) \
	pimd/pim6_main.c \
	pimd/pim6_mld.c \
	pimd/pim6_cmd.c \
	# end

nodist_pimd_pim6d_SOURCES = \
	yang/frr-pim.yang.c \
	yang/frr-pim-rp.yang.c \
	yang/frr-pim-candidate.yang.c \
	yang/frr-gmp.yang.c \
	# end

noinst_HEADERS += \
	pimd/pim_addr.h \
	pimd/pim_assert.h \
	pimd/pim_autorp.h \
	pimd/pim_bfd.h \
	pimd/pim_bsm.h \
	pimd/pim_cmd.h \
	pimd/pim_cmd_common.h \
	pimd/pim_errors.h \
	pimd/pim_hello.h \
	pimd/pim_iface.h \
	pimd/pim_ifchannel.h \
	pimd/pim_igmp.h \
	pimd/pim_igmp_join.h \
	pimd/pim_igmp_mtrace.h \
	pimd/pim_igmp_stats.h \
	pimd/pim_igmpv2.h \
	pimd/pim_igmpv3.h \
	pimd/pim_instance.h \
	pimd/pim_int.h \
	pimd/pim_join.h \
	pimd/pim_jp_agg.h \
	pimd/pim_macro.h \
	pimd/pim_memory.h \
	pimd/pim_mlag.h \
	pimd/pim_mroute.h \
	pimd/pim_msdp.h \
	pimd/pim_msdp_packet.h \
	pimd/pim_msdp_socket.h \
	pimd/pim_msg.h \
	pimd/pim_nb.h \
	pimd/pim_neighbor.h \
	pimd/pim_nht.h \
	pimd/pim_oil.h \
	pimd/pim_pim.h \
	pimd/pim_register.h \
	pimd/pim_rp.h \
	pimd/pim_rpf.h \
	pimd/pim_signals.h \
	pimd/pim_sock.h \
	pimd/pim_ssm.h \
	pimd/pim_ssmpingd.h \
	pimd/pim_static.h \
	pimd/pim_str.h \
	pimd/pim_tib.h \
	pimd/pim_time.h \
	pimd/pim_tlv.h \
	pimd/pim_upstream.h \
	pimd/pim_util.h \
	pimd/pim_vty.h \
	pimd/pim_zebra.h \
	pimd/pim_zlookup.h \
	pimd/pim_vxlan.h \
	pimd/pim_vxlan_instance.h \
	pimd/pimd.h \
	pimd/pim6_mld.h \
	pimd/pim6_mld_protocol.h \
	pimd/mtracebis_netlink.h \
	pimd/mtracebis_routeget.h \
	pimd/pim6_cmd.h \
	# end

clippy_scan += \
	pimd/pim_cmd.c \
	pimd/pim6_cmd.c \
	pimd/pim6_mld.c \
	# end

pimd_pimd_CFLAGS = $(AM_CFLAGS) -DPIM_IPV=4
pimd_pimd_LDADD = lib/libfrr.la $(LIBCAP) -lm

if PIM6D
sbin_PROGRAMS += pimd/pim6d
pimd_pim6d_CFLAGS = $(AM_CFLAGS) -DPIM_IPV=6
pimd_pim6d_LDADD = lib/libfrr.la $(LIBCAP) -lm
endif

pimd_test_igmpv3_join_CFLAGS = $(AM_CFLAGS) -DPIM_IPV=4
pimd_test_igmpv3_join_LDADD = lib/libfrr.la
pimd_test_igmpv3_join_SOURCES = pimd/test_igmpv3_join.c

pimd_mtracebis_LDADD =  lib/libfrr.la
pimd_mtracebis_CFLAGS = $(AM_CFLAGS) -DPIM_IPV=4
pimd_mtracebis_SOURCES = pimd/mtracebis.c \
			 pimd/mtracebis_netlink.c \
			 pimd/mtracebis_routeget.c \
			 # end
