1include common.mk
2
3AM_CPPFLAGS += -I$(srcdir)/../gl/ -I$(builddir)/../gl/ \
4	-I$(srcdir)/ -I$(builddir)/../ -I$(srcdir)/../ \
5	$(LIBGNUTLS_CFLAGS) -I$(srcdir)/common -I$(builddir)/common \
6	$(LIBPROTOBUF_C_CFLAGS) $(LIBLZ4_CFLAGS) \
7	$(LIBREADLINE_CFLAGS) $(CODE_COVERAGE_CFLAGS) \
8	$(LIBTALLOC_CFLAGS) $(LIBDBUS_CFLAGS) $(LIBOATH_CFLAGS) \
9	$(LIBKRB5_CFLAGS) $(LIBTASN1_CFLAGS) $(RADCLI_CFLAGS) $(SRC_CFLAGS)
10
11if ENABLE_OIDC_AUTH
12AM_CPPFLAGS += $(LIBCURL_CFLAGS) $(CJOSE_CFLAGS) $(JANSSON_CFLAGS)
13endif
14
15BUILT_SOURCES = ipc.pb-c.c ipc.pb-c.h \
16	http-heads.h kkdcp_asn1_tab.c ctl.pb-c.c ctl.pb-c.h
17
18EXTRA_DIST = version.inc.in version.inc \
19	ipc.proto ctl.proto http-heads.gperf common.mk ocserv-fw
20
21CORE_LDADD = ../gl/libgnu.a libccan.a libcommon.a
22CORE_LDADD += $(LIBGNUTLS_LIBS) $(PAM_LIBS) $(LIBUTIL) \
23	$(LIBSECCOMP) $(LIBWRAP) $(LIBCRYPT) $(NEEDED_HTTP_PARSER_LIBS) \
24	$(NEEDED_LIBPROTOBUF_LIBS) $(LIBSYSTEMD) $(LIBTALLOC_LIBS) \
25	$(RADCLI_LIBS) $(LIBLZ4_LIBS) $(LIBKRB5_LIBS) \
26	$(LIBTASN1_LIBS) $(LIBOATH_LIBS) $(LIBNETTLE_LIBS) \
27	$(LIBEV_LIBS) libipc.a $(NEEDED_LIBPROTOBUF_LIBS) \
28	$(CODE_COVERAGE_LDFLAGS)
29
30if LOCAL_HTTP_PARSER
31HTTP_PARSER_SOURCES = http-parser/http_parser.c http-parser/http_parser.h
32endif
33
34CORE_SOURCES = $(HTTP_PARSER_SOURCES) \
35	common/hmac.c common/hmac.h common/snapshot.c common/snapshot.h \
36	common-config.h config.c config-kkdcp.c config-ports.c defs.h gettime.h \
37	icmp-ping.c icmp-ping.h inih/ini.c inih/ini.h ip-lease.c ip-lease.h \
38	ip-util.c ip-util.h isolate.h isolate.c log.c main.h main-ctl.h \
39	script-list.h setproctitle.c setproctitle.h str.c str.h subconfig.c \
40	sup-config/file.c sup-config/file.h sup-config/radius.c \
41	sup-config/radius.h tlslib.c tlslib.h tun.c tun.h valid-hostname.c \
42	vasprintf.c vasprintf.h vhost.h vpn.h namespace.h
43
44if ENABLE_COMPRESSION
45CORE_SOURCES += lzs.c lzs.h
46endif
47
48if HAVE_GSSAPI
49CORE_SOURCES += kkdcp_asn1_tab.c kkdcp.asn
50endif
51
52# Authentication module sources
53AUTH_SOURCES=auth/common.c auth/common.h auth/gssapi.c auth/gssapi.h \
54	auth/pam.c auth/pam.h auth/plain.c auth/plain.h auth/radius.c \
55	auth/radius.h auth-unix.c auth-unix.h
56
57ACCT_SOURCES=acct/radius.c acct/radius.h acct/pam.c acct/pam.h
58
59
60sbin_PROGRAMS = ocserv ocserv-worker
61bin_SCRIPTS = ocserv-fw
62
63ocserv_SOURCES = $(CORE_SOURCES) $(AUTH_SOURCES) $(ACCT_SOURCES) \
64	main.c main-auth.c main-ban.c main-ban.h main-ctl-unix.c main-proc.c \
65	main-sec-mod-cmd.c main-user.c main-worker-cmd.c proc-search.c \
66	proc-search.h route-add.c route-add.h sec-mod.c sec-mod.h sec-mod-acct.h \
67	sec-mod-auth.c sec-mod-auth.h sec-mod-cookies.c sec-mod-db.c \
68	sec-mod-resume.c sec-mod-resume.h sec-mod-sup-config.c sec-mod-sup-config.h \
69	common/sockdiag.h common/sockdiag.c namespace.c
70
71ocserv_LDADD = $(CORE_LDADD)
72
73ocserv_worker_CPPFLAGS = $(AM_CPPFLAGS) -DOCSERV_WORKER_PROCESS
74ocserv_worker_SOURCES = $(CORE_SOURCES) \
75	html.c html.h http-heads.h worker.c worker.h worker-auth.c \
76	worker-bandwidth.c worker-bandwidth.h worker-http.c worker-http-handlers.c \
77	worker-kkdcp.c worker-misc.c worker-privs.c worker-proxyproto.c \
78	worker-resume.c worker-vpn.c
79
80ocserv_worker_LDADD = $(CORE_LDADD)
81
82noinst_LIBRARIES = libipc.a
83
84if ENABLE_OIDC_AUTH
85AUTH_SOURCES += auth/openidconnect.c auth/openidconnect.h
86endif
87
88if ENABLE_LATENCY_SUPPORT
89ocserv_worker_SOURCES += worker-latency.c worker-latency.h
90endif
91
92
93if ENABLE_LATENCY_SUPPORT
94ocserv_worker_LDADD += $(LIBM)
95endif
96
97if ENABLE_OIDC_AUTH
98CORE_LDADD += $(LIBCURL_LIBS) $(CJOSE_LIBS) $(JANSSON_LIBS)
99endif
100
101libipc_a_SOURCES=ctl.pb-c.c ctl.pb-c.h ipc.pb-c.h ipc.pb-c.c
102
103ipc.pb-c.c: ipc.proto
104	protoc-c --c_out=. --proto_path=$(srcdir) $<
105
106ipc.pb-c.h: ipc.pb-c.c
107
108ctl.pb-c.c: ctl.proto
109	protoc-c --c_out=. --proto_path=$(srcdir) $<
110
111ctl.pb-c.h: ctl.pb-c.c
112
113http-heads.h: $(srcdir)/http-heads.gperf
114	-gperf --global-table -t $^ > $@-tmp && mv $@-tmp $@
115
116kkdcp_asn1_tab.c: $(srcdir)/kkdcp.asn
117	-asn1Parser $^ $@
118
119clean-local:
120	rm -f *.stamp
121
122# Occtl
123
124bin_PROGRAMS = occtl/occtl
125
126occtl_occtl_CPPFLAGS = $(AM_CPPFLAGS) -I$(srcdir)/occtl $(LIBNL3_CFLAGS) $(GEOIP_CFLAGS) $(MAXMIND_CFLAGS)
127occtl_occtl_SOURCES = occtl/occtl.c occtl/pager.c occtl/occtl.h occtl/time.c occtl/cache.c \
128	occtl/ip-cache.c occtl/nl.c occtl/ctl.h occtl/print.c occtl/json.c occtl/json.h \
129	occtl/hex.c occtl/hex.h occtl/unix.c occtl/geoip.h \
130	occtl/session-cache.c
131
132if HAVE_MAXMIND
133occtl_occtl_SOURCES += occtl/maxmind.c
134else
135occtl_occtl_SOURCES += occtl/geoip.c
136endif
137
138occtl_occtl_LDADD = ../gl/libgnu.a libcommon.a $(LIBREADLINE_LIBS) \
139	$(LIBNL3_LIBS) $(NEEDED_LIBPROTOBUF_LIBS) $(LIBTALLOC_LIBS) libccan.a \
140	libipc.a $(NEEDED_LIBPROTOBUF_LIBS) $(CODE_COVERAGE_LDFLAGS) \
141	$(LIBNETTLE_LIBS) $(MAXMIND_LIBS) $(GEOIP_LIBS)
142
143# Ocpasswd
144
145bin_PROGRAMS += ocpasswd/ocpasswd
146
147ocpasswd_ocpasswd_CPPFLAGS = $(AM_CPPFLAGS) -I$(srcdir)/ocpasswd
148ocpasswd_ocpasswd_SOURCES = ocpasswd/ocpasswd.c
149ocpasswd_ocpasswd_LDADD = ../gl/libgnu.a
150ocpasswd_ocpasswd_LDADD += $(LIBGNUTLS_LIBS) $(LIBCRYPT) $(CODE_COVERAGE_LDFLAGS) \
151	$(LIBNETTLE_LIBS)
152
153
154# libcommon
155# Files common to ocserv and occtl.
156libcommon_a_CPPFLAGS = $(AM_CPPFLAGS) -I$(srcdir)/common
157libcommon_a_SOURCES=common/common.c common/common.h common/system.c common/system.h \
158	common/cloexec.c common/cloexec.h common/base64-helper.c common/base64-helper.h
159libcommon_a_LIBS = ../gl/libgnu.a $(NEEDED_LIBPROTOBUF_LIBS)
160noinst_LIBRARIES += libcommon.a
161
162
163# libccan
164EXTRA_DIST += ccan/licenses/BSD-MIT ccan/licenses/CC0 ccan/licenses/LGPL-2.1
165
166noinst_LIBRARIES += libccan.a
167libccan_a_CPPFLAGS = $(AM_CPPFLAGS) -I$(srcdir)/ccan
168libccan_a_SOURCES = ccan/build_assert/build_assert.h ccan/check_type/check_type.h \
169	ccan/container_of/container_of.h ccan/hash/hash.c ccan/hash/hash.h \
170	ccan/htable/htable.c ccan/htable/htable.h ccan/htable/htable_type.h \
171	ccan/list/list.c ccan/list/list.h
172
173if LOCAL_TALLOC
174libccan_a_SOURCES += ccan/talloc/talloc.c ccan/talloc/talloc.h ccan/compiler/compiler.h \
175	ccan/typesafe_cb/typesafe_cb.h
176endif
177
178# libpcl
179if PCL
180CORE_LDADD += $(PCL_LIBS)
181else
182CORE_LDADD += libpcl.a
183AM_CPPFLAGS += -I$(srcdir)/pcl/
184
185noinst_LIBRARIES += libpcl.a
186
187libpcl_a_CPPFLAGS = -I$(srcdir)/pcl -I$(builddir)/../
188libpcl_a_SOURCES = pcl/pcl.c pcl/pcl_version.c pcl/pcl_private.c \
189	pcl/pcl_config.h pcl/pcl.h pcl/pcl_private.h
190
191endif
192
193
194if LOCAL_PROTOBUF_C
195noinst_LIBRARIES += libprotobuf.a
196
197libprotobuf_a_CPPFLAGS = $(AM_CPPFLAGS) -I$(srcdir)/protobuf/
198libprotobuf_a_SOURCES = protobuf/protobuf-c/protobuf-c.c  protobuf/protobuf-c/protobuf-c.h
199
200AM_CPPFLAGS += -I$(srcdir)/protobuf/
201endif
202