Makefile.am 9.81 KB
Newer Older
1 2
AUTOMAKE_OPTIONS = subdir-objects

3
SUBDIRS = . testutils tests
4

5
dhcp_data_dir = @localstatedir@/@PACKAGE@
6
kea_lfc_location = @prefix@/sbin/kea-lfc
7 8

AM_CPPFLAGS = -I$(top_builddir)/src/lib -I$(top_srcdir)/src/lib -DDHCP_DATA_DIR="\"$(dhcp_data_dir)\""
9
AM_CPPFLAGS += -DTOP_BUILDDIR="\"$(top_builddir)\""
10 11
# Set location of the kea-lfc binary.
AM_CPPFLAGS += -DKEA_LFC_EXECUTABLE="\"$(kea_lfc_location)\""
12 13 14 15
AM_CPPFLAGS += $(BOOST_INCLUDES)
if HAVE_MYSQL
AM_CPPFLAGS += $(MYSQL_CPPFLAGS)
endif
16 17 18
if HAVE_PGSQL
AM_CPPFLAGS += $(PGSQL_CPPFLAGS)
endif
19

20
AM_CXXFLAGS = $(KEA_CXXFLAGS)
21

22 23 24 25 26 27 28
# The files in the subfolder must be explicitly specified here so
# as they are copied to the distribution. The other option would
# be to specify a whole 'parsers' folder here but that would also
# copy all other files, e.g. gitignore, .git etc.
# Whenever new file is added to the parsers folder, it must be
# added here.
EXTRA_DIST =
29 30 31
EXTRA_DIST += parsers/client_class_def_parser.cc
EXTRA_DIST += parsers/client_class_def_parser.h
EXTRA_DIST += parsers/dhcp_config_parser.h
32 33 34 35
EXTRA_DIST += parsers/dbaccess_parser.cc
EXTRA_DIST += parsers/dbaccess_parser.h
EXTRA_DIST += parsers/dhcp_parsers.cc
EXTRA_DIST += parsers/dhcp_parsers.h
36 37
EXTRA_DIST += parsers/expiration_config_parser.cc
EXTRA_DIST += parsers/expiration_config_parser.h
38 39 40
EXTRA_DIST += parsers/host_reservation_parser.cc
EXTRA_DIST += parsers/host_reservation_parser.h
EXTRA_DIST += parsers/host_reservations_list_parser.h
41 42
EXTRA_DIST += parsers/ifaces_config_parser.cc
EXTRA_DIST += parsers/ifaces_config_parser.h
43

44
# Define rule to build logging source files from message file
45 46
alloc_engine_messages.h alloc_engine_messages.cc dhcpsrv_messages.h \
dhcpsrv_messages.cc hosts_messages.h hosts_messages.cc: s-messages
47

48
s-messages: alloc_engine_messages.mes dhcpsrv_messages.mes hosts_messages.mes
49
	$(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/dhcpsrv/alloc_engine_messages.mes
50
	touch $@
51
	$(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/dhcpsrv/dhcpsrv_messages.mes
52
	touch $@
53
	$(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/dhcpsrv/hosts_messages.mes
54
	touch $@
55

56 57 58 59 60 61 62 63 64
# Tell Automake that the {alloc_engine,dhcpsrv,hosts}_messages.{cc,h} source files
# are created in the build process, so it must create these before doing anything
# else. Although they are a dependency of the library (so will be created from the
# message file anyway), there is no guarantee as to exactly _when_ in the build
# they will be created.  As the .h file is included in other sources file (so
# must be present when they are compiled), the safest option is to create it
# first.
BUILT_SOURCES = alloc_engine_messages.h alloc_engine_messages.cc
BUILT_SOURCES += dhcpsrv_messages.h dhcpsrv_messages.cc
65
BUILT_SOURCES += hosts_messages.h hosts_messages.cc
66

67 68 69 70 71 72
# Some versions of GCC warn about some versions of Boost regarding
# missing initializer for members in its posix_time.
# https://svn.boost.org/trac/boost/ticket/3477
# But older GCC compilers don't have the flag.
AM_CXXFLAGS += $(WARNING_NO_MISSING_FIELD_INITIALIZERS_CFLAG)

73
# Make sure the generated files are deleted in a "clean" operation
74 75 76
CLEANFILES = *.gcno *.gcda
CLEANFILES += alloc_engine_messages.h alloc_engine_messages.cc
CLEANFILES += dhcpsrv_messages.h dhcpsrv_messages.cc
77
CLEANFILES += hosts_messages.h hosts_messages.cc s-messages
78 79
# Remove CSV files created by the CSVLeaseFile6 and CSVLeaseFile4 unit tests.
CLEANFILES += *.csv
80

81 82 83 84
lib_LTLIBRARIES = libkea-dhcpsrv.la
libkea_dhcpsrv_la_SOURCES  =
libkea_dhcpsrv_la_SOURCES += addr_utilities.cc addr_utilities.h
libkea_dhcpsrv_la_SOURCES += alloc_engine.cc alloc_engine.h
85
libkea_dhcpsrv_la_SOURCES += alloc_engine_log.cc alloc_engine_log.h
86
libkea_dhcpsrv_la_SOURCES += base_host_data_source.h
87
libkea_dhcpsrv_la_SOURCES += callout_handle_store.h
88
libkea_dhcpsrv_la_SOURCES += cfg_db_access.cc cfg_db_access.h
89
libkea_dhcpsrv_la_SOURCES += cfg_duid.cc cfg_duid.h
90
libkea_dhcpsrv_la_SOURCES += cfg_hosts.cc cfg_hosts.h
91
libkea_dhcpsrv_la_SOURCES += cfg_iface.cc cfg_iface.h
92
libkea_dhcpsrv_la_SOURCES += cfg_expiration.cc cfg_expiration.h
93
libkea_dhcpsrv_la_SOURCES += cfg_option.cc cfg_option.h
94
libkea_dhcpsrv_la_SOURCES += cfg_option_def.cc cfg_option_def.h
95
libkea_dhcpsrv_la_SOURCES += cfg_rsoo.cc cfg_rsoo.h
96
libkea_dhcpsrv_la_SOURCES += cfg_subnets4.cc cfg_subnets4.h
97
libkea_dhcpsrv_la_SOURCES += cfg_subnets6.cc cfg_subnets6.h
Tomek Mrugalski's avatar
Tomek Mrugalski committed
98
libkea_dhcpsrv_la_SOURCES += cfg_mac_source.cc cfg_mac_source.h
99
libkea_dhcpsrv_la_SOURCES += cfgmgr.cc cfgmgr.h
100
libkea_dhcpsrv_la_SOURCES += client_class_def.cc client_class_def.h
101 102 103 104
libkea_dhcpsrv_la_SOURCES += csv_lease_file4.cc csv_lease_file4.h
libkea_dhcpsrv_la_SOURCES += csv_lease_file6.cc csv_lease_file6.h
libkea_dhcpsrv_la_SOURCES += d2_client_cfg.cc d2_client_cfg.h
libkea_dhcpsrv_la_SOURCES += d2_client_mgr.cc d2_client_mgr.h
105
libkea_dhcpsrv_la_SOURCES += daemon.cc daemon.h
106
libkea_dhcpsrv_la_SOURCES += database_connection.cc database_connection.h
107
libkea_dhcpsrv_la_SOURCES += db_exceptions.h
108
libkea_dhcpsrv_la_SOURCES += dhcpsrv_log.cc dhcpsrv_log.h
109
libkea_dhcpsrv_la_SOURCES += host.cc host.h
110
libkea_dhcpsrv_la_SOURCES += host_container.h
111
libkea_dhcpsrv_la_SOURCES += host_data_source_factory.cc host_data_source_factory.h
112
libkea_dhcpsrv_la_SOURCES += host_mgr.cc host_mgr.h
113
libkea_dhcpsrv_la_SOURCES += hosts_log.cc hosts_log.h
114 115
libkea_dhcpsrv_la_SOURCES += key_from_key.h
libkea_dhcpsrv_la_SOURCES += lease.cc lease.h
116
libkea_dhcpsrv_la_SOURCES += lease_file_loader.h
Shawn Routhier's avatar
Shawn Routhier committed
117
libkea_dhcpsrv_la_SOURCES += lease_file_stats.h
118 119
libkea_dhcpsrv_la_SOURCES += lease_mgr.cc lease_mgr.h
libkea_dhcpsrv_la_SOURCES += lease_mgr_factory.cc lease_mgr_factory.h
120
libkea_dhcpsrv_la_SOURCES += logging.cc logging.h
121
libkea_dhcpsrv_la_SOURCES += logging_info.cc logging_info.h
122
libkea_dhcpsrv_la_SOURCES += memfile_lease_mgr.cc memfile_lease_mgr.h
123
libkea_dhcpsrv_la_SOURCES += memfile_lease_storage.h
124

125
if HAVE_MYSQL
126
libkea_dhcpsrv_la_SOURCES += mysql_lease_mgr.cc mysql_lease_mgr.h
127
libkea_dhcpsrv_la_SOURCES += mysql_connection.cc mysql_connection.h
128
libkea_dhcpsrv_la_SOURCES += mysql_host_data_source.cc mysql_host_data_source.h
129
endif
130 131 132

libkea_dhcpsrv_la_SOURCES += ncr_generator.cc ncr_generator.h

133
if HAVE_PGSQL
134
libkea_dhcpsrv_la_SOURCES += pgsql_lease_mgr.cc pgsql_lease_mgr.h
135
endif
136
libkea_dhcpsrv_la_SOURCES += pool.cc pool.h
137
libkea_dhcpsrv_la_SOURCES += srv_config.cc srv_config.h
138
libkea_dhcpsrv_la_SOURCES += subnet.cc subnet.h
139
libkea_dhcpsrv_la_SOURCES += subnet_id.h
140
libkea_dhcpsrv_la_SOURCES += subnet_selector.h
141
libkea_dhcpsrv_la_SOURCES += timer_mgr.cc timer_mgr.h
142 143
libkea_dhcpsrv_la_SOURCES += triplet.h
libkea_dhcpsrv_la_SOURCES += utils.h
144
libkea_dhcpsrv_la_SOURCES += writable_host_data_source.h
145

146
# Configuration parsers
147 148
libkea_dhcpsrv_la_SOURCES += parsers/client_class_def_parser.cc
libkea_dhcpsrv_la_SOURCES += parsers/client_class_def_parser.h
149 150 151 152 153
libkea_dhcpsrv_la_SOURCES += parsers/dhcp_config_parser.h
libkea_dhcpsrv_la_SOURCES += parsers/dbaccess_parser.cc
libkea_dhcpsrv_la_SOURCES += parsers/dbaccess_parser.h
libkea_dhcpsrv_la_SOURCES += parsers/dhcp_parsers.cc
libkea_dhcpsrv_la_SOURCES += parsers/dhcp_parsers.h
154 155
libkea_dhcpsrv_la_SOURCES += parsers/duid_config_parser.cc
libkea_dhcpsrv_la_SOURCES += parsers/duid_config_parser.h
156 157
libkea_dhcpsrv_la_SOURCES += parsers/expiration_config_parser.cc
libkea_dhcpsrv_la_SOURCES += parsers/expiration_config_parser.h
158 159
libkea_dhcpsrv_la_SOURCES += parsers/host_reservation_parser.cc
libkea_dhcpsrv_la_SOURCES += parsers/host_reservation_parser.h
160
libkea_dhcpsrv_la_SOURCES += parsers/host_reservations_list_parser.h
161 162
libkea_dhcpsrv_la_SOURCES += parsers/ifaces_config_parser.cc
libkea_dhcpsrv_la_SOURCES += parsers/ifaces_config_parser.h
163

164 165 166
nodist_libkea_dhcpsrv_la_SOURCES = alloc_engine__messages.h
nodist_libkea_dhcpsrv_la_SOURCES += alloc_engine_messages.cc
nodist_libkea_dhcpsrv_la_SOURCES += dhcpsrv_messages.h dhcpsrv_messages.cc
167
nodist_libkea_dhcpsrv_la_SOURCES += hosts_messages.h hosts_messages.cc
168 169

libkea_dhcpsrv_la_CXXFLAGS = $(AM_CXXFLAGS)
170
libkea_dhcpsrv_la_CPPFLAGS = $(AM_CPPFLAGS)
171 172
libkea_dhcpsrv_la_LIBADD  = $(top_builddir)/src/lib/eval/libkea-eval.la
libkea_dhcpsrv_la_LIBADD  += $(top_builddir)/src/lib/dhcp_ddns/libkea-dhcp_ddns.la
173
libkea_dhcpsrv_la_LIBADD  += $(top_builddir)/src/lib/stats/libkea-stats.la
174
libkea_dhcpsrv_la_LIBADD  += $(top_builddir)/src/lib/config/libkea-cfgclient.la
175
libkea_dhcpsrv_la_LIBADD  += $(top_builddir)/src/lib/dhcp/libkea-dhcp++.la
176 177 178 179
libkea_dhcpsrv_la_LIBADD  += $(top_builddir)/src/lib/asiolink/libkea-asiolink.la
libkea_dhcpsrv_la_LIBADD  += $(top_builddir)/src/lib/cc/libkea-cc.la
libkea_dhcpsrv_la_LIBADD  += $(top_builddir)/src/lib/dns/libkea-dns++.la
libkea_dhcpsrv_la_LIBADD  += $(top_builddir)/src/lib/cryptolink/libkea-cryptolink.la
180 181
libkea_dhcpsrv_la_LIBADD  += $(top_builddir)/src/lib/hooks/libkea-hooks.la
libkea_dhcpsrv_la_LIBADD  += $(top_builddir)/src/lib/log/libkea-log.la
182
libkea_dhcpsrv_la_LIBADD  += $(top_builddir)/src/lib/util/threads/libkea-threads.la
183
libkea_dhcpsrv_la_LIBADD  += $(top_builddir)/src/lib/util/libkea-util.la
184
libkea_dhcpsrv_la_LIBADD  += $(top_builddir)/src/lib/exceptions/libkea-exceptions.la
185
libkea_dhcpsrv_la_LIBADD  += $(LOG4CPLUS_LIBS) $(CRYPTO_LIBS)
186

187
libkea_dhcpsrv_la_LDFLAGS  = -no-undefined -version-info 4:0:0
188
libkea_dhcpsrv_la_LDFLAGS += $(CRYPTO_LDFLAGS)
189
if HAVE_MYSQL
190
libkea_dhcpsrv_la_LDFLAGS += $(MYSQL_LIBS)
191
endif
192
if HAVE_PGSQL
193
libkea_dhcpsrv_la_LDFLAGS += $(PGSQL_LIBS)
194
endif
195 196 197 198

if USE_CLANGPP
# Disable unused parameter warning caused by some of the
# Boost headers when compiling with clang.
199
libkea_dhcpsrv_la_CXXFLAGS += -Wno-unused-parameter
200 201
endif

202
# The message file should be in the distribution
203
EXTRA_DIST += alloc_engine_messages.mes
204
EXTRA_DIST += dhcpsrv_messages.mes
205
EXTRA_DIST += hosts_messages.mes
206

207 208 209
# Distribute backend documentation
# Database schema creation script moved to src/bin/admin
EXTRA_DIST += database_backends.dox libdhcpsrv.dox
210

211 212 213
# Specification file
EXTRA_DIST += logging.spec

214
install-data-local:
215
	$(mkinstalldirs) $(DESTDIR)$(dhcp_data_dir)
216 217