1noinst_LTLIBRARIES = libsmtp.la
2
3AM_CPPFLAGS = \
4	-I$(top_srcdir)/src/lib \
5	-I$(top_srcdir)/src/lib-test \
6	-I$(top_srcdir)/src/lib-settings \
7	-I$(top_srcdir)/src/lib-master \
8	-I$(top_srcdir)/src/lib-sasl \
9	-I$(top_srcdir)/src/lib-ssl-iostream \
10	-I$(top_srcdir)/src/lib-dns \
11	-I$(top_srcdir)/src/lib-program-client \
12	-I$(top_srcdir)/src/lib-mail \
13	-DTEST_BIN_DIR=\"$(abs_srcdir)/test-bin\"
14
15smtp_server_cmds = \
16	smtp-server-cmd-helo.c \
17	smtp-server-cmd-starttls.c \
18	smtp-server-cmd-auth.c \
19	smtp-server-cmd-mail.c \
20	smtp-server-cmd-rcpt.c \
21	smtp-server-cmd-data.c \
22	smtp-server-cmd-rset.c \
23	smtp-server-cmd-noop.c \
24	smtp-server-cmd-quit.c \
25	smtp-server-cmd-vrfy.c \
26	smtp-server-cmd-xclient.c
27
28libsmtp_la_SOURCES = \
29	smtp-parser.c \
30	smtp-syntax.c \
31	smtp-address.c \
32	smtp-common.c \
33	smtp-params.c \
34	smtp-reply.c \
35	smtp-reply-parser.c \
36	smtp-command-parser.c \
37	smtp-client-command.c \
38	smtp-client-transaction.c \
39	smtp-client-connection.c \
40	smtp-client.c \
41	$(smtp_server_cmds) \
42	smtp-server-reply.c \
43	smtp-server-command.c \
44	smtp-server-recipient.c \
45	smtp-server-transaction.c \
46	smtp-server-connection.c \
47	smtp-server.c \
48	smtp-submit-settings.c \
49	smtp-submit.c
50
51headers = \
52	smtp-parser.h \
53	smtp-syntax.h \
54	smtp-address.h \
55	smtp-common.h \
56	smtp-params.h \
57	smtp-reply.h \
58	smtp-reply-parser.h \
59	smtp-command.h \
60	smtp-command-parser.h \
61	smtp-client-command.h \
62	smtp-client-transaction.h \
63	smtp-client-connection.h \
64	smtp-client-private.h \
65	smtp-client.h \
66	smtp-server-private.h \
67	smtp-server.h \
68	smtp-submit-settings.h \
69	smtp-submit.h
70
71pkginc_libdir=$(pkgincludedir)
72pkginc_lib_HEADERS = $(headers)
73
74test_programs = \
75	test-smtp-syntax \
76	test-smtp-address \
77	test-smtp-params \
78	test-smtp-reply \
79	test-smtp-command-parser \
80	test-smtp-payload \
81	test-smtp-submit \
82	test-smtp-client-errors \
83	test-smtp-server-errors
84
85test_nocheck_programs =
86
87fuzz_programs =
88
89if USE_FUZZER
90fuzz_programs += \
91	fuzz-smtp-server
92endif
93
94noinst_PROGRAMS = $(fuzz_programs) $(test_programs) $(test_nocheck_programs)
95
96EXTRA_DIST = \
97	test-bin/sendmail-exit-1.sh \
98	test-bin/sendmail-success.sh
99
100test_libs = \
101	$(noinst_LTLIBRARIES) \
102	../lib-program-client/libprogram_client.la \
103	../lib-dns/libdns.la \
104	../lib-mail/libmail.la \
105	../lib-charset/libcharset.la \
106	../lib-master/libmaster.la \
107	../lib-auth/libauth.la \
108	../lib-ssl-iostream/libssl_iostream.la \
109	../lib-settings/libsettings.la \
110	../lib-sasl/libsasl.la \
111	../lib-test/libtest.la \
112	../lib/liblib.la \
113	$(MODULE_LIBS)
114
115test_deps = \
116	$(noinst_LTLIBRARIES) \
117	../lib-program-client/libprogram_client.la \
118	../lib-dns/libdns.la \
119	../lib-mail/libmail.la \
120	../lib-charset/libcharset.la \
121	../lib-master/libmaster.la \
122	../lib-auth/libauth.la \
123	../lib-ssl-iostream/libssl_iostream.la \
124	../lib-settings/libsettings.la \
125	../lib-sasl/libsasl.la \
126	../lib-test/libtest.la \
127	../lib/liblib.la
128
129test_libs_ssl=
130if BUILD_OPENSSL
131test_libs_ssl += ../lib-ssl-iostream/libssl_iostream_openssl.la
132endif
133
134test_smtp_syntax_SOURCES = test-smtp-syntax.c
135test_smtp_syntax_LDADD = $(test_libs)
136test_smtp_syntax_DEPENDENCIES = $(test_deps)
137
138test_smtp_address_SOURCES = test-smtp-address.c
139test_smtp_address_LDFLAGS = -export-dynamic
140test_smtp_address_LDADD = $(test_libs)
141test_smtp_address_DEPENDENCIES = $(test_deps)
142
143test_smtp_params_SOURCES = test-smtp-params.c
144test_smtp_params_LDFLAGS = -export-dynamic
145test_smtp_params_LDADD = $(test_libs)
146test_smtp_params_DEPENDENCIES = $(test_deps)
147
148test_smtp_reply_SOURCES = test-smtp-reply.c
149test_smtp_reply_LDFLAGS = -export-dynamic
150test_smtp_reply_LDADD = $(test_libs)
151test_smtp_reply_DEPENDENCIES = $(test_deps)
152
153test_smtp_command_parser_SOURCES = test-smtp-command-parser.c
154test_smtp_command_parser_LDFLAGS = -export-dynamic
155test_smtp_command_parser_LDADD = $(test_libs)
156test_smtp_command_parser_DEPENDENCIES = $(test_deps)
157
158test_smtp_payload_SOURCES = test-smtp-payload.c
159test_smtp_payload_LDFLAGS = -export-dynamic
160test_smtp_payload_LDADD = $(test_libs) $(test_libs_ssl)
161test_smtp_payload_DEPENDENCIES = $(test_deps)
162
163test_smtp_submit_SOURCES = test-smtp-submit.c
164test_smtp_submit_LDFLAGS = -export-dynamic
165test_smtp_submit_LDADD = $(test_libs)
166test_smtp_submit_DEPENDENCIES = $(test_deps)
167
168test_smtp_client_errors_SOURCES = test-smtp-client-errors.c
169test_smtp_client_errors_LDFLAGS = -export-dynamic
170test_smtp_client_errors_LDADD = $(test_libs) $(test_libs_ssl)
171test_smtp_client_errors_DEPENDENCIES = $(test_deps)
172
173test_smtp_server_errors_SOURCES = test-smtp-server-errors.c
174test_smtp_server_errors_LDFLAGS = -export-dynamic
175test_smtp_server_errors_LDADD = $(test_libs)
176test_smtp_server_errors_DEPENDENCIES = $(test_deps)
177
178nodist_EXTRA_fuzz_smtp_server_SOURCES = force-cxx-linking.cxx
179fuzz_smtp_server_CPPFLAGS = $(FUZZER_CPPFLAGS)
180fuzz_smtp_server_LDFLAGS = $(FUZZER_LDFLAGS)
181fuzz_smtp_server_SOURCES = fuzz-smtp-server.c
182fuzz_smtp_server_LDADD = $(test_libs)
183fuzz_smtp_server_DEPENDENCIES = $(test_deps)
184
185check-local:
186	for bin in $(test_programs); do \
187	  if test "$$bin" = "test-smtp-submit"; then \
188	    if ! env NOCHILDREN=yes $(RUN_TEST) ./$$bin; then exit 1; fi; \
189          else \
190	    if ! $(RUN_TEST) ./$$bin; then exit 1; fi; \
191	  fi \
192	done
193