1## Copyright (C) 1996-2021 The Squid Software Foundation and contributors
2##
3## Squid software is distributed under GPLv2+ license and includes
4## contributions from numerous individuals and organizations.
5## Please see the COPYING and CONTRIBUTORS files for details.
6##
7
8include $(top_srcdir)/src/Common.am
9include $(top_srcdir)/src/TestHeaders.am
10
11# ICMP Specific Configurations
12
13if ENABLE_PINGER
14libexec_PROGRAMS = pinger
15else
16EXTRA_PROGRAMS = pinger
17endif
18
19noinst_LTLIBRARIES = libicmpcore.la libicmp.la
20
21# ICMP API definition ...
22libicmpcore_la_SOURCES = \
23	Icmp.h \
24	Icmp.cc
25
26# Squid Internal ICMP helper interface
27libicmp_la_SOURCES = \
28	IcmpConfig.cc \
29	IcmpConfig.h \
30	IcmpSquid.h \
31	IcmpSquid.cc \
32	net_db.h \
33	net_db.cc
34
35libicmp_la_LIBADD= libicmpcore.la
36
37# pinger depends on these but install/dist is done elsewhere.
38COPIED_SOURCE= \
39	debug.cc \
40	globals.cc \
41	SquidConfig.cc \
42	SquidNew.cc \
43	stub_HelperChildConfig.cc \
44	stub_libmem.cc \
45	STUB.h \
46	time.cc
47
48# ICMP lookup helper
49pinger_SOURCES = \
50	Icmp.h \
51	IcmpPinger.h \
52	IcmpPinger.cc \
53	Icmp4.h \
54	Icmp4.cc \
55	Icmp6.h \
56	Icmp6.cc \
57	pinger.cc
58nodist_pinger_SOURCES = $(COPIED_SOURCE)
59pinger_LDFLAGS = $(LIBADD_DL)
60pinger_LDADD=\
61	libicmpcore.la \
62	$(top_builddir)/src/ip/libip.la \
63	$(top_builddir)/src/base/libbase.la \
64	$(COMPAT_LIB) \
65	$(SSLLIB) \
66	$(XTRA_LIBS)
67
68CLEANFILES += $(COPIED_SOURCE)
69
70##install-pinger:
71##	@f=$(PINGER_EXE); \
72##	if test -f $(libexecdir)/$$f; then \
73##		echo $(MV) $(libexecdir)/$$f $(libexecdir)/-$$f; \
74##		$(MV) $(libexecdir)/$$f $(libexecdir)/-$$f; \
75##	fi; \
76##	echo $(INSTALL_SUID) $$f $(libexecdir); \
77##	$(INSTALL_SUID) $$f $(libexecdir) || exit 1; \
78##	if test -f $(libexecdir)/-$$f; then \
79##		echo $(RM) -f $(libexecdir)/-$$f; \
80##		$(RM) -f $(libexecdir)/-$$f; \
81##	fi
82
83## files we need to pull in from other locations
84## copied like this to avoid subdir-objects collisions on 'make clean'
85debug.cc: $(top_srcdir)/src/debug.cc
86	cp $(top_srcdir)/src/debug.cc $@
87
88globals.cc: $(top_srcdir)/src/globals.h
89	cp $(top_builddir)/src/globals.cc $@
90
91time.cc: $(top_srcdir)/src/time.cc
92	cp $(top_srcdir)/src/time.cc $@
93
94SquidConfig.cc: $(top_srcdir)/src/SquidConfig.cc
95	cp $(top_srcdir)/src/SquidConfig.cc $@
96
97SquidNew.cc: $(top_srcdir)/src/SquidNew.cc
98	cp $(top_srcdir)/src/SquidNew.cc $@
99
100stub_HelperChildConfig.cc: $(top_srcdir)/src/tests/stub_HelperChildConfig.cc
101	cp $(top_srcdir)/src/tests/stub_HelperChildConfig.cc $@
102
103stub_libmem.cc: $(top_srcdir)/src/tests/stub_libmem.cc STUB.h
104	cp $(top_srcdir)/src/tests/stub_libmem.cc $@
105
106STUB.h: $(top_srcdir)/src/tests/STUB.h
107	cp $(top_srcdir)/src/tests/STUB.h $@
108