diff --git a/.gitignore b/.gitignore index 4594d7c40c46ea792b221e71c5f60c760a3525a0..ea1f60bd515f49f5d878a15b8dc427a44bc4bace 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ *.la *.lo *.o +*~ .deps/ .libs/ __pycache__/ @@ -43,3 +44,5 @@ config.h.in~ /local.zone.sqlite3 /logger_lockfile /report.info + +/ext/gtest/ diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/AUTHORS b/AUTHORS index f8fe3e53543c588fab227058c52a1f24982c3df3..d38073e35c9750188f6706b0249ce5b1b66a679e 100644 --- a/AUTHORS +++ b/AUTHORS @@ -5,14 +5,16 @@ Primary developers: - Tomek Mrugalski (lead developer: DHCPv4, DHCPv6 components, prefix delegation, memfile, database interface, core libdhcp++, - host reservation, MAC extraction in DHCPv6, statistics manager) + host reservation, MAC extraction in DHCPv6, statistics manager, + kea-shell) - Stephen Morris (Hooks, MySQL) - Marcin Siodelski (DHCPv4, DHCPv6 components, options handling, perfdhcp, - host reservation, lease file cleanup, lease expiration) + host reservation, lease file cleanup, lease expiration, + control agent) - Thomas Markwalder (DDNS, user_chk) - Jeremy C. Reed (documentation, build system, testing, release engineering) - Wlodek Wencel (testing, release engineering) - - Francis Dupont (crypto, perfdhcp) + - Francis Dupont (crypto, perfdhcp, control agent) - Shawn Routhier (lease file cleanup) Primary area of work mentioned in parentheses. The list is in a roughly @@ -123,10 +125,29 @@ We have received the following contributions: - Andrei Pavel, Qualitance 2016-10: Support for DHCPv6 options defined in RFC6603 and RFC7598 + 2017-02: Doxygen support updated to 1.8.11 + 2017-02: Improved PgSQL backend version handling + 2017-02: Numerous spelling mistakes - Vincent Legout 2016-11: Fixed serveral spelling mistakes + - Sebasian Schrader + 2017-01: Fix build dir in doc/guide/Makefile.am + + - Marvin Frick (MrMarvin) + 2017-04: -h and --host parameters added to kea-admin + + - Olivier Clavel (zeitounator) + 2017-04: Improvements in valgrind test script + + - Josh Soref (jsoref) + 2017-07: Many spelling corrections. + + - Walt Steverson (waltsteverson) + 2017-07: Compilation fixed for Alpine Linux + 2017-07: option6_pdexclude.h now installed properly + Kea uses log4cplus (http://sourceforge.net/projects/log4cplus/) for logging, Boost (http://www.boost.org/) library for almost everything, and can use Botan (http://botan.randombit.net/) or OpenSSL (https://www.openssl.org/) for @@ -134,6 +155,6 @@ cryptographic operations. It can also optionally use PostgreSQL (http://www.postgresql.org/) and/or MySQL (http://www.mysql.com/) and/or Cassandra (http://cassandra.apache.org/) as a database. -Kea can use googletest for unit-tests (http://code.google.com/p/googletest/). +Kea can use googletest for unit-tests (https://github.com/google/googletest). -Kea uses ISC Forge (http://kea.isc.org/wiki/IscForge) for conformance testing. +Kea uses ISC Forge (https://github.com/isc-projects/forge/) for conformance testing. diff --git a/COPYING b/COPYING index 5de9183450c5d83061c71ff938925ceb6cce3557..30cebd0b782d383f702c05168e6e14553ca90957 100644 --- a/COPYING +++ b/COPYING @@ -1,4 +1,4 @@ -Copyright (C) 2009-2016 Internet Systems Consortium, Inc. ("ISC") +Copyright (C) 2009-2017 Internet Systems Consortium, Inc. ("ISC") This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/ChangeLog b/ChangeLog index 7b4a6198d4631e972f4218760a0fe0bea879b703..69588b7fa0d08a6e96f46d4421c538dc46735f4a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,532 @@ +1288. [func] marcin + Documented subnet_cmds library in the Kea User's Guide. Also moved + several classes from dhcp<4/6> into lib/dhcpsrv to facilitate subnet + command parsing. + (Trac #5315, git d259f330a1690b20eb368f6252f5da2cdb6187de) + +1287. [bug] tmark + Logger configuration now correctly uses maxsize and maxver parameters, + allowing log rotation to function properly. Prior to this these values + were not being propagatedc downard, causing log rotation to always be + disabled. The defaults for maxsize and maxver are 10Mb and 1 respectively. + (Trac #5324, git 75f148458bdeeed27eb877cc2c3ce3069b152f38) + +1286. [func] marcin + Configured subnets are now indexed by subnet identifier and + prefix for faster subnet lookups in the configuration. + (Trac #5314, git 894aeb048b7281f947f87a5d6dc5112fac4a86fb) + +1285. [func] tomek + Several new commands implemented in lease_cmds library: + lease4-del, lease6-del, lease4-update, lease6-update, + lease4-wipe and lease6-wipe that allow deleting and updating + leases and also wipe all leases from a specific subnet. + (Trac #5280, #5281, 94ff2448c8cf6e3321f4d1b3666a2e2b736f6c50) + +1284. [func] tomek + A new library, lease_cmds, has been implemented. Its intended + purpose is to support commands for lease management. Currently + supported commands are: lease4-add, lease6-add, lease4-get, + lease6-get. Additional commands and documentation are planned. + (Trac #5272, #5279, git 785c2e521b198a03d26bde4a804638bfc19ce91b) + +1283. [func] fdupont + An 'always-send' parameter has been added to options + configuration. It allows an option to be always sent, even if + a client didn't request it. + (Trac #5241, git cef2b630c720a442710efc0d1615b7c7bce01e54) + +1282. [bug] fdupont + Now all interface service sockets are closed before interface + re-detection. Note if the re-configuration fails they remain + closed. + (Trac #5333, git xxx) + +1281. [build] tmark + Configure script now correctly recognizes static boost_system library as + well as checks for the presence of static glibc static libraries when + --enable-satic-link is specified. + (Trac #5337, git 42548148cbeaaa285519e121f493d52607f1e8a0) + +1280. [build] waltsteverson + Missing header for PD-exclude DHCPv6 option is now installed. + (Github #51, git 36a8e1b8f687a6398af8a10f241e8d19e9de33d8) + +1279. [build] waltsteverson + Compilation fixes for Alpine Linux + (Github #50, git 824afa63354e045a5e4f6437246c329d359e04dd) + +1278. [doc] jsoref + Many spelling corrections. + (Github #52, git 1dcaef6f8e7901d628c8638fc2f8145ac0279586) + +1277. [func]* marcin + Added support to Command Manager to process commands using + callouts implemented within hooks libraries. + (Trac #5330, git 8041d177ed5587101ecb47a09820a7e67e42a066) + +1276. [build] tmark + The configure script now configures the build to require the Boost + system library (boost_system) by default. The library must be + installed and you may need to specify "--with-boost-lib-dir=". + Prior to this the default was to attempt to build Boost with headers + only. Building with headers only may still be done, though it is + strongly discouraged, by specifying "--enable-boost-headers-only". + (Trac #5215, git b6f1ee0d1210e35631369fc697c76cc3cf2c4130) + +1275. [func] marcin + LibraryHandle object can now be used to register handlers + for the control commands in a hook library. + (Trac #5329, git 966cc24ae5593ebb08d6f02a11dab23463ebad7e) + +1274. [func] marcin + It is now possible to manage Control Agent with keactrl. + (Trac #5108, git 53ba9f8197a25abd2c52ee3f5e95bc4e4be0241f) + +1273. [doc] marcin + Documented in the User's Guide that the server terminates + when database connection is lost. + (Trac #5320, git 5c8b277e8041b53b27a87b32d162ab41ef8b43d7) + +1272. [bug] marcin + Fixed inefficient leases indexing in the memfile lease + manager causing increased CPU utilization during lease + searches. + (Trac #5328, git 23b490414f5575b252c8c42fbe93ad2c57d47953) + +1271. [doc] marcin + Documented how to setup secure connection to the Kea + control channel. + (Trac #5304, git a920453bbcf9ffa7200eeddca6323faeff498f16) + +1270. [bug] tmark + Added a distribution rule to src/bin/d2/Makefile.am so + d2_parser.yy will now be included in the distribution source + tree. Also added entries for missing headers to asiolink/ + Makefile.am. + (Trac #5325, git 199003d7aa9f8d4a7f8daa73f8259e951bc03217) + +1269. [func] marcin + Command manager can now handle large responses to control + commands. Prior to this change the size of the response + was limited to 64k. The server now also signals timeout + after 10s if the connection lasts too long. + (Trac #5318, git 8531a65521ea42f01f3bed444b054e92f7bd1a46) + +1268. [func] fdupont + Kea now re-detects network interfaces every time configuration is + changed. 're-detect' parameter added to restore old behavior, if + needed. + (Trac #3389, git b2ce84790c33d1580dcfa773d7fcfb65c27addc7) + +1267. [bug] fdupont + Unit-tests for libdhcp now ignore ENOPROTOPT when setting + SO_REUSEPORT to improve compatibility with older RedHat versions. + (Trac #5243, git a7b478e1d1f7f0b38055086fe9ac053e4fab2850) + +1266. [func] fdupont + It is now possible to define options in DHCPv4 pools. + (Trac #5288, git aa2839caab8d885e5bceca6f506162debd239b3f) + +1265. [func] fdupont + Extended classification relay6[nest] syntax to allows counting + relays from the DHCPv6 client side by using negative number, + e.g. relay6[-1] represents the first relay (closest to the + client). + (Trac #5287, git 7d0f7a8372dcf256fea8ac13330f0e3e7ed2e8ef) + +1264. [func] marcin + Kea's command manager has been re-implemented to use ASIO. + Simultaneous connections over the control channel are now + possible. + (Trac #5317, git 4139a2f41bb3736615bdfa278746962a16384d0d) + +1263. [doc] marcin + Added example configurations of the nginx and Apache2 HTTPS + servers running as reverse proxy for Kea RESTful API. + (Trac #5302, git 48113aba218603afac4d457075458d4988e4082b) + (Trac #5303, git b3113da16eb5c6fa323068f0a57dfa30f42893d2) + +1262. [func]* marcin + Renamed "dhcp4-server", "dhcp6-server" and "d2-server" parameters + of the Control Agent configuration to "dhcp4", "dhcp6" and "d2" + respectively. + (Trac #5190, git fc67885022115df76425c6901959cedee63a93b9) + +1261. [bug] marcin + Eliminated valgrind errors in libkea-http. + (Trac #5261, git 34addef4a654665c6022f0269d51970c72431ac2) + +1260. [bug] fdupont + Corrected logic in prefix delegation that was causing multiple + entries to be written to the lease file when renewing or rebinding + a prefix. + (Trac #5104, git b9ab6ebe7a491c062bc8b0b42afc53f4d6cee011) + +1259. [func] marcin + Implemented timeout for the control commands forwarded between + the Control Agent and Kea servers. The enhanced forwarding + mechanism uses asynchronous calls over the unix domain sockets. + It also detects the JSON structure boundaries when receiving it + over the stream sockets. + (Trac #5189, git e48d9399c215406f2dab1601d22d6c932b4af271) + +1258. [bug] fdupont + Fixed wrong python package path when kea-shell was configured + without a prefix. + (Trac #5214, git 44908c5fa56bfa7e1113078f43c458687a97388a) + +Kea 1.2.0 released on April 28, 2017 + +1257. [bug] marcin + Improved logging in the hosts manager. + (Trac #5264, git 2fb9fd78e63f5d09810702847ad3e3b3020ea92b) + +1256. [bug] tomek + Control Agent now writes proper configuration when using + config-write command. + (Trac #5253, git a1b5da4db6ebfa9635bbe411ec363cdcc4fd1d28) + +1255. [bug] marcin + Fixed failing unit tests in libkea-http. + (Trac #5260, git 43394f76efb1634155c04b205dec7361fc21f4f9) + +1254. [func] tomek + Various improvements needed for upcoming host commands library: + host data source is now able to delete hosts, hosts can be exported + to JSON format, C++11 code for configure script moved to separate + file, several compilation warnings removed. + (Trac #5208, git 88555d8f23745f3d615448e906796920cc7f44d0) + +1253. [func,doc] tomek + Default configuration file has been overhauled significantly. It + now covers many additional options and features. Command channel + is now enabled by default. Thanks to Dan Mahoney for his review. + (Trac #5198, git 280de81cfe957ccab8a28074bdb0a4bc0e45104e) + +1252. [bug] tmark + kea-dhcp6 now correctly resets lease state and increments the + assigned statistic when it reissues an expired-reclaimed lease + to the lease's original client, in response to a REQUEST from + said client. + (Trac #5252, git 85bde7adbe6a78238bd5e17fecabfa918755f16c) + +1251. [func] tomek + New type of host identifier (flex-id) used in reservations has + by added to MySQL and PostgreSQL schemas. + (Trac #5195, git 37c26cc30b717019fbd6b7349279541edb351382) + +1250. [bug] fdupont + Do not unregister timers when running the config-test command. + (Trac #5186, git e891b06940e41b4cfaa324c2ace8fdd761ee6662) + +1249. [bug] tmark + The assigned lease statistics were not being probably adjusted + by either kea-dhcp4 or kea-dhcp6 when reclaimed expired leases + were reissued. + (Trac #5247, git 4e5193fb32b14325ccf5824614e58bcceb3e6388) + +1248. [bug] marcin + Improved socket connection handling code, corrected numerous + failing and crashing tests for libkea-asiolink, libkea-http + and kea-ctrl-agent on Debian, Fedora and Ubuntu. + (Trac #5217, git 4bcb45f0c88aba3d0f70ca48d9fff6f1d4616bc2) + +1247. [bug] marcin + Resolved issues with DHCPv4 host reservations by 'client-id' + when MySQL or PostgreSQL host database backend is in use. + Also, the 'client-id' is used together with other host + identifier types when 'host-reservation-identifiers' parameter + is not specified. + (Trac #5102, git 390d687d0f61635f5562d13860ff6362eee67853) + +1246. [func,bug] tomek + Restrictions in filename argument in config-write command have + been removed. It is now possible to use absolute paths. + DHCPv4, DHCPv6, D2 and Agent parsers did not handle flush, + maxsize or maxver parameters in logger configuration correctly. + This is now fixed. + (Trac #5187, git a30ffcc67cfb7370c586d3c85147792e27aab4c7) + +1245. [func] fdupont + DHCPv4 domain-search option can now be defined using + comma separated values. + (Trac #5087, git eca0b8c6425bc922587675100f100b1aae54aee2) + +1244. [doc] tomek + User's Guide section about Kea shell added. + (Trac #5171, git 3dc4908fe02e86c57ccd5ad2d2f8330655f438be) + +1243. [func] tomek + config-reload command implemented. It allows Kea DHCPv4 and DHCPv6 + servers to reload its original configuration file. Also, + set-config command was renamed to config-set. + (Trac #5213, git b209c2b577a2f9da71cc918d7a551f8efdc1c4cb) + +1242. [func] fdupont + Integer fields in options can now be specified in either + decimal or hexadecimal format. + (Trac #4540, git 4cbf341f4169cf1e1eae0721644797a726d89702) + +1241. [func] fdupont + Support for tuple-based options added. DHCPv6 option + bootfile-param (code 60) can now be set in a more convenient + manner. + (Trac #4070, git 30102cacee95b91e6c4666f0c11f06232f19eeb9) + +1240. [bug] marcin + Corrected IOFetch unit test failures on Debian. + (Trac #5216, git a7c2946678c43aedfb2e3c37b9730a10067528f3) + +1239. [func] marcin + Implemented additional sanity checks when adding host + reservations into the configuration file. + (Trac #5207, git ea42c6f479918235ae4a67a60d08720e2664720c) + +Kea 1.2.0-beta released on April 7, 2017 + +1238. [build] tmark,tomek + Library version numbers bumped for release. + (Trac #5201 git 58c9c5b705d72031c1589c30c542384a9d43e0f3) + +1237. [bug] marcin + Fixed hanging Control Agent unit tests. + (Trac #5200, git 65daafd135965f9eb0bd4c3a22085d4bd3c6ffbe) + +1236. [build] zeitounator + Improvements in tools/tests_in_valgrind.sh script. + (Github #49, git 272e7babf9ebeab5f78850394d72c9431041e2e9) + +1235. [func] MrMarvin + kea-admin now supports -h (and --host) parameter that can specify + MySQL or PostgreSQL database locations other than the default + localhost. + (Github #14, git 4038157a3499ad90956c98a2172c57b173f2b985) + +1234. [build] fdupont + Improved installation procedure for kea-shell. + (Trac #5170, git 68a902fb723965ee6f5b7a8272224395917525cc) + +1233. [doc] marcin + Documented new component Kea Control Agent in the Administrator's + Manual and the Developer's Guide. + (Trac #5175, git abf7887ad65eb4b221a1fe61ea0c9773b4feaddb) + +1232. [func] tomek + host4_identifier and host6_identifier hook points have been added. + Premium: Flexible Identifier (flex-id) hook point has been developed. + It allows users to specify a custom expression that takes any + option, field, characteristic or property of the packet to be + used as identifier and then do reservations based on the evaluated + expression for each incoming packet. + (Trac #5132, git cd497526d5bff7ae55bb41c9264fb33943a0cf62) + +1231. [func] marcin + Control agent forwards commands to be handled by other Kea + servers. + (Trac #5078, git 19a50ed1ccafae19ef10d84cba73992cadf49753) + +1230. [bug] fdupont + kea-dhcp-ddns now correctly populates the original ID in the TSIG rdata + when doing signed updates. Prior to this the value was set to zero + causing PowerDNS to reject then requests with a bad key error. + (Trac #5071, git cafa3d5c24f0112b0b9384a9c1083fe8a3eeb2bf) + +1229. [func] fdupont + A new command: config-test has been implemented in DHCPv4, DHCPv6 + and control agent servers. It allows checking whether new + configuration looks correct. + (Trac #5150, git 5f6cf226e848baef8d9af64e16c1dbf617a0a798) + +1228. [bug] fdupont + Logging on syslog now uses correctly the given facility. If none + is given the default facility is local0, and with an unrecognized + value user (log4cplus default). The syslog openlog() ident + parameter is the program name. + (Trac #5053, git 532d9f0e459ab1450a83a5015a2dd54745794383) + +1227. [func] fdupont, tomek + Additional commands: version-get, build-report have been + implemented for DHCPv4, DHCPv6 and Control Agent + components. Control Agent also now supports shutdown command. + (Trac #102, git 9d2b8326fc032876d74c1768c61c630987c25cc5) + +1226. [func] fdupont + Command line option -t support added to libprocess and implemented + for kea-dhcp-ddns and kea-ctrl-agent. It allows configuration sanity + checking. Note that some parameters, such as ip-address, port, and + DNS server addresses for instance for kea-dhcp-ddns are not fully + checked as sockets are not opened or connections are not attempted. + (Trac #5152, git 2231d79ebebd3cdf432cd4a8ac32018d180e27b6) + +1225. [func] tomek + Two new commands: config-get (retrieves current configuration) + and config-write (writes current configuration to disk) have been + implemented. + (Trac #5151, git ffb26811736a2ae6f9b5556b9823aa284b7e0aec) + +1224. [func] fdupont + toElement(), a crucial functionality for upcoming get-config + and write-config command, has been implemented. + (Trac #5114, git df38c26f957c9ac329718ac9d70ffbcf7b95c4e9) + +1223. [func] tomek + Kea-shell, a management client able to connect to REST interface + provided by Control Agent, has been added. Control Agent now + uses bison parser, which provides better sanity checks, improved + comments and file inclusions. + (Trac #5137, git 816dc5ccfa374bd9942a49c7bac475f6d0523caa) + +1222. [func] fdupont + Obsolete parameter 'allow-client-update' has been removed + from DHCPv4 and DHCPv6 components. + (Trac #5145, git 01fde297a978e2bd832655ac7276e5aa3a7e8400) + +1221. [func] tomek + Control agent is now able to parse the input configuration and + store it in its configuration syntax structure. Upcoming tickets + will take advantage of that information. + (Trac #5134, git 828304f2f408888e4b096418e90e35ba524979d0) + +1220. [func] parisioa, fdupont, tomek + DHCPv4 and DHCPv6 parsers have updated to accept database port + parameter. The parameter for Cassandra is now called + "contact-points" (was "contact_points" previously). + (Trac #5061, git d12b6f4a6d80d6bc854f2a8a086e412dc37867bc) + +1219. [func] marcin + Control Agent uses libkea-http to process commands over + the RESTful interface. + (Trac #5107, git 88ce715926a46b6b3832630116fc7782adc46c7b) + +1218. [func] tmark, tomek + Configuration parsing for D2 has been migrated to bison/flex + and the SimpleParser framework. This includes changes to + libprocess which render the CPL agnostic to the underlying + parsing mechanisms. + (Trac #5110, git feb2cedc0936364a923ab78542a21114533dd0f5) + +1217. [func] marcin + Implemented libkea-http library. + (Trac #5077, git cd72284b5b221e620770883db7e166c4d3ba7eb6) + (Trac #5088, git 715d18f961801ffbd798a65b19459178c3a53857) + (Trac #5099, git 7e8df7993f295431e2cb6a13858f746649c4e18d) + +1216. [func] fdupont, tomek + Command line option -t implemented for DHCPv4 and DHCPv6. It + allows configuration sanity checking. Note that not all parameters + are completely checked. In particular, service and control channel + sockets are not opened, and hook libraries are not loaded. + (Trac #3770, git 1d12582e270935ee7b72548d9c66753f4eea4ca4) + +1215. [doc] tomek + Developer's Guide updated to cover flex/bison parser. + (Trac #5112, git 44139d821c1f4e43dbff22d49101a0854e4f9f5b) + +1214. [func] tomek + Bison parser implemented for Control-agent. The code is able + to syntactically parse input configuration, but the output + is not used yet. + (Trac #5076, git d99048aa5b90efa7812a75cdae98a0913470f5a6) + +1213. [bug] fdupont + Option string values containing comma can now be specified + correctly by preceding comma with double backslashes (e.g. + "foo\\,bar"). + (Trac #5105, git fa79ac2396aa94d7bac91bd12d3593ebaaa9386d) + +1212. [doc] andreipavelQ + Many spelling corrections. + (Github #47, git a6a7ca1ced8c63c1e11ef4c572f09272340afdd7) + +1211. [func] andreipavelQ + Updated PostgreSQL version reporting to be in line with + MySQL and Cassandra. + (Github #42, git 7ef4a190facadd66775b4a44c696d1c4215616cd) + +1210. [doc] andreipavelQ + Doxygen version updated to 1.8.11. + (Github #45, git ce72998382b62269823fa0dcbfa41dfa9c72b69e) + +1209. [func] tomek + Relay options are now printed in DHCPv6 when sufficiently detailed + debug logging is requested. + (Trac #5131, git 5bf58b21fcf07f2e2e97275efa1f76cde913b30a) + +1208. [func] tomek + Global DHCPv4 and DHCPv6 parsers have been migrated to the + SimpleParser framework. Several parameters (renew-timer, + rebind-timer, preferred-lifetime, valid-lifetime, match-client-id, + next-server, decline-probation-period, dhcp4o6-port, + echo-client-id) now have explicit default values. + (Trac #5019, git f3538dd031e6f29abcd516f425d72c8f929abbb0) + +1207. [func] fdupont + Client classes parser migrated to SimpleParser. The 'name' + parameter in 'client-classes' definitions is now mandatory. + (Trac #5098, git e93906e48a6e2b0ff78c5e37dca642646fe47d43) + +1206. [func] tomek + 'hooks-libraries' parser migrated to SimpleParser. The code will + now refuse a configuration if a hook library fails to load. + (Trac #5031, #5041, git 1bbaf4cbcf6fda59bacdf526a6c762315fdd88a1) + +1205. [func] tomek + Parsers for interfaces configuration converted to SimpleParser. + Removed obsolete 'version' parameter in Dhcp6. + (Trac #5020, #5038, git 3d8e48c640e302670c04907468d11faafbe9fe7b) + +1204. [func] marcin + Added 'control_command_receive' hook point to Kea Command + Manager. + (Trac #5100, git d0c7cb29a7df3588c540afb4ca56de55f26142e0) + +1203. [func] marcin + Implemented TCPAcceptor class in libkea-asiolink. This class + provides means to listen and asynchronously accept new TCP + connections. + (Trac #5094, git 920ba90696ba9d8579a7db5e1efcf955d6654a96) + +1202. [func] tomek + Parsers for mac-sources, control-socket, and relay-info converted + to SimpleParser. It is no longer accepted to specify empty + mac-sources. Either specify actual values in mac-sources or + don't specify mac-sources at all. + (Trac #5032, git f1c9dee0936b48be28f890ffd428fbdeb87c12ea) + +1201. [func] tmark + kea-dhcp4 and kea-dhcp6 now support the "set-config" command. + The command causes the server to replace its current configuration + with the configuration supplied as the command's argument. + (Trac #5046, git 4afbdcf89c9f83d944f774d05bd401d3f2768d10) + +1200. [func] tmark + kea-dhcp4 and kea-dhcp6 now support the Command Channel "libreload" + command. The command causes the server to unload and then load all + currently loaded hook libraries. + (Trac #3238, git d4d8665494e1847b34b66f8ef542851ea6f0213c) + +1199. [func] tomek, fdupont + Dhcp4 parser migrated to bison. This yields a number of user + visible changes: + - better comment handling (bash, C, C++ style comments) + - file includes now supported + - better syntax checking + - added advanced.json config example + - removed obsolete 'version' parameter + (Trac #5017, git 1cf853c595a100c86f9b2b3353f1b5964d902147) + +1198. [func] marcin + Created kea-ctrl-agent. This application currently doesn't + do anything. Future tickets will add REST API to allow for + managing Kea services. + (Trac #5075, git 1ec7586da5ae1474b52d5a395fb80ee37d6d568e) + +1197. [doc] tomek + Configuration examples now set lfc-interval to a default + value of one hour. + (Trac #5072, git cf4362196fa2b7892643d1e40b974bb450a3de7e) + 1196. [func] tomek, fdupont Dhcp6 parser migrated to bison. This yields a number of user visible changes: @@ -85,6 +614,8 @@ on address and prefix pool levels. (Trac #5022, git e3b2785c79aedbb0c8af7468d61f6d61dafd2282) +Kea 1.1.0 released on September 30, 2016 + 1180. [doc] stephen Editing pass through the Kea guide. (Trac #4484, git 63456fab1b978bd515198b9b9e604f293efd8217) @@ -116,7 +647,7 @@ (Trac #5009, git d3109bb27786867fdc99954ba55367f0ad129e7a) 1174. [bug] tmark - Modifed kea-dhcp6 to avoid requesting DNS updates when + Modified kea-dhcp6 to avoid requesting DNS updates when existing leases are renewed without changes to the FQDN. (Trac #5007, git 05ea3a5eb75c06cf9814c63a1a54261bf58a954b) @@ -645,7 +1176,7 @@ Kea 1.0.0 released on December 29, 2015 1079. [bug] jpopelka Fixed compilation issue in MySQL host data source: the - dhcp_identifer_length is now unsigned long. This addresses + dhcp_identifier_length is now unsigned long. This addresses a compilation problem on Fedora. (Github #17, git 8548d1b589df98cc956b4d80d2cb8819ef576717) @@ -696,7 +1227,7 @@ Kea 1.0.0 released on December 29, 2015 1071. [func] tmark Assigned unique log message IDs to log messages issued from - MySQL hosts storage operations, eliminating resuse of + MySQL hosts storage operations, eliminating reuse of lease database message IDs. (Trac #4216, git f0e37cd6d45537971a730c68187011dce41217cc) @@ -1396,7 +1927,7 @@ Kea 0.9.2-beta released on June 30, 2015 (Trac #3070, git a6b6156aaa95ab74c69a537e90483f82e9fbe4a2) 946. [doc] tmark - Added doucmentation for kea-admin "lease-dump" command to the + Added documentation for kea-admin "lease-dump" command to the Kea Admininstrator's Guide and kea-admin man page. (Trac #3803, git 54b59b7ef02f6428405794066ea779e9bd4c0b6e) @@ -2103,7 +2634,7 @@ Kea 0.9 released on August 29, 2014 (Trac #3524, git 822a39ba33870f70787a1f666aed772e06d04d79) 824. [bug] marcin - Kea deamons report configuration summary when the configuration is + Kea daemons report configuration summary when the configuration is applied successfully. (Trac #3477, git f39d208024f720f72c931016cfa50a54e80f8c61) @@ -2333,7 +2864,7 @@ Kea 0.9beta1 released on August 13, 2014 as a result of receiving hints from the clients. Previously the whole prefix (including bits beyond the prefix length) was used to search existing leases in the lease database. If not found, the - new lease was crated for the prefix sent by the client. If another + new lease was created for the prefix sent by the client. If another client sent the same prefix but with different non-significant bits the prefix was allocated. This led to prefix collisions. Currently, server ignores bits beyond the prefix length when searching for @@ -3200,7 +3731,7 @@ bind10-1.2.0beta1 released on March 6, 2014 653. [func] tmark Added initial implementation of D2QueueMgr to b10-dhcp-ddns. This class manages the receipt and - queueing of requests received by b10-dhcp-ddns from + queuing of requests received by b10-dhcp-ddns from its clients (e.g. DHCP servers) (Trac# 3052, git a970f6c5255e000c053a2dc47926cea7cec2761c) @@ -3682,7 +4213,7 @@ bind10-1.1.0beta1 released on April 4, 2013 (Trac #2710, git 16e8be506f32de668699e6954f5de60ca9d14ddf) 588. [bug]* jreed - b10-xfrout: Log message id XFROUT_QUERY_QUOTA_EXCCEEDED + b10-xfrout: Log message id XFROUT_QUERY_QUOTA_EXCEEDED changed to XFROUT_QUERY_QUOTA_EXCEEDED. (git be41be890f1349ae4c870a887f7acd99ba1eaac5) diff --git a/README b/README index bf59b580cd8d63c620a22f9d78613da3ee413470..9bf18cdbcc394cc3d94de452597e680d69e4b8c9 100644 --- a/README +++ b/README @@ -1,6 +1,6 @@ Kea provides DHCPv4 and DHCPv6 servers, a dynamic DNS update module, -a portable DHCP library, libdhcp++, and a DHCP benchmarking tool, -perfdhcp. +a portable DHCP library, libdhcp++, control agent that provides management +REST interface, and a DHCP benchmarking tool, perfdhcp. Kea is developed by Internet Systems Consortium. diff --git a/compatcheck/README b/compatcheck/README index 8381e60ae86675b385fb44f951119941080a8333..3c07c37869e33c3c3b2a84880b6297d94c88e11b 100644 --- a/compatcheck/README +++ b/compatcheck/README @@ -1,5 +1,5 @@ This directory is a collection of compatibility checker programs. They will be run before any other installation attempts on 'make install' to see if the installation causes any substantial compatibility problems -with existing configuratons. If any checker program finds an issue, +with existing configurations. If any checker program finds an issue, 'make install' will stop at that point. diff --git a/configure.ac b/configure.ac index 47d6c16359ea985e2d173d74260a2424cb86d3d3..bba2cc942ae3069bd1d0c8c83a282c344259b5f7 100644 --- a/configure.ac +++ b/configure.ac @@ -7,7 +7,7 @@ AC_PREREQ([2.59]) # For GIT versions, this is x.y.z-git, where x.y.z denotes the software # version that was used as a base + changes that were made later, but # are not released yet. -AC_INIT(kea,1.1.0-git, kea-dev@lists.isc.org) +AC_INIT(kea,1.2.0-git, kea-dev@lists.isc.org) AC_CONFIG_SRCDIR(README) # serial-tests is not available in automake version before 1.13, so @@ -114,43 +114,24 @@ AC_LANG([C++]) AM_CONDITIONAL(USE_GXX, test "X${GXX}" = "Xyes") AC_CHECK_DECL([__SUNPRO_CC], [SUNCXX="yes"], [SUNCXX="no"]) AC_CHECK_DECL([__clang__], [CLANGPP="yes"], [CLANGPP="no"]) -# USE_CLANGPP is no longer used, keep it by summetry with USE_GXX? +# USE_CLANGPP is no longer used, keep it by symmetry with USE_GXX? AM_CONDITIONAL(USE_CLANGPP, test "X${CLANGPP}" = "Xyes") -# Check for std::unique_ptr and aggregate initialization (aka C++11) support -CXX_SAVED=$CXX -feature= -for retry in "none" "--std=c++11" "--std=c++0x" "--std=c++1x" "fail"; do - if test "$retry" = "fail"; then - AC_MSG_ERROR([$feature (a C++11 feature) is not supported]) - fi - if test "$retry" != "none"; then - AC_MSG_WARN([unsupported C++11 feature]) - AC_MSG_NOTICE([retrying by adding $retry to $CXX]) - CXX="$CXX_SAVED $retry" - fi - - AC_MSG_CHECKING(std::unique_ptr support) - feature="std::unique_ptr" - AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [#include ], - [std::unique_ptr a;])], - [AC_MSG_RESULT([yes])], - [AC_MSG_RESULT([no]) - continue]) - - AC_MSG_CHECKING(aggregate initialization support) - feature="aggregate initialization" - AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [#include ], - [std::vector foo = { 1, 2, 3};])], - [AC_MSG_RESULT([yes]) - break], - [AC_MSG_RESULT([no]) - continue]) -done +# Check for C++11 features support +AX_ISC_CPP11 + +# Check for std::is_base_of support +AC_MSG_CHECKING([for std::is_base_of]) +AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [#include + class A {}; + class B : A {};] + [static_assert(std::is_base_of::value, "");])], + [AC_MSG_RESULT(yes) + AC_DEFINE([HAVE_IS_BASE_OF], [1], + [Define to 1 if std::is_base_of is available])], + [AC_MSG_RESULT(no)]) dnl Determine if we are using GNU sed GNU_SED=no @@ -240,6 +221,11 @@ if expr "$CXX_DUMP_VERSION" \< "4.5" > /dev/null; then WARNING_GCC_44_STRICT_ALIASING_CFLAG="-fno-strict-aliasing" fi AC_SUBST(WARNING_GCC_44_STRICT_ALIASING_CFLAG) +CPPP="$CPP" +# gcc 5 preprocessor requires -P for checking its output +if test "$CXX_DUMP_VERSION" \> "5"; then + CPPP="$CPP -P" +fi case "$host" in *-solaris*) @@ -412,44 +398,62 @@ case "$host" in ;; esac -m4_define([_AM_PYTHON_INTERPRETER_LIST], [python python3.4 python3.3 python3.2 python3.1 python3]) -AC_ARG_WITH([pythonpath], -AC_HELP_STRING([--with-pythonpath=PATH], - [specify an absolute path to python executable when automatic version check (incorrectly) fails]), - [python_path="$withval"], [python_path="auto"]) -if test "$python_path" = auto; then - AM_PATH_PYTHON([3.1],,[PYTHON=no]) + +# Kea-shell is written in python. It can work with python 2.7 or any 3.x. +# It may likely work with earlier versions, but 2.7 was the oldest one we tested +# it with. We require python only if kea-shell was enabled. It is disabled +# by default to not introduce hard dependency on python. +AC_ARG_ENABLE(shell, [AC_HELP_STRING([--enable-shell], + [enable kea-shell, a text management client for Control Agent [default=no]])], + enable_shell=$enableval, enable_shell=no) + +PKGPYTHONDIR= +m4_define_default([_AM_PYTHON_INTERPRETER_LIST], + [python3 python3.9 python3.8 python3.7 python3.6 python3.5 python3.4 dnl + python3.3 python3.2 python3.1 python3.0 python python2 python2.7]) +if test "x$enable_shell" != xno ; then +# If kea-shell is enabled, we really need python. 2.7 or anything newer will do. +# We try to find 3.x first. If not found, we can do with 2.7. + AM_PATH_PYTHON([2.7]) + # pkgpythondir needs to be expanded + saved_prefix="$prefix" + if test "$prefix" = "NONE"; then + prefix=$ac_default_prefix + fi + PKGPYTHONDIR="$pkgpythondir" + OLD= + while test "x$OLD" != "x$PKGPYTHONDIR"; do + OLD="$PKGPYTHONDIR" + eval PKGPYTHONDIR="\"$OLD\"" + done + prefix="$saved_prefix" else - # Older versions of automake can't handle python3 well. This is an - # in-house workaround for them. - PYTHON=$python_path - AC_SUBST(PYTHON) - PYTHON_PREFIX='${prefix}' - AC_SUBST(PYTHON_PREFIX) - PYTHON_EXEC_PREFIX='$(exec_prefix)' - AC_SUBST(PYTHON_EXEC_PREFIX) - PYTHON_VERSION=[`$PYTHON -c "import sys; sys.stdout.write(sys.version[:3])"`] - if test `echo "$PYTHON_VERSION >= 3.1" | bc` != 1 ; then - AC_MSG_ERROR(["Python version too old: $PYTHON_VERSION, need 3.1 or higher"]) - fi - AC_SUBST(PYTHON_VERSION) - PYTHON_PLATFORM=`$PYTHON -c "import sys; print(sys.platform)"` - AC_SUBST(PYTHON_PLATFORM) - pythondir='${prefix}/lib/python'$PYTHON_VERSION'/site-packages' - AC_SUBST(pythondir) - pkgpythondir='${pythondir}/'$PACKAGE - AC_SUBST(pkgpythondir) - pyexecdir='${exec_prefix}/lib/python'$PYTHON_VERSION'/site-packages' - AC_SUBST(pyexecdir) - pkgpyexecdir='${pyexecdir}/'$PACKAGE - AC_SUBST(pkgpyexecdir) + PYTHON=no fi +# Export to makefiles the info whether we have shell enabled or not +AM_CONDITIONAL(KEA_SHELL, test x$enable_shell != xno) +AC_SUBST(PKGPYTHONDIR) + # produce PIC unless we disable shared libraries. need this for python bindings. if test $enable_shared != "no" -a "X$GXX" = "Xyes"; then KEA_CXXFLAGS="$KEA_CXXFLAGS -fPIC" fi +# Look for glib static libs if they're trying to do static builds +if test $enable_static_link != "no"; then + CXX_SAVED=$CXX + CXX="$CXX -static" + + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([#include ],[(void)sqrt(-1.0);])], + [AC_MSG_RESULT([checking for static glib libraries... yes])], + [AC_MSG_RESULT([checking for static glib libraries... no]) + AC_MSG_ERROR([Building with --enable-static-link does not work. You appear to be missing glib static libraries. Check config.log for details.])]) + + CXX=$CXX_SAVED +fi + AC_SUBST(KEA_CXXFLAGS) # Checks for libraries. @@ -641,6 +645,7 @@ AC_DEFUN([ACX_TRY_BOTAN_TOOL], [ #AC_MSG_RESULT([found]) AC_LINK_IFELSE( [AC_LANG_PROGRAM([#include + #include #include ], [using namespace Botan; @@ -724,7 +729,7 @@ else # Ok so no script found, see if pkg-config knows of it. # Unfortunately, the botan.pc files also have their minor version # in their name, so we need to try them one by one - BOTAN_VERSIONS="botan-1.10 botan-1.9 botan-1.8" + BOTAN_VERSIONS="botan-2 botan-1.11 botan-1.10 botan-1.9 botan-1.8" for version in $BOTAN_VERSIONS; do ACX_TRY_BOTAN_TOOL([pkg-config], ["$version --silence-errors"], [ BOTAN_CONFIG="$PKG_CONFIG $version" ] @@ -763,7 +768,7 @@ then AUTOCONF_BOTAN_VERSION=BOTAN_VERSION_MAJOR . BOTAN_VERSION_MINOR . BOTAN_VERSION_PATCH EOF - CRYPTO_VERSION=`$CPP $CPPFLAGS $CRYPTO_INCLUDES conftest.cpp | grep '^AUTOCONF_BOTAN_VERSION=' | $SED -e 's/^AUTOCONF_BOTAN_VERSION=//' -e 's/[[ ]]//g' -e 's/"//g' 2> /dev/null` + CRYPTO_VERSION=`$CPPP $CPPFLAGS $CRYPTO_INCLUDES conftest.cpp | grep '^AUTOCONF_BOTAN_VERSION=' | $SED -e 's/^AUTOCONF_BOTAN_VERSION=//' -e 's/[[ ]]//g' -e 's/"//g' 2> /dev/null` if test -z "$CRYPTO_VERSION"; then CRYPTO_VERSION="unknown" fi @@ -835,6 +840,7 @@ then LIBS="$LIBS $CRYPTO_LIBS" AC_LINK_IFELSE( [AC_LANG_PROGRAM([#include + #include #include ], [using namespace Botan; @@ -868,7 +874,7 @@ then else CRYPTO_NAME="OpenSSL" DISABLED_CRYPTO="Botan" - CRYPTO_PACKAGE="openssl-1.0.1" + CRYPTO_PACKAGE="openssl-1.0.2" AC_DEFINE_UNQUOTED([WITH_OPENSSL], [], [Compile with OpenSSL crypto]) AC_MSG_CHECKING(for OpenSSL library) # from bind9 @@ -927,7 +933,7 @@ else AUTOCONF_OPENSSL_VERSION=OPENSSL_VERSION_TEXT EOF - CRYPTO_VERSION=`$CPP $CPPFLAGS $CRYPTO_INCLUDES conftest.cpp | grep '^AUTOCONF_OPENSSL_VERSION=' | $SED -e 's/^AUTOCONF_OPENSSL_VERSION=//' -e 's/"//g' 2> /dev/null` + CRYPTO_VERSION=`$CPPP $CPPFLAGS $CRYPTO_INCLUDES conftest.cpp | grep '^AUTOCONF_OPENSSL_VERSION=' | $SED -e 's/^AUTOCONF_OPENSSL_VERSION=//' -e 's/"//g' 2> /dev/null` if test -z "$CRYPTO_VERSION" ; then CRYPTO_VERSION="unknown" fi @@ -936,7 +942,7 @@ EOF #CRYPTO_LDFLAGS="-ldl" CRYPTO_LDFLAGS="" CRYPTO_RPATH="" - dnl Check avaibility of SHA-2 + dnl Check availability of SHA-2 AC_MSG_CHECKING([support of SHA-2]) LIBS_SAVED=${LIBS} LIBS="$LIBS $CRYPTO_LIBS" @@ -954,15 +960,18 @@ EOF dnl Check HMAC API AC_MSG_CHECKING([HMAC functions returning ints]) AC_LINK_IFELSE( - [AC_LANG_PROGRAM([#include ], - [HMAC_CTX ctx, tmp; + [AC_LANG_PROGRAM([#include + #include ], + [#if OPENSSL_VERSION_NUMBER < 0x10100000L + HMAC_CTX ctx, tmp; int n = HMAC_Init(&ctx, NULL, 0, NULL); n += HMAC_Update(&ctx, NULL, 0); n += HMAC_CTX_copy(&tmp, &ctx); n += HMAC_Final(&tmp, NULL, NULL); + #endif ])], [AC_MSG_RESULT([yes])], - [AC_MSG_ERROR([HMAC functions return void: the OpenSSL version should be too old, please change for >= 1.0.1])]) + [AC_MSG_ERROR([HMAC functions return void: please use OpenSSL version 1.0.1 or later])]) LIBS=${LIBS_SAVED} CPPFLAGS=${CPPFLAGS_SAVED} fi @@ -1098,9 +1107,9 @@ AC_ARG_WITH([cql], [cql_config="$withval"]) if test "${cql_config}" = "yes" ; then - cql_config="/usr/bin/cql_config" + CQL_CONFIG="/usr/bin/cql_config" elif test "${cql_config}" != "no" ; then - CQL_CONFIG="${withval}" + CQL_CONFIG="${cql_config}" fi if test "$CQL_CONFIG" != "" ; then @@ -1194,7 +1203,7 @@ cat > conftest.cpp << EOF AUTOCONF_LOG4CPLUS_VERSION=LOG4CPLUS_VERSION_STR EOF -LOG4CPLUS_VERSION=`$CPP $CPPFLAGS conftest.cpp | grep '^AUTOCONF_LOG4CPLUS_VERSION=' | $SED -e 's/^AUTOCONF_LOG4CPLUS_VERSION=//' -e 's/[[ ]]//g' -e 's/"//g' 2> /dev/null` +LOG4CPLUS_VERSION=`$CPPP $CPPFLAGS conftest.cpp | grep '^AUTOCONF_LOG4CPLUS_VERSION=' | $SED -e 's/^AUTOCONF_LOG4CPLUS_VERSION=//' -e 's/[[ ]]//g' -e 's/"//g' 2> /dev/null` if test -z "$LOG4CPLUS_VERSION"; then LOG4CPLUS_VERSION="unknown" fi @@ -1270,9 +1279,10 @@ if test "x$enable_gtest" = "xyes" ; then [AC_MSG_ERROR([no gtest source at $GTEST_SOURCE])]) fi have_gtest_source=yes - GTEST_LDFLAGS="\$(top_builddir)/ext/gtest/libgtest.a" + GTEST_LDADD="\$(top_builddir)/ext/gtest/libgtest.a" DISTCHECK_GTEST_CONFIGURE_FLAG="--with-gtest-source=$GTEST_SOURCE" GTEST_INCLUDES="-I$GTEST_SOURCE -I$GTEST_SOURCE/include" + GTEST_VERSION="`basename $GTEST_SOURCE`" fi if test "$gtest_path" != "no" ; then @@ -1348,7 +1358,32 @@ if test $enable_gtest != "no"; then [AC_MSG_ERROR([XXX_TRUE() Google Test macros won't compile; the most likely reason is that a later version of Google Test is required])]) CPPFLAGS=$CPPFLAGS_SAVED fi - + +# Check for CreateUnifiedDiff from gtest >= 1.8.0 +if test $enable_gtest != "no"; then + AC_MSG_CHECKING([for CreateUnifiedDiff in $GTEST_INCLUDES/gtest.h]) + CPPFLAGS_SAVED=$CPPFLAGS + CPPFLAGS="$CPPFLAGS $BOOST_INCLUDES $GTEST_INCLUDES" + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [#include + #include + #include + #include + std::string nodiff(std::string text) { + std::vector lines; + boost::split(lines, text, boost::is_any_of("\n")); + using namespace testing::internal; + return (edit_distance::CreateUnifiedDiff(lines, lines)); + }], + [return 0;])], + [AC_MSG_RESULT(yes) + AC_DEFINE([HAVE_CREATE_UNIFIED_DIFF], [1], + [Define to 1 if gtest defines edit_distance::CreateUnifiedDiff])], + [AC_MSG_RESULT(no)]) + CPPFLAGS=$CPPFLAGS_SAVED +fi + # # ASIO: we extensively use it as the C++ event management module. # @@ -1400,12 +1435,12 @@ AC_ARG_ENABLE(generate_parser, [AC_HELP_STRING([--enable-generate-parser], bison and flex are required [default=no]])], enable_generate_parser=$enableval, enable_generate_parser=no) -# Check if flex is avaible. Flex is not needed for building Kea sources, -# unless you want to regenerate grammar in src/lib/eval +# Check if flex is available. Flex is not needed for building Kea sources, +# unless you want to regenerate grammars AC_PROG_LEX # Check if bison is available. Bison is not needed for building Kea sources, -# unless you want to regenerate grammar in src/lib/eval +# unless you want to regenerate grammars AC_PROG_YACC if test "x$enable_generate_parser" != "xno"; then @@ -1419,7 +1454,7 @@ if test "x$enable_generate_parser" != "xno"; then fi # Ok, let's check if we have at least 3.0.0 version of the bison. The code used -# to generate src/lib/eval parser is roughly based on bison 3.0 examples. +# to generate parsers is roughly based on bison 3.0 examples. cat > bisontest.y << EOF %require "3.0.0" %token X @@ -1533,20 +1568,33 @@ AM_COND_IF([HAVE_OPTRESET], [AC_DEFINE([HAVE_OPTRESET], [1], [Check for optreset AC_DEFINE([CONFIG_H_WAS_INCLUDED], [1], [config.h inclusion marker]) -AC_CONFIG_FILES([compatcheck/Makefile +AC_CONFIG_FILES([Makefile + compatcheck/Makefile dns++.pc - doc/design/datasrc/Makefile + doc/Makefile doc/design/Makefile + doc/design/datasrc/Makefile doc/guide/Makefile - doc/Makefile doc/version.ent + ext/Makefile ext/coroutine/Makefile ext/gtest/Makefile - ext/Makefile m4macros/Makefile - Makefile src/Makefile src/bin/Makefile + src/bin/admin/Makefile + src/bin/admin/kea-admin + src/bin/admin/tests/Makefile + src/bin/admin/tests/cql_tests.sh + src/bin/admin/tests/data/Makefile + src/bin/admin/tests/memfile_tests.sh + src/bin/admin/tests/mysql_tests.sh + src/bin/admin/tests/pgsql_tests.sh + src/bin/agent/Makefile + src/bin/agent/tests/Makefile + src/bin/agent/tests/ca_process_tests.sh + src/bin/agent/tests/test_data_files_config.h + src/bin/agent/tests/test_libraries.h src/bin/d2/Makefile src/bin/d2/tests/Makefile src/bin/d2/tests/d2_process_tests.sh @@ -1575,16 +1623,15 @@ AC_CONFIG_FILES([compatcheck/Makefile src/bin/perfdhcp/Makefile src/bin/perfdhcp/tests/Makefile src/bin/perfdhcp/tests/testdata/Makefile - src/bin/admin/Makefile - src/bin/admin/kea-admin - src/bin/admin/tests/Makefile - src/bin/admin/tests/data/Makefile - src/bin/admin/tests/memfile_tests.sh - src/bin/admin/tests/mysql_tests.sh - src/bin/admin/tests/pgsql_tests.sh - src/bin/admin/tests/cql_tests.sh + src/bin/shell/Makefile + src/bin/shell/kea-shell + src/bin/shell/tests/Makefile + src/bin/shell/tests/shell_process_tests.sh + src/bin/shell/tests/shell_unittest.py src/hooks/Makefile src/hooks/dhcp/Makefile + src/hooks/dhcp/lease_cmds/Makefile + src/hooks/dhcp/lease_cmds/tests/Makefile src/hooks/dhcp/user_chk/Makefile src/hooks/dhcp/user_chk/tests/Makefile src/hooks/dhcp/user_chk/tests/test_data_files_config.h @@ -1592,6 +1639,7 @@ AC_CONFIG_FILES([compatcheck/Makefile src/lib/asiodns/Makefile src/lib/asiodns/tests/Makefile src/lib/asiolink/Makefile + src/lib/asiolink/testutils/Makefile src/lib/asiolink/tests/Makefile src/lib/cc/Makefile src/lib/cc/tests/Makefile @@ -1615,12 +1663,16 @@ AC_CONFIG_FILES([compatcheck/Makefile src/lib/dns/gen-rdatacode.py src/lib/dns/tests/Makefile src/lib/dns/tests/testdata/Makefile + src/lib/eval/Makefile + src/lib/eval/tests/Makefile src/lib/exceptions/Makefile src/lib/exceptions/tests/Makefile src/lib/hooks/Makefile src/lib/hooks/tests/Makefile src/lib/hooks/tests/marker_file.h src/lib/hooks/tests/test_libraries.h + src/lib/http/Makefile + src/lib/http/tests/Makefile src/lib/log/Makefile src/lib/log/compiler/Makefile src/lib/log/interprocess/Makefile @@ -1638,10 +1690,10 @@ AC_CONFIG_FILES([compatcheck/Makefile src/lib/process/spec_config.h.pre src/lib/process/tests/Makefile src/lib/process/testutils/Makefile - src/lib/testutils/Makefile - src/lib/testutils/dhcp_test_lib.sh src/lib/stats/Makefile src/lib/stats/tests/Makefile + src/lib/testutils/Makefile + src/lib/testutils/dhcp_test_lib.sh src/lib/util/Makefile src/lib/util/io/Makefile src/lib/util/python/Makefile @@ -1651,31 +1703,34 @@ AC_CONFIG_FILES([compatcheck/Makefile src/lib/util/threads/Makefile src/lib/util/threads/tests/Makefile src/lib/util/unittests/Makefile - src/lib/eval/Makefile - src/lib/eval/tests/Makefile src/share/Makefile src/share/database/Makefile src/share/database/scripts/Makefile + src/share/database/scripts/cql/Makefile src/share/database/scripts/mysql/Makefile src/share/database/scripts/mysql/upgrade_1.0_to_2.0.sh src/share/database/scripts/mysql/upgrade_2.0_to_3.0.sh src/share/database/scripts/mysql/upgrade_3.0_to_4.0.sh src/share/database/scripts/mysql/upgrade_4.0_to_4.1.sh src/share/database/scripts/mysql/upgrade_4.1_to_5.0.sh + src/share/database/scripts/mysql/upgrade_5.0_to_5.1.sh src/share/database/scripts/pgsql/Makefile src/share/database/scripts/pgsql/upgrade_1.0_to_2.0.sh src/share/database/scripts/pgsql/upgrade_2.0_to_3.0.sh - src/share/database/scripts/cql/Makefile + src/share/database/scripts/pgsql/upgrade_3.0_to_3.1.sh tools/Makefile tools/path_replacer.sh ]) - AC_CONFIG_COMMANDS([permissions], [ +AC_CONFIG_COMMANDS([permissions], [ + chmod +x src/bin/admin/kea-admin chmod +x src/bin/dhcp4/tests/dhcp4_process_tests.sh chmod +x src/bin/dhcp6/tests/dhcp6_process_tests.sh chmod +x src/bin/keactrl/keactrl chmod +x src/bin/keactrl/tests/keactrl_tests.sh - chmod +x src/bin/admin/kea-admin + chmod +x src/bin/shell/kea-shell + chmod +x src/bin/shell/tests/shell_process_tests.sh + chmod +x src/bin/shell/tests/shell_unittest.py chmod +x src/lib/dns/gen-rdatacode.py chmod +x src/lib/log/tests/console_test.sh chmod +x src/lib/log/tests/destination_test.sh @@ -1750,19 +1805,16 @@ END if test "$PYTHON" != "no" ; then cat >> config.report << END -Python3: +Python: + PYTHON: ${PYTHON} PYTHON_VERSION: ${PYTHON_VERSION} - PYTHON_INCLUDES: ${PYTHON_INCLUDES} - PYTHON_CXXFLAGS: ${PYTHON_CXXFLAGS} - PYTHON_LDFLAGS: ${PYTHON_LDFLAGS} - PYTHON_LIB: ${PYTHON_LIB} END else cat >> config.report << END -Python3: - not installed +Python: + PYTHON_VERSION: not needed (because kea-shell is disabled) END fi @@ -1773,6 +1825,18 @@ Boost: BOOST_INCLUDES: ${BOOST_INCLUDES} BOOST_LIBS: ${BOOST_LIBS} +END +if test x"$BOOST_LIBS" = "x"; then + cat >> config.report << END + WARNING: You will be building with boost headers only rather + than linking with boost_system library. This is NOT recommended as + it may result in non-optimized code on some platforms and + introduce runtime errors on others. + +END +fi + +cat >> config.report << END ${CRYPTO_NAME}: CRYPTO_VERSION: ${CRYPTO_VERSION} CRYPTO_CFLAGS: ${CRYPTO_CFLAGS} @@ -1864,6 +1928,7 @@ Developer: Logger checks: $enable_logger_checks Generate Documentation: $enable_generate_docs Parser Generation: $enable_generate_parser + Kea-shell: $enable_shell END diff --git a/doc/Doxyfile b/doc/Doxyfile index e5ad2336c8b35759be6999c95d6a1ce45643d67b..6715fdf9b99b02a0cecb6968ef278e12324b1960 100644 --- a/doc/Doxyfile +++ b/doc/Doxyfile @@ -1,4 +1,4 @@ -# Doxyfile 1.8.6 +# Doxyfile 1.8.11 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. @@ -6,65 +6,66 @@ # All text after a double hash (##) is considered a comment and is placed in # front of the TAG it is preceding. # -# All text after a hash (#) is considered a comment and will be ignored. +# All text after a single hash (#) is considered a comment and will be ignored. # The format is: -# TAG = value [value, ...] -# For lists items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (" "). +# TAG = value [value, ...] +# For lists, items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (\" \"). #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the config file -# that follow. The default is UTF-8 which is also the encoding used for all -# text before the first occurrence of this tag. Doxygen uses libiconv (or the -# iconv built into libc) for the transcoding. See -# http://www.gnu.org/software/libiconv for the list of possible encodings. +# that follow. The default is UTF-8 which is also the encoding used for all text +# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv +# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv +# for the list of possible encodings. # The default value is: UTF-8. DOXYFILE_ENCODING = UTF-8 -# The PROJECT_NAME tag is a single word (or sequence of words) that should -# identify the project. Note that if you do not use Doxywizard you need -# to put quotes around the project name if it contains spaces. +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by +# double-quotes, unless you are using Doxywizard) that should identify the +# project for which the documentation is generated. This name is used in the +# title of most generated pages and in a few other places. # The default value is: My Project. PROJECT_NAME = Kea -# The PROJECT_NUMBER tag can be used to enter a project or revision number. -# This could be handy for archiving the generated documentation or -# if some version control system is used. +# The PROJECT_NUMBER tag can be used to enter a project or revision number. This +# could be handy for archiving the generated documentation or if some version +# control system is used. PROJECT_NUMBER = # Using the PROJECT_BRIEF tag one can provide an optional one line description -# for a project that appears at the top of each page and should give viewer -# a quick idea about the purpose of the project. Keep the description short. +# for a project that appears at the top of each page and should give viewer a +# quick idea about the purpose of the project. Keep the description short. PROJECT_BRIEF = -# With the PROJECT_LOGO tag one can specify an logo or icon that is -# included in the documentation. The maximum height of the logo should not -# exceed 55 pixels and the maximum width should not exceed 200 pixels. -# Doxygen will copy the logo to the output directory. +# With the PROJECT_LOGO tag one can specify a logo or an icon that is included +# in the documentation. The maximum height of the logo should not exceed 55 +# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy +# the logo to the output directory. PROJECT_LOGO = guide/kea-logo-100x70.png -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) -# base path where the generated documentation will be put. -# If a relative path is entered, it will be relative to the location -# where doxygen was started. If left blank the current directory will be used. +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path +# into which the generated documentation will be written. If a relative path is +# entered, it will be relative to the location where doxygen was started. If +# left blank the current directory will be used. OUTPUT_DIRECTORY = html -# If the CREATE_SUBDIRS tag is set to YES then doxygen will create -# 4096 sub-directories (in 2 levels) under the output directory of each output -# format and will distribute the generated files over these directories. -# Enabling this option can be useful when feeding doxygen a huge amount of -# source files, where putting all generated files in the same directory would -# otherwise cause performance problems for the file system. +# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- +# directories (in 2 levels) under the output directory of each output format and +# will distribute the generated files over these directories. Enabling this +# option can be useful when feeding doxygen a huge amount of source files, where +# putting all generated files in the same directory would otherwise causes +# performance problems for the file system. # The default value is: NO. CREATE_SUBDIRS = YES @@ -74,54 +75,53 @@ CREATE_SUBDIRS = YES # characters will be escaped, for example _xE3_x81_x84 will be used for Unicode # U+3044. # The default value is: NO. -# XXX Only in 1.8.10 -#ALLOW_UNICODE_NAMES = NO +ALLOW_UNICODE_NAMES = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. -# The default language is English, other supported languages are: -# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, -# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, -# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English -# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, -# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, -# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. +# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, +# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), +# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, +# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), +# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, +# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, +# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, +# Ukrainian and Vietnamese. # The default value is: English. OUTPUT_LANGUAGE = English -# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will -# include brief member descriptions after the members that are listed in -# the file and class documentation (similar to JavaDoc). -# Set to NO to disable this. +# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member +# descriptions after the members that are listed in the file and class +# documentation (similar to Javadoc). Set to NO to disable this. # The default value is: YES. BRIEF_MEMBER_DESC = YES -# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend -# the brief description of a member or function before the detailed description. -# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief +# description of a member or function before the detailed description +# +# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. # The default value is: YES. REPEAT_BRIEF = YES -# This tag implements a quasi-intelligent brief description abbreviator -# that is used to form the text in various listings. Each string -# in this list, if found as the leading text of the brief description, will be -# stripped from the text and the result after processing the whole list, is -# used as the annotated text. Otherwise, the brief description is used as-is. -# If left blank, the following values are used ("$name" is automatically -# replaced with the name of the entity): "The $name class" "The $name widget" -# "The $name file" "is" "provides" "specifies" "contains" -# "represents" "a" "an" "the". +# This tag implements a quasi-intelligent brief description abbreviator that is +# used to form the text in various listings. Each string in this list, if found +# as the leading text of the brief description, will be stripped from the text +# and the result, after processing the whole list, is used as the annotated +# text. Otherwise, the brief description is used as-is. If left blank, the +# following values are used ($name is automatically replaced with the name of +# the entity):The $name class, The $name widget, The $name file, is, provides, +# specifies, contains, represents, a, an and the. ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# Doxygen will generate a detailed section even if there is only a brief +# doxygen will generate a detailed section even if there is only a brief # description. # The default value is: NO. @@ -135,19 +135,18 @@ ALWAYS_DETAILED_SEC = NO INLINE_INHERITED_MEMB = NO -# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full -# path before files name in the file list and in the header files. If set -# to NO the shortest path that makes the file name unique will be used. +# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path +# before files name in the file list and in the header files. If set to NO the +# shortest path that makes the file name unique will be used # The default value is: YES. FULL_PATH_NAMES = NO -# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag -# can be used to strip a user-defined part of the path. Stripping is -# only done if one of the specified strings matches the left-hand part of -# the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the -# path to strip. +# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. +# Stripping is only done if one of the specified strings matches the left-hand +# part of the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the path to +# strip. # # Note that you can specify absolute paths here, but also relative paths, which # will be relative from the directory where doxygen is started. @@ -155,45 +154,44 @@ FULL_PATH_NAMES = NO STRIP_FROM_PATH = -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of -# the path mentioned in the documentation of a class, which tells -# the reader which header file to include in order to use a class. -# If left blank only the name of the header file containing the class -# definition is used. Otherwise one should specify the include paths that -# are normally passed to the compiler using the -I flag. +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the +# path mentioned in the documentation of a class, which tells the reader which +# header file to include in order to use a class. If left blank only the name of +# the header file containing the class definition is used. Otherwise one should +# specify the list of include paths that are normally passed to the compiler +# using the -I flag. STRIP_FROM_INC_PATH = -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter -# (but less readable) file names. This can be useful if your file system -# doesn't support long names like on DOS, Mac, or CD-ROM. +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but +# less readable) file names. This can be useful is your file systems doesn't +# support long names like on DOS, Mac, or CD-ROM. # The default value is: NO. SHORT_NAMES = NO -# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen -# will interpret the first line (until the first dot) of a JavaDoc-style -# comment as the brief description. If set to NO, the JavaDoc -# comments will behave just like regular Qt-style comments -# (thus requiring an explicit @brief command for a brief description.) +# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the +# first line (until the first dot) of a Javadoc-style comment as the brief +# description. If set to NO, the Javadoc-style will behave just like regular Qt- +# style comments (thus requiring an explicit @brief command for a brief +# description.) # The default value is: NO. JAVADOC_AUTOBRIEF = YES -# If the QT_AUTOBRIEF tag is set to YES then Doxygen will -# interpret the first line (until the first dot) of a Qt-style -# comment as the brief description. If set to NO, the comments -# will behave just like regular Qt-style comments (thus requiring -# an explicit \brief command for a brief description.) +# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first +# line (until the first dot) of a Qt-style comment as the brief description. If +# set to NO, the Qt-style will behave just like regular Qt-style comments (thus +# requiring an explicit \brief command for a brief description.) # The default value is: NO. QT_AUTOBRIEF = NO -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen -# treat a multi-line C++ special comment block (i.e. a block of //! or /// -# comments) as a brief description. This used to be the default behaviour. -# The new default is to treat a multi-line C++ comment block as a detailed -# description. Set this tag to YES if you prefer the old behaviour instead. +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a +# multi-line C++ special comment block (i.e. a block of //! or /// comments) as +# a brief description. This used to be the default behavior. The new default is +# to treat a multi-line C++ comment block as a detailed description. Set this +# tag to YES if you prefer the old behavior instead. # # Note that setting this tag to YES also means that rational rose comments are # not recognized any more. @@ -201,68 +199,67 @@ QT_AUTOBRIEF = NO MULTILINE_CPP_IS_BRIEF = NO -# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented -# member inherits the documentation from any documented member that it -# re-implements. +# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the +# documentation from any documented member that it re-implements. # The default value is: YES. INHERIT_DOCS = YES -# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce -# a new page for each member. If set to NO, the documentation of a member will -# be part of the file/class/namespace that contains it. +# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new +# page for each member. If set to NO, the documentation of a member will be part +# of the file/class/namespace that contains it. # The default value is: NO. SEPARATE_MEMBER_PAGES = NO -# The TAB_SIZE tag can be used to set the number of spaces in a tab. -# Doxygen uses this value to replace tabs by spaces in code fragments. +# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen +# uses this value to replace tabs by spaces in code fragments. # Minimum value: 1, maximum value: 16, default value: 4. TAB_SIZE = 4 -# This tag can be used to specify a number of aliases that acts -# as commands in the documentation. An alias has the form "name=value". -# For example adding "sideeffect=\par Side Effects:\n" will allow you to -# put the command \sideeffect (or @sideeffect) in the documentation, which -# will result in a user-defined paragraph with heading "Side Effects:". -# You can put \n's in the value part of an alias to insert newlines. +# This tag can be used to specify a number of aliases that act as commands in +# the documentation. An alias has the form: +# name=value +# For example adding +# "sideeffect=@par Side Effects:\n" +# will allow you to put the command \sideeffect (or @sideeffect) in the +# documentation, which will result in a user-defined paragraph with heading +# "Side Effects:". You can put \n's in the value part of an alias to insert +# newlines. ALIASES = # This tag can be used to specify a number of word-keyword mappings (TCL only). -# A mapping has the form "name=value". For example adding -# "class=itcl::class" will allow you to use the command class in the -# itcl::class meaning. +# A mapping has the form "name=value". For example adding "class=itcl::class" +# will allow you to use the command class in the itcl::class meaning. TCL_SUBST = -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C -# sources only. Doxygen will then generate output that is more tailored for C. -# For instance, some of the names that are used will be different. The list -# of all members will be omitted, etc. +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources +# only. Doxygen will then generate output that is more tailored for C. For +# instance, some of the names that are used will be different. The list of all +# members will be omitted, etc. # The default value is: NO. OPTIMIZE_OUTPUT_FOR_C = NO -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java -# sources only. Doxygen will then generate output that is more tailored for -# Java. For instance, namespaces will be presented as packages, qualified -# scopes will look different, etc. +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or +# Python sources only. Doxygen will then generate output that is more tailored +# for that language. For instance, namespaces will be presented as packages, +# qualified scopes will look different, etc. # The default value is: NO. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran -# sources only. Doxygen will then generate output that is more tailored for -# Fortran. +# sources. Doxygen will then generate output that is tailored for Fortran. # The default value is: NO. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL -# sources. Doxygen will then generate output that is tailored for -# VHDL. +# sources. Doxygen will then generate output that is tailored for VHDL. # The default value is: NO. OPTIMIZE_OUTPUT_VHDL = NO @@ -270,42 +267,45 @@ OPTIMIZE_OUTPUT_VHDL = NO # Doxygen selects the parser to use depending on the extension of the files it # parses. With this tag you can assign which parser to use for a given # extension. Doxygen has a built-in mapping, but you can override or extend it -# using this tag. The format is ext=language, where ext is a file extension, -# and language is one of the parsers supported by doxygen: IDL, Java, -# Javascript, CSharp, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, -# C++. For instance to make doxygen treat .inc files as Fortran files (default -# is PHP), and .f files as C (default is Fortran), use: inc=Fortran f=C. +# using this tag. The format is ext=language, where ext is a file extension, and +# language is one of the parsers supported by doxygen: IDL, Java, Javascript, +# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: +# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: +# Fortran. In the later case the parser tries to guess whether the code is fixed +# or free formatted code, this is the default for Fortran type files), VHDL. For +# instance to make doxygen treat .inc files as Fortran files (default is PHP), +# and .f files as C (default is Fortran), use: inc=Fortran f=C. # -# Note For files without extension you can use no_extension as a placeholder. +# Note: For files without extension you can use no_extension as a placeholder. # # Note that for custom extensions you also need to set FILE_PATTERNS otherwise # the files are not read by doxygen. EXTENSION_MAPPING = -# If MARKDOWN_SUPPORT is enabled (the default) then doxygen pre-processes all -# comments according to the Markdown format, which allows for more readable +# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments +# according to the Markdown format, which allows for more readable # documentation. See http://daringfireball.net/projects/markdown/ for details. -# The output of markdown processing is further processed by doxygen, so you -# can mix doxygen, HTML, and XML commands with Markdown formatting. -# Disable only in case of backward compatibilities issues. +# The output of markdown processing is further processed by doxygen, so you can +# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in +# case of backward compatibilities issues. # The default value is: YES. MARKDOWN_SUPPORT = YES -# When enabled doxygen tries to link words that correspond to documented classes, -# or namespaces to their corresponding documentation. Such a link can be -# prevented in individual cases by by putting a % sign in front of the word or +# When enabled doxygen tries to link words that correspond to documented +# classes, or namespaces to their corresponding documentation. Such a link can +# be prevented in individual cases by putting a % sign in front of the word or # globally by setting AUTOLINK_SUPPORT to NO. # The default value is: YES. AUTOLINK_SUPPORT = YES # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want -# to include (a tag file for) the STL sources as input, then you should -# set this tag to YES in order to let doxygen match functions declarations and -# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. -# func(std::string) {}). This also makes the inheritance and collaboration +# to include (a tag file for) the STL sources as input, then you should set this +# tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); +# versus func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. # The default value is: NO. @@ -317,81 +317,89 @@ BUILTIN_STL_SUPPORT = YES CPP_CLI_SUPPORT = NO -# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. -# Doxygen will parse them like normal C++ but will assume all classes use public -# instead of private inheritance when no explicit protection keyword is present. +# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: +# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen +# will parse them like normal C++ but will assume all classes use public instead +# of private inheritance when no explicit protection keyword is present. # The default value is: NO. SIP_SUPPORT = NO -# For Microsoft's IDL there are propget and propput attributes to indicate getter and setter methods for a property. Setting this option to YES (the default) will make doxygen replace the get and set methods by a property in the documentation. This will only work if the methods are indeed getting or setting a simple type. If this is not the case, or you want to show the methods anyway, you should set this option to NO. +# For Microsoft's IDL there are propget and propput attributes to indicate +# getter and setter methods for a property. Setting this option to YES will make +# doxygen to replace the get and set methods by a property in the documentation. +# This will only work if the methods are indeed getting or setting a simple +# type. If this is not the case, or you want to show the methods anyway, you +# should set this option to NO. # The default value is: YES. IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES, then doxygen will reuse the documentation of the first +# tag is set to YES then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. # The default value is: NO. DISTRIBUTE_GROUP_DOC = NO -# If one adds a struct or class to a group and this option is enabled, -# then also any nested class or struct is added to the same group. By -# default this option is disabled and one has to add nested compounds -# explicitly via \ingroup. +# If one adds a struct or class to a group and this option is enabled, then also +# any nested class or struct is added to the same group. By default this option +# is disabled and one has to add nested compounds explicitly via \ingroup. # The default value is: NO. -# XXX Only in 1.8.10 -#GROUP_NESTED_COMPOUNDS = NO +GROUP_NESTED_COMPOUNDS = NO -# Set the SUBGROUPING tag to YES (the default) to allow class member groups of -# the same type (for instance a group of public functions) to be put as a -# subgroup of that type (e.g. under the Public Functions section). Set it to -# NO to prevent subgrouping. Alternatively, this can be done per class using -# the \nosubgrouping command. +# Set the SUBGROUPING tag to YES to allow class member groups of the same type +# (for instance a group of public functions) to be put as a subgroup of that +# type (e.g. under the Public Functions section). Set it to NO to prevent +# subgrouping. Alternatively, this can be done per class using the +# \nosubgrouping command. # The default value is: YES. SUBGROUPING = YES -# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and -# unions are shown inside the group in which they are included (e.g. using -# @ingroup) instead of on a separate page (for HTML and Man pages) or -# section (for LaTeX and RTF). +# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions +# are shown inside the group in which they are included (e.g. using \ingroup) +# instead of on a separate page (for HTML and Man pages) or section (for LaTeX +# and RTF). +# +# Note that this feature does not work in combination with +# SEPARATE_MEMBER_PAGES. # The default value is: NO. INLINE_GROUPED_CLASSES = NO -# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and -# unions with only public data fields will be shown inline in the documentation -# of the scope in which they are defined (i.e. file, namespace, or group -# documentation), provided this scope is documented. If set to NO (the default), -# structs, classes, and unions are shown on a separate page (for HTML and Man -# pages) or section (for LaTeX and RTF). +# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions +# with only public data fields or simple typedef fields will be shown inline in +# the documentation of the scope in which they are defined (i.e. file, +# namespace, or group documentation), provided this scope is documented. If set +# to NO, structs, classes, and unions are shown on a separate page (for HTML and +# Man pages) or section (for LaTeX and RTF). # The default value is: NO. INLINE_SIMPLE_STRUCTS = NO -# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum -# is documented as struct, union, or enum with the name of the typedef. So +# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or +# enum is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, -# namespace, or class. And the struct will be named TypeS. This can typically -# be useful for C code in case the coding convention dictates that all compound +# namespace, or class. And the struct will be named TypeS. This can typically be +# useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. # The default value is: NO. TYPEDEF_HIDES_STRUCT = NO -# Similar to the SYMBOL_CACHE_SIZE the size of the symbol lookup cache can be -# set using LOOKUP_CACHE_SIZE. This cache is used to resolve symbols given -# their name and scope. Since this can be an expensive process and often the -# same symbol appear multiple times in the code, doxygen keeps a cache of -# pre-resolved symbols. If the cache is too small doxygen will become slower. -# If the cache is too large, memory is wasted. The cache size is given by this -# formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range is 0..9, the default is 0, -# corresponding to a cache size of 2^16 = 65536 symbols. +# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This +# cache is used to resolve symbols given their name and scope. Since this can be +# an expensive process and often the same symbol appears multiple times in the +# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small +# doxygen will become slower. If the cache is too large, memory is wasted. The +# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range +# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 +# symbols. At the end of a run doxygen will report the cache usage and suggest +# the optimal cache size from a speed point of view. # Minimum value: 0, maximum value: 9, default value: 0. LOOKUP_CACHE_SIZE = 0 @@ -400,101 +408,98 @@ LOOKUP_CACHE_SIZE = 0 # Build related configuration options #--------------------------------------------------------------------------- -# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in -# documentation are documented, even if no documentation was available. -# Private class members and static file members will be hidden unless -# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES +# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in +# documentation are documented, even if no documentation was available. Private +# class members and static file members will be hidden unless the +# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. # Note: This will also disable the warnings about undocumented members that are # normally produced when WARNINGS is set to YES. # The default value is: NO. EXTRACT_ALL = YES -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class -# will be included in the documentation. +# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will +# be included in the documentation. # The default value is: NO. EXTRACT_PRIVATE = NO -# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal +# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal # scope will be included in the documentation. # The default value is: NO. EXTRACT_PACKAGE = NO -# If the EXTRACT_STATIC tag is set to YES all static members of a file -# will be included in the documentation. +# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be +# included in the documentation. # The default value is: NO. EXTRACT_STATIC = NO -# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) -# defined locally in source files will be included in the documentation. -# If set to NO only classes defined in header files are included. +# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined +# locally in source files will be included in the documentation. If set to NO, +# only classes defined in header files are included. Does not have any effect +# for Java sources. # The default value is: YES. EXTRACT_LOCAL_CLASSES = YES -# This flag is only useful for Objective-C code. When set to YES local -# methods, which are defined in the implementation section but not in -# the interface are included in the documentation. -# If set to NO (the default) only methods in the interface are included. +# This flag is only useful for Objective-C code. If set to YES, local methods, +# which are defined in the implementation section but not in the interface are +# included in the documentation. If set to NO, only methods in the interface are +# included. # The default value is: NO. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called -# 'anonymous_namespace{file}', where file will be replaced with the base -# name of the file that contains the anonymous namespace. By default -# anonymous namespaces are hidden. +# 'anonymous_namespace{file}', where file will be replaced with the base name of +# the file that contains the anonymous namespace. By default anonymous namespace +# are hidden. # The default value is: NO. EXTRACT_ANON_NSPACES = NO -# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all -# undocumented members of documented classes, files or namespaces. -# If set to NO (the default) these members will be included in the -# various overviews, but no documentation section is generated. -# This option has no effect if EXTRACT_ALL is enabled. +# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all +# undocumented members inside documented classes or files. If set to NO these +# members will be included in the various overviews, but no documentation +# section is generated. This option has no effect if EXTRACT_ALL is enabled. # The default value is: NO. HIDE_UNDOC_MEMBERS = NO -# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. -# If set to NO (the default) these classes will be included in the various -# overviews. This option has no effect if EXTRACT_ALL is enabled. +# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. If set +# to NO, these classes will be included in the various overviews. This option +# has no effect if EXTRACT_ALL is enabled. # The default value is: NO. HIDE_UNDOC_CLASSES = NO -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all -# friend (class|struct|union) declarations. -# If set to NO (the default) these declarations will be included in the -# documentation. +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend +# (class|struct|union) declarations. If set to NO, these declarations will be +# included in the documentation. # The default value is: NO. HIDE_FRIEND_COMPOUNDS = NO -# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any -# documentation blocks found inside the body of a function. -# If set to NO (the default) these blocks will be appended to the -# function's detailed documentation block. +# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any +# documentation blocks found inside the body of a function. If set to NO, these +# blocks will be appended to the function's detailed documentation block. # The default value is: NO. HIDE_IN_BODY_DOCS = NO -# The INTERNAL_DOCS tag determines if documentation -# that is typed after a \internal command is included. If the tag is set -# to NO (the default) then the documentation will be excluded. -# Set it to YES to include the internal documentation. +# The INTERNAL_DOCS tag determines if documentation that is typed after a +# \internal command is included. If the tag is set to NO then the documentation +# will be excluded. Set it to YES to include the internal documentation. # The default value is: NO. INTERNAL_DOCS = NO -# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate -# file names in lower-case letters. If set to YES upper-case letters are also +# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file +# names in lower-case letters. If set to YES, upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. @@ -502,9 +507,9 @@ INTERNAL_DOCS = NO CASE_SENSE_NAMES = YES -# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen -# will show members with their full class and namespace scopes in the -# documentation. If set to YES the scope will be hidden. +# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with +# their full class and namespace scopes in the documentation. If set to YES, the +# scope will be hidden. # The default value is: NO. HIDE_SCOPE_NAMES = NO @@ -513,147 +518,147 @@ HIDE_SCOPE_NAMES = NO # append additional text to a page's title, such as Class Reference. If set to # YES the compound reference will be hidden. # The default value is: NO. -# XXX Only in 1.8.10 -#HIDE_COMPOUND_REFERENCE= NO +HIDE_COMPOUND_REFERENCE= NO -# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen -# will put a list of the files that are included by a file in the documentation -# of that file. +# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of +# the files that are included by a file in the documentation of that file. # The default value is: YES. SHOW_INCLUDE_FILES = YES -# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen -# will list include files with double quotes in the documentation -# rather than with sharp brackets. +# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each +# grouped member an include statement to the documentation, telling the reader +# which file to include in order to use the member. +# The default value is: NO. + +SHOW_GROUPED_MEMB_INC = NO + +# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include +# files with double quotes in the documentation rather than with sharp brackets. # The default value is: NO. FORCE_LOCAL_INCLUDES = NO -# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] -# is inserted in the documentation for inline members. +# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the +# documentation for inline members. # The default value is: YES. INLINE_INFO = YES -# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen -# will sort the (detailed) documentation of file and class members -# alphabetically by member name. If set to NO the members will appear in -# declaration order. +# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the +# (detailed) documentation of file and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. # The default value is: YES. SORT_MEMBER_DOCS = YES -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the -# brief documentation of file, namespace and class members alphabetically -# by member name. If set to NO (the default) the members will appear in -# declaration order. +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief +# descriptions of file, namespace and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. Note that +# this will also influence the order of the classes in the class list. # The default value is: NO. SORT_BRIEF_DOCS = YES -# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen -# will sort the (brief and detailed) documentation of class members so that -# constructors and destructors are listed first. If set to NO (the default) -# the constructors will appear in the respective orders defined by -# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. -# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO -# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the +# (brief and detailed) documentation of class members so that constructors and +# destructors are listed first. If set to NO the constructors will appear in the +# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. +# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief +# member documentation. +# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting +# detailed member documentation. # The default value is: NO. SORT_MEMBERS_CTORS_1ST = YES -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the -# hierarchy of group names into alphabetical order. If set to NO (the default) -# the group names will appear in their defined order. +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy +# of group names into alphabetical order. If set to NO the group names will +# appear in their defined order. # The default value is: NO. SORT_GROUP_NAMES = YES -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be -# sorted by fully-qualified names, including namespaces. If set to -# NO (the default), the class list will be sorted only by class name, -# not including the namespace part. +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by +# fully-qualified names, including namespaces. If set to NO, the class list will +# be sorted only by class name, not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the -# alphabetical list. +# Note: This option applies only to the class list, not to the alphabetical +# list. # The default value is: NO. SORT_BY_SCOPE_NAME = NO -# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to -# do proper type resolution of all parameters of a function it will reject a -# match between the prototype and the implementation of a member function even -# if there is only one candidate or it is obvious which candidate to choose -# by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen -# will still accept a match between prototype and implementation in such cases. +# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper +# type resolution of all parameters of a function it will reject a match between +# the prototype and the implementation of a member function even if there is +# only one candidate or it is obvious which candidate to choose by doing a +# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still +# accept a match between prototype and implementation in such cases. # The default value is: NO. STRICT_PROTO_MATCHING = NO -# The GENERATE_TODOLIST tag can be used to enable (YES) or -# disable (NO) the todo list. This list is created by putting \todo -# commands in the documentation. +# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo +# list. This list is created by putting \todo commands in the documentation. # The default value is: YES. GENERATE_TODOLIST = YES -# The GENERATE_TESTLIST tag can be used to enable (YES) or -# disable (NO) the test list. This list is created by putting \test -# commands in the documentation. +# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test +# list. This list is created by putting \test commands in the documentation. # The default value is: YES. GENERATE_TESTLIST = YES -# The GENERATE_BUGLIST tag can be used to enable (YES) or -# disable (NO) the bug list. This list is created by putting \bug -# commands in the documentation. +# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug +# list. This list is created by putting \bug commands in the documentation. # The default value is: YES. GENERATE_BUGLIST = YES -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or -# disable (NO) the deprecated list. This list is created by putting -# \deprecated commands in the documentation. +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) +# the deprecated list. This list is created by putting \deprecated commands in +# the documentation. # The default value is: YES. GENERATE_DEPRECATEDLIST= YES -# The ENABLED_SECTIONS tag can be used to enable conditional -# documentation sections, marked by \if sectionname ... \endif. +# The ENABLED_SECTIONS tag can be used to enable conditional documentation +# sections, marked by \if ... \endif and \cond +# ... \endcond blocks. ENABLED_SECTIONS = -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines -# the initial value of a variable or macro consists of for it to appear in -# the documentation. If the initializer consists of more lines than specified -# here it will be hidden. Use a value of 0 to hide initializers completely. -# The appearance of the initializer of individual variables and macros in the -# documentation can be controlled using \showinitializer or \hideinitializer -# command in the documentation regardless of this setting. +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the +# initial value of a variable or macro / define can have for it to appear in the +# documentation. If the initializer consists of more lines than specified here +# it will be hidden. Use a value of 0 to hide initializers completely. The +# appearance of the value of individual variables and macros / defines can be +# controlled using \showinitializer or \hideinitializer command in the +# documentation regardless of this setting. # Minimum value: 0, maximum value: 10000, default value: 30. MAX_INITIALIZER_LINES = 30 -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated -# at the bottom of the documentation of classes and structs. If set to YES the +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at +# the bottom of the documentation of classes and structs. If set to YES, the # list will mention the files that were used to generate the documentation. # The default value is: YES. SHOW_USED_FILES = YES -# Set the SHOW_FILES tag to NO to disable the generation of the Files page. -# This will remove the Files entry from the Quick Index and from the -# Folder Tree View (if specified). +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This +# will remove the Files entry from the Quick Index and from the Folder Tree View +# (if specified). # The default value is: YES. SHOW_FILES = YES -# Set the SHOW_NAMESPACES tag to NO to disable the generation of the -# Namespaces page. -# This will remove the Namespaces entry from the Quick Index -# and from the Folder Tree View (if specified). +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces +# page. This will remove the Namespaces entry from the Quick Index and from the +# Folder Tree View (if specified). # The default value is: YES. SHOW_NAMESPACES = YES @@ -661,106 +666,113 @@ SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via -# popen()) the command , where is the value of -# the FILE_VERSION_FILTER tag, and is the name of an input file -# provided by doxygen. Whatever the program writes to standard output -# is used as the file version. See the manual for examples. +# popen()) the command command input-file, where command is the value of the +# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided +# by doxygen. Whatever the program writes to standard output is used as the file +# version. For an example see the documentation. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed # by doxygen. The layout file controls the global structure of the generated # output files in an output format independent way. To create the layout file -# that represents doxygen's defaults, run doxygen with the -l option. -# You can optionally specify a file name after the option, if omitted -# DoxygenLayout.xml will be used as the name of the layout file. +# that represents doxygen's defaults, run doxygen with the -l option. You can +# optionally specify a file name after the option, if omitted DoxygenLayout.xml +# will be used as the name of the layout file. # -# Note that if you run doxygen from a directory containing a file -# called DoxygenLayout.xml, doxygen will parse it automatically even -# if the LAYOUT_FILE tag is left empty. +# Note that if you run doxygen from a directory containing a file called +# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE +# tag is left empty. LAYOUT_FILE = -# The CITE_BIB_FILES tag can be used to specify one or more bib files -# containing the references data. This must be a list of .bib files. The -# .bib extension is automatically appended if omitted. Using this command -# requires the bibtex tool to be installed. See also -# http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style -# of the bibliography can be controlled using LATEX_BIB_STYLE. To use this -# feature you need bibtex and perl available in the search path. +# The CITE_BIB_FILES tag can be used to specify one or more bib files containing +# the reference definitions. This must be a list of .bib files. The .bib +# extension is automatically appended if omitted. This requires the bibtex tool +# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. +# For LaTeX the style of the bibliography can be controlled using +# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the +# search path. See also \cite for info how to create references. CITE_BIB_FILES = #--------------------------------------------------------------------------- -# configuration options related to warning and progress messages +# Configuration options related to warning and progress messages #--------------------------------------------------------------------------- -# The QUIET tag can be used to turn on/off the messages that are generated -# by doxygen. Possible values are YES and NO. If left blank NO is used. +# The QUIET tag can be used to turn on/off the messages that are generated to +# standard output by doxygen. If QUIET is set to YES this implies that the +# messages are off. # The default value is: NO. QUIET = YES # The WARNINGS tag can be used to turn on/off the warning messages that are -# generated by doxygen. Possible values are YES and NO. If left blank -# NO is used. +# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES +# this implies that the warnings are on. # # Tip: Turn warnings on while writing the documentation. # The default value is: YES. WARNINGS = YES -# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings -# for undocumented members. If EXTRACT_ALL is set to YES then this flag will -# automatically be disabled. +# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate +# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag +# will automatically be disabled. # The default value is: YES. WARN_IF_UNDOCUMENTED = YES -# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some -# parameters in a documented function, or documenting parameters that -# don't exist or using markup commands wrongly. +# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some parameters +# in a documented function, or documenting parameters that don't exist or using +# markup commands wrongly. # The default value is: YES. WARN_IF_DOC_ERROR = YES -# The WARN_NO_PARAMDOC option can be enabled to get warnings for -# functions that are documented, but have no documentation for their parameters -# or return value. If set to NO (the default) doxygen will only warn about -# wrong or incomplete parameter documentation, but not about the absence of -# documentation. +# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that +# are documented, but have no documentation for their parameters or return +# value. If set to NO, doxygen will only warn about wrong or incomplete +# parameter documentation, but not about the absence of documentation. # The default value is: NO. WARN_NO_PARAMDOC = NO -# The WARN_FORMAT tag determines the format of the warning messages that -# doxygen can produce. The string should contain the $file, $line, and $text -# tags, which will be replaced by the file and line number from which the -# warning originated and the warning text. Optionally the format may contain -# $version, which will be replaced by the version of the file (if it could -# be obtained via FILE_VERSION_FILTER) +# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when +# a warning is encountered. +# The default value is: NO. + +WARN_AS_ERROR = NO + +# The WARN_FORMAT tag determines the format of the warning messages that doxygen +# can produce. The string should contain the $file, $line, and $text tags, which +# will be replaced by the file and line number from which the warning originated +# and the warning text. Optionally the format may contain $version, which will +# be replaced by the version of the file (if it could be obtained via +# FILE_VERSION_FILTER) # The default value is: $file:$line: $text. WARN_FORMAT = "$file:$line: $text" -# The WARN_LOGFILE tag can be used to specify a file to which warning -# and error messages should be written. If left blank the output is written -# to stderr. +# The WARN_LOGFILE tag can be used to specify a file to which warning and error +# messages should be written. If left blank the output is written to standard +# error (stderr). WARN_LOGFILE = #--------------------------------------------------------------------------- -# configuration options related to the input files +# Configuration options related to the input files #--------------------------------------------------------------------------- -# The INPUT tag can be used to specify the files and/or directories that contain -# documented source files. You may enter file names like "myfile.cpp" or -# directories like "/usr/src/myproject". Separate the files or directories -# with spaces. +# The INPUT tag is used to specify the files and/or directories that contain +# documented source files. You may enter file names like myfile.cpp or +# directories like /usr/src/myproject. Separate the files or directories with +# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING # Note: If this tag is empty the current directory is searched. -INPUT = ../src/bin/d2 \ +INPUT = ../src/bin/agent \ + ../src/bin/d2 \ ../src/bin/dhcp4 \ ../src/bin/dhcp6 \ ../src/bin/perfdhcp \ @@ -781,6 +793,7 @@ INPUT = ../src/bin/d2 \ ../src/lib/eval \ ../src/lib/exceptions \ ../src/lib/hooks \ + ../src/lib/http \ ../src/lib/log \ ../src/lib/log/compiler \ ../src/lib/log/interprocess \ @@ -796,23 +809,27 @@ INPUT = ../src/bin/d2 \ devel # This tag can be used to specify the character encoding of the source files -# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is -# also the default input encoding. Doxygen uses libiconv (or the iconv built -# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for -# the list of possible encodings. +# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses +# libiconv (or the iconv built into libc) for the transcoding. See the libiconv +# documentation (see: http://www.gnu.org/software/libiconv) for the list of +# possible encodings. # The default value is: UTF-8. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank the following patterns are tested: -# *.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii, .ixx, *.ipp, *.i++, -# *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, .h++, *.cs, -# *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, .md, -# *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, -# *.qsf, *.as and *.js. +# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and +# *.h) to filter out the source-files in the directories. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# read by doxygen. +# +# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, +# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, +# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, +# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f, *.for, *.tcl, +# *.vhd, *.vhdl, *.ucf, *.qsf, *.as and *.js. FILE_PATTERNS = *.c \ *.cc \ @@ -820,8 +837,8 @@ FILE_PATTERNS = *.c \ *.hpp \ *.dox -# The RECURSIVE tag can be used to turn specify whether or not subdirectories -# should be searched for input files as well. +# The RECURSIVE tag can be used to specify whether or not subdirectories should +# be searched for input files as well. # The default value is: NO. RECURSIVE = NO @@ -829,6 +846,7 @@ RECURSIVE = NO # The EXCLUDE tag can be used to specify files and/or directories that should be # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. +# # Note that relative paths are relative to the directory from which doxygen is # run. @@ -845,9 +863,10 @@ EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. Note that the wildcards are matched -# against the file with absolute path, so to exclude all test directories -# for example use the pattern */test/* +# certain files from those directories. +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories for example use the pattern */test/* EXCLUDE_PATTERNS = */*-placeholder.* \ */cpp/*.py @@ -858,76 +877,86 @@ EXCLUDE_PATTERNS = */*-placeholder.* \ # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test # -# Note that the wildcards are matched against the file with absolute -# path, so to exclude all test directories use the pattern */test/* +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories use the pattern */test/* EXCLUDE_SYMBOLS = -# The EXAMPLE_PATH tag can be used to specify one or more files or -# directories that contain example code fragments that are included (see -# the \include command). +# The EXAMPLE_PATH tag can be used to specify one or more files or directories +# that contain example code fragments that are included (see the \include +# command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank all files are included. +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and +# *.h) to filter out the source-files in the directories. If left blank all +# files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude -# commands irrespective of the value of the RECURSIVE tag. +# searched for input files to be used with the \include or \dontinclude commands +# irrespective of the value of the RECURSIVE tag. # The default value is: NO. EXAMPLE_RECURSIVE = NO -# The IMAGE_PATH tag can be used to specify one or more files or -# directories that contain image that are included in the documentation (see -# the \image command). +# The IMAGE_PATH tag can be used to specify one or more files or directories +# that contain images that are to be included in the documentation (see the +# \image command). -IMAGE_PATH = ../doc/images ../src/lib/hooks/images ../src/bin/d2/images ../src/lib/dhcpsrv/images +IMAGE_PATH = ../doc/images \ + ../src/lib/hooks/images \ + ../src/bin/d2/images \ + ../src/lib/dhcpsrv/images # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command , where -# is the value of the INPUT_FILTER tag, and is the name of an -# input file. Doxygen will then use the output that the filter program writes -# to standard output. -# If FILTER_PATTERNS is specified, this tag will be -# ignored. +# by executing (via popen()) the command: +# +# +# +# where is the value of the INPUT_FILTER tag, and is the +# name of an input file. Doxygen will then use the output that the filter +# program writes to standard output. If FILTER_PATTERNS is specified, this tag +# will be ignored. # -# Note that the filter must not add or remove lines; it is applied -# before the code is scanned, but not when the output code is -# generated. If lines are added or removed, the anchors will not be -# placed correctly. +# Note that the filter must not add or remove lines; it is applied before the +# code is scanned, but not when the output code is generated. If lines are added +# or removed, the anchors will not be placed correctly. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. -# Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. -# The filters are a list of the form: -# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further -# info on how filters are used. If FILTER_PATTERNS is empty or if -# non of the patterns match the file name, INPUT_FILTER is applied. +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: pattern=filter +# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how +# filters are used. If the FILTER_PATTERNS tag is empty or if none of the +# patterns match the file name, INPUT_FILTER is applied. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER) will be used to filter the input files when producing source -# files to browse (i.e. when SOURCE_BROWSER is set to YES). +# INPUT_FILTER) will also be used to filter the input files that are used for +# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). # The default value is: NO. FILTER_SOURCE_FILES = NO # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file -# pattern. A pattern will override the setting for FILTER_PATTERN (if any) -# and it is also possible to disable source filtering for a specific pattern -# using *.ext= (so without naming a filter). This option only has effect when -# FILTER_SOURCE_FILES is enabled. +# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and +# it is also possible to disable source filtering for a specific pattern using +# *.ext= (so without naming a filter). +# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. FILTER_SOURCE_PATTERNS = @@ -939,49 +968,47 @@ FILTER_SOURCE_PATTERNS = USE_MDFILE_AS_MAINPAGE = #--------------------------------------------------------------------------- -# configuration options related to source browsing +# Configuration options related to source browsing #--------------------------------------------------------------------------- -# If the SOURCE_BROWSER tag is set to YES then a list of source files will -# be generated. Documented entities will be cross-referenced with these sources. -# Note: To get rid of all source code in the generated output, make sure also -# VERBATIM_HEADERS is set to NO. +# If the SOURCE_BROWSER tag is set to YES then a list of source files will be +# generated. Documented entities will be cross-referenced with these sources. +# +# Note: To get rid of all source code in the generated output, make sure that +# also VERBATIM_HEADERS is set to NO. # The default value is: NO. SOURCE_BROWSER = YES -# Setting the INLINE_SOURCES tag to YES will include the body -# of functions and classes directly in the documentation. +# Setting the INLINE_SOURCES tag to YES will include the body of functions, +# classes and enums directly into the documentation. # The default value is: NO. INLINE_SOURCES = NO -# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct -# doxygen to hide any special comment blocks from generated source code -# fragments. Normal C, C++ and Fortran comments will always remain visible. +# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any +# special comment blocks from generated source code fragments. Normal C, C++ and +# Fortran comments will always remain visible. # The default value is: YES. STRIP_CODE_COMMENTS = YES -# If the REFERENCED_BY_RELATION tag is set to YES -# then for each documented function all documented -# functions referencing it will be listed. +# If the REFERENCED_BY_RELATION tag is set to YES then for each documented +# function all documented functions referencing it will be listed. # The default value is: NO. REFERENCED_BY_RELATION = YES -# If the REFERENCES_RELATION tag is set to YES -# then for each documented function all documented entities -# called/used by that function will be listed. +# If the REFERENCES_RELATION tag is set to YES then for each documented function +# all documented entities called/used by that function will be listed. # The default value is: NO. REFERENCES_RELATION = YES -# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) -# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from -# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will -# link to the source code. -# Otherwise they will link to the documentation. +# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set +# to YES then the hyperlinks from functions in REFERENCES_RELATION and +# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will +# link to the documentation. # The default value is: YES. REFERENCES_LINK_SOURCE = YES @@ -996,11 +1023,11 @@ REFERENCES_LINK_SOURCE = YES SOURCE_TOOLTIPS = YES -# If the USE_HTAGS tag is set to YES then the references to source code -# will point to the HTML generated by the htags(1) tool instead of doxygen -# built-in source browser. The htags tool is part of GNU's global source -# tagging system (see http://www.gnu.org/software/global/global.html). You -# will need version 4.8.6 or higher. +# If the USE_HTAGS tag is set to YES then the references to source code will +# point to the HTML generated by the htags(1) tool instead of doxygen built-in +# source browser. The htags tool is part of GNU's global source tagging system +# (see http://www.gnu.org/software/global/global.html). You will need version +# 4.8.6 or higher. # # To use it do the following: # - Install the latest version of global @@ -1018,102 +1045,134 @@ SOURCE_TOOLTIPS = YES USE_HTAGS = NO -# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen -# will generate a verbatim copy of the header file for each class for -# which an include is specified. Set to NO to disable this. +# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a +# verbatim copy of the header file for each class for which an include is +# specified. Set to NO to disable this. +# See also: Section \class. # The default value is: YES. VERBATIM_HEADERS = YES +# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the +# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the +# cost of reduced performance. This can be particularly helpful with template +# rich C++ code for which doxygen's built-in parser lacks the necessary type +# information. +# Note: The availability of this option depends on whether or not doxygen was +# generated with the -Duse-libclang=ON option for CMake. +# The default value is: NO. + +CLANG_ASSISTED_PARSING = NO + +# If clang assisted parsing is enabled you can provide the compiler with command +# line options that you would normally use when invoking the compiler. Note that +# the include paths will already be set by doxygen for the files and directories +# specified with INPUT and INCLUDE_PATH. +# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. + +CLANG_OPTIONS = + #--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index +# Configuration options related to the alphabetical class index #--------------------------------------------------------------------------- -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index -# of all compounds will be generated. Enable this if the project -# contains a lot of classes, structs, unions or interfaces. +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all +# compounds will be generated. Enable this if the project contains a lot of +# classes, structs, unions or interfaces. # The default value is: YES. ALPHABETICAL_INDEX = YES -# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then -# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns -# in which this list will be split. +# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in +# which the alphabetical index list will be split. # Minimum value: 1, maximum value: 20, default value: 5. # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. COLS_IN_ALPHA_INDEX = 2 -# In case all classes in a project start with a common prefix, all -# classes will be put under the same header in the alphabetical index. -# The IGNORE_PREFIX tag can be used to specify one or more prefixes that -# should be ignored while generating the index headers. +# In case all classes in a project start with a common prefix, all classes will +# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag +# can be used to specify a prefix (or a list of prefixes) that should be ignored +# while generating the index headers. # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. IGNORE_PREFIX = #--------------------------------------------------------------------------- -# configuration options related to the HTML output +# Configuration options related to the HTML output #--------------------------------------------------------------------------- -# If the GENERATE_HTML tag is set to YES Doxygen will generate HTML output. +# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output # The default value is: YES. GENERATE_HTML = YES -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. # The default directory is: html. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_OUTPUT = ../html -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for -# each generated HTML page (for example: .htm,.php,.asp). +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each +# generated HTML page (for example: .htm, .php, .asp). # The default value is: .html. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_FILE_EXTENSION = .html -# The HTML_HEADER tag can be used to specify a personal HTML header for -# each generated HTML page. If it is left blank doxygen will generate a -# standard header. Note that when using a custom header you are responsible -# for the proper inclusion of any scripts and style sheets that doxygen -# needs, which is dependent on the configuration options used. -# It is advised to generate a default header using "doxygen -w html -# header.html footer.html stylesheet.css YourConfigFile" and then modify -# that header. Note that the header is subject to change so you typically -# have to redo this when upgrading to a newer version of doxygen or when -# changing the value of configuration settings such as GENERATE_TREEVIEW! +# The HTML_HEADER tag can be used to specify a user-defined HTML header file for +# each generated HTML page. If the tag is left blank doxygen will generate a +# standard header. +# +# To get valid HTML the header file that includes any scripts and style sheets +# that doxygen needs, which is dependent on the configuration options used (e.g. +# the setting GENERATE_TREEVIEW). It is highly recommended to start with a +# default header using +# doxygen -w html new_header.html new_footer.html new_stylesheet.css +# YourConfigFile +# and then modify the file new_header.html. See also section "Doxygen usage" +# for information on how to generate the default header that doxygen normally +# uses. +# Note: The header is subject to change so you typically have to regenerate the +# default header when upgrading to a newer version of doxygen. For a description +# of the possible markers and block names see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_HEADER = -# The HTML_FOOTER tag can be used to specify a personal HTML footer for -# each generated HTML page. If it is left blank doxygen will generate a -# standard footer. +# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each +# generated HTML page. If the tag is left blank doxygen will generate a standard +# footer. See HTML_HEADER for more information on how to generate a default +# footer and what special commands can be used inside the footer. See also +# section "Doxygen usage" for information on how to generate the default footer +# that doxygen normally uses. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_FOOTER = -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading -# style sheet that is used by each HTML page. It can be used to -# fine-tune the look of the HTML output. If left blank doxygen will -# generate a default style sheet. Note that it is recommended to use -# HTML_EXTRA_STYLESHEET instead of this one, as it is more robust and this -# tag will in the future become obsolete. +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style +# sheet that is used by each HTML page. It can be used to fine-tune the look of +# the HTML output. If left blank doxygen will generate a default style sheet. +# See also section "Doxygen usage" for information on how to generate the style +# sheet that doxygen normally uses. +# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as +# it is more robust and this tag (HTML_STYLESHEET) will in the future become +# obsolete. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_STYLESHEET = -# The HTML_EXTRA_STYLESHEET tag can be used to specify an additional -# user-defined cascading style sheet that is included after the standard -# style sheets created by doxygen. Using this option one can overrule -# certain style aspects. This is preferred over using HTML_STYLESHEET -# since it does not replace the standard style sheet and is therefor more -# robust against future updates. Doxygen will copy the style sheet file to -# the output directory. +# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined +# cascading style sheets that are included after the standard style sheets +# created by doxygen. Using this option one can overrule certain style aspects. +# This is preferred over using HTML_STYLESHEET since it does not replace the +# standard style sheet and is therefore more robust against future updates. +# Doxygen will copy the style sheet files to the output directory. +# Note: The order of the extra style sheet files is of importance (e.g. the last +# style sheet in the list overrules the setting of the previous ones in the +# list). For an example see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_STYLESHEET = @@ -1121,47 +1180,48 @@ HTML_EXTRA_STYLESHEET = # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the HTML output directory. Note # that these files will be copied to the base HTML output directory. Use the -# $relpath$ marker in the HTML_HEADER and/or HTML_FOOTER files to load these -# files. In the HTML_STYLESHEET file, use the file name only. Also note that -# the files will be copied as-is; there are no commands or markers available. +# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these +# files. In the HTML_STYLESHEET file, use the file name only. Also note that the +# files will be copied as-is; there are no commands or markers available. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_FILES = -# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. -# Doxygen will adjust the colors in the style sheet and background images -# according to this color. Hue is specified as an angle on a colorwheel, -# see http://en.wikipedia.org/wiki/Hue for more information. -# For instance the value 0 represents red, 60 is yellow, 120 is green, -# 180 is cyan, 240 is blue, 300 purple, and 360 is red again. +# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen +# will adjust the colors in the style sheet and background images according to +# this color. Hue is specified as an angle on a colorwheel, see +# http://en.wikipedia.org/wiki/Hue for more information. For instance the value +# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 +# purple, and 360 is red again. # Minimum value: 0, maximum value: 359, default value: 220. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_HUE = 220 -# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of -# the colors in the HTML output. For a value of 0 the output will use -# grayscales only. A value of 255 will produce the most vivid colors. +# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors +# in the HTML output. For a value of 0 the output will use grayscales only. A +# value of 255 will produce the most vivid colors. # Minimum value: 0, maximum value: 255, default value: 100. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_SAT = 100 -# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to -# the luminance component of the colors in the HTML output. Values below -# 100 gradually make the output lighter, whereas values above 100 make -# the output darker. The value divided by 100 is the actual gamma applied, -# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, -# and 100 does not change the gamma. +# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the +# luminance component of the colors in the HTML output. Values below 100 +# gradually make the output lighter, whereas values above 100 make the output +# darker. The value divided by 100 is the actual gamma applied, so 80 represents +# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not +# change the gamma. # Minimum value: 40, maximum value: 240, default value: 80. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_GAMMA = 80 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML -# page will contain the date and time when the page was generated. Setting -# this to NO can help when comparing the output of multiple runs. -# The default value is: YES. +# page will contain the date and time when the page was generated. Setting this +# to YES can help to show when doxygen was last run and thus if the +# documentation is up to date. +# The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_TIMESTAMP = YES @@ -1174,265 +1234,269 @@ HTML_TIMESTAMP = YES HTML_DYNAMIC_SECTIONS = YES -# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of -# entries shown in the various tree structured indices initially; the user -# can expand and collapse entries dynamically later on. Doxygen will expand -# the tree to such a level that at most the specified number of entries are -# visible (unless a fully collapsed tree already exceeds this amount). -# So setting the number of entries 1 will produce a full collapsed tree by -# default. 0 is a special value representing an infinite number of entries -# and will result in a full expanded tree by default. +# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries +# shown in the various tree structured indices initially; the user can expand +# and collapse entries dynamically later on. Doxygen will expand the tree to +# such a level that at most the specified number of entries are visible (unless +# a fully collapsed tree already exceeds this amount). So setting the number of +# entries 1 will produce a full collapsed tree by default. 0 is a special value +# representing an infinite number of entries and will result in a full expanded +# tree by default. # Minimum value: 0, maximum value: 9999, default value: 100. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_INDEX_NUM_ENTRIES = 100 -# If the GENERATE_DOCSET tag is set to YES, additional index files -# will be generated that can be used as input for Apple's Xcode 3 -# integrated development environment, introduced with OSX 10.5 (Leopard). -# To create a documentation set, doxygen will generate a Makefile in the -# HTML output directory. Running make will produce the docset in that -# directory and running "make install" will install the docset in -# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find -# it at startup. -# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html +# If the GENERATE_DOCSET tag is set to YES, additional index files will be +# generated that can be used as input for Apple's Xcode 3 integrated development +# environment (see: http://developer.apple.com/tools/xcode/), introduced with +# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a +# Makefile in the HTML output directory. Running make will produce the docset in +# that directory and running make install will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at +# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html # for more information. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_DOCSET = NO -# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the -# feed. A documentation feed provides an umbrella under which multiple -# documentation sets from a single provider (such as a company or product suite) -# can be grouped. +# This tag determines the name of the docset feed. A documentation feed provides +# an umbrella under which multiple documentation sets from a single provider +# (such as a company or product suite) can be grouped. # The default value is: Doxygen generated docs. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_FEEDNAME = "Doxygen generated docs" -# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that -# should uniquely identify the documentation set bundle. This should be a -# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen -# will append .docset to the name. +# This tag specifies a string that should uniquely identify the documentation +# set bundle. This should be a reverse domain-name style string, e.g. +# com.mycompany.MyDocSet. Doxygen will append .docset to the name. # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_BUNDLE_ID = org.doxygen.Project -# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely -# identify the documentation publisher. This should be a reverse domain-name -# style string, e.g. com.mycompany.MyDocSet.documentation. +# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify +# the documentation publisher. This should be a reverse domain-name style +# string, e.g. com.mycompany.MyDocSet.documentation. # The default value is: org.doxygen.Publisher. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_PUBLISHER_ID = org.doxygen.Publisher -# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. +# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. # The default value is: Publisher. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_PUBLISHER_NAME = Publisher -# If the GENERATE_HTMLHELP tag is set to YES, additional index files -# will be generated that can be used as input for tools like the -# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) -# of the generated HTML documentation. +# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three +# additional HTML index files: index.hhp, index.hhc, and index.hhk. The +# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop +# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on +# Windows. +# +# The HTML Help Workshop contains a compiler that can convert all HTML output +# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML +# files are now used as the Windows 98 help format, and will replace the old +# Windows help format (.hlp) on all Windows platforms in the future. Compressed +# HTML files also contain an index, a table of contents, and you can search for +# words in the documentation. The HTML workshop also contains a viewer for +# compressed HTML files. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_HTMLHELP = NO -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can -# be used to specify the file name of the resulting .chm file. You -# can add a path in front of the file if the result should not be +# The CHM_FILE tag can be used to specify the file name of the resulting .chm +# file. You can add a path in front of the file if the result should not be # written to the html output directory. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. CHM_FILE = -# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can -# be used to specify the location (absolute path including file name) of -# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run -# the HTML help compiler on the generated index.hhp. +# The HHC_LOCATION tag can be used to specify the location (absolute path +# including file name) of the HTML help compiler (hhc.exe). If non-empty, +# doxygen will try to run the HTML help compiler on the generated index.hhp. +# The file has to be specified with full path. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. HHC_LOCATION = -# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag -# controls if a separate .chi index file is generated (YES) or that -# it should be included in the master .chm file (NO). +# The GENERATE_CHI flag controls if a separate .chi index file is generated +# (YES) or that it should be included in the master .chm file (NO). # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. GENERATE_CHI = NO -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING -# is used to encode HtmlHelp index (hhk), content (hhc) and project file -# content. +# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) +# and project file content. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. CHM_INDEX_ENCODING = -# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag -# controls whether a binary table of contents is generated (YES) or a -# normal table of contents (NO) in the .chm file. +# The BINARY_TOC flag controls whether a binary table of contents is generated +# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it +# enables the Previous and Next buttons. # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. BINARY_TOC = NO -# The TOC_EXPAND flag can be set to YES to add extra items for group members -# to the contents of the HTML help documentation and to the tree view. +# The TOC_EXPAND flag can be set to YES to add extra items for group members to +# the table of contents of the HTML help documentation and to the tree view. # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. TOC_EXPAND = NO # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and -# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated -# that can be used as input for Qt's qhelpgenerator to generate a -# Qt Compressed Help (.qch) of the generated HTML documentation. +# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that +# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help +# (.qch) of the generated HTML documentation. # The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. +# This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_QHP = NO -# If the QHG_LOCATION tag is specified, the QCH_FILE tag can -# be used to specify the file name of the resulting .qch file. -# The path specified is relative to the HTML output folder. +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify +# the file name of the resulting .qch file. The path specified is relative to +# the HTML output folder. # This tag requires that the tag GENERATE_QHP is set to YES. QCH_FILE = -# The QHP_NAMESPACE tag specifies the namespace to use when generating -# Qt Help Project output. For more information please see -# http://doc.trolltech.com/qthelpproject.html#namespace +# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help +# Project output. For more information please see Qt Help Project / Namespace +# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace). # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_QHP is set to YES. QHP_NAMESPACE = -# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating -# Qt Help Project output. For more information please see -# http://doc.trolltech.com/qthelpproject.html#virtual-folders +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt +# Help Project output. For more information please see Qt Help Project / Virtual +# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual- +# folders). # The default value is: doc. # This tag requires that the tag GENERATE_QHP is set to YES. QHP_VIRTUAL_FOLDER = doc -# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to -# add. For more information please see -# http://doc.trolltech.com/qthelpproject.html#custom-filters +# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom +# filter to add. For more information please see Qt Help Project / Custom +# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- +# filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_NAME = -# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the -# custom filter to add. For more information please see -# -# Qt Help Project / Custom Filters. +# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the +# custom filter to add. For more information please see Qt Help Project / Custom +# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- +# filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this -# project's -# filter section matches. -# -# Qt Help Project / Filter Attributes. +# project's filter section matches. Qt Help Project / Filter Attributes (see: +# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_SECT_FILTER_ATTRS = -# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can -# be used to specify the location of Qt's qhelpgenerator. -# If non-empty doxygen will try to run qhelpgenerator on the generated -# .qhp file. +# The QHG_LOCATION tag can be used to specify the location of Qt's +# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the +# generated .qhp file. # This tag requires that the tag GENERATE_QHP is set to YES. QHG_LOCATION = -# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files -# will be generated, which together with the HTML files, form an Eclipse help -# plugin. To install this plugin and make it available under the help contents -# menu in Eclipse, the contents of the directory containing the HTML and XML -# files needs to be copied into the plugins directory of eclipse. The name of -# the directory within the plugins directory should be the same as -# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before -# the help appears. +# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be +# generated, together with the HTML files, they form an Eclipse help plugin. To +# install this plugin and make it available under the help contents menu in +# Eclipse, the contents of the directory containing the HTML and XML files needs +# to be copied into the plugins directory of eclipse. The name of the directory +# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. +# After copying Eclipse needs to be restarted before the help appears. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_ECLIPSEHELP = NO -# A unique identifier for the eclipse help plugin. When installing the plugin -# the directory name containing the HTML and XML files should also have -# this name. +# A unique identifier for the Eclipse help plugin. When installing the plugin +# the directory name containing the HTML and XML files should also have this +# name. Each documentation set should have its own identifier. # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. ECLIPSE_DOC_ID = org.doxygen.Project -# The DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) -# at top of each HTML page. The value NO (the default) enables the index and -# the value YES disables it. Since the tabs have the same information as the -# navigation tree you can set this option to NO if you already set -# GENERATE_TREEVIEW to YES. +# If you want full control over the layout of the generated HTML pages it might +# be necessary to disable the index and replace it with your own. The +# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top +# of each HTML page. A value of NO enables the index and the value YES disables +# it. Since the tabs in the index contain the same information as the navigation +# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. DISABLE_INDEX = NO # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index -# structure should be generated to display hierarchical information. -# If the tag value is set to YES, a side panel will be generated -# containing a tree-like index structure (just like the one that -# is generated for HTML Help). For this to work a browser that supports -# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). -# Windows users are probably better off using the HTML help feature. -# Since the tree basically has the same information as the tab index you -# could consider to set DISABLE_INDEX to NO when enabling this option. +# structure should be generated to display hierarchical information. If the tag +# value is set to YES, a side panel will be generated containing a tree-like +# index structure (just like the one that is generated for HTML Help). For this +# to work a browser that supports JavaScript, DHTML, CSS and frames is required +# (i.e. any modern browser). Windows users are probably better off using the +# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can +# further fine-tune the look of the index. As an example, the default style +# sheet generated by doxygen has an example that shows how to put an image at +# the root of the tree instead of the PROJECT_NAME. Since the tree basically has +# the same information as the tab index, you could consider setting +# DISABLE_INDEX to YES when enabling this option. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_TREEVIEW = YES -# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values -# (range [0,1..20]) that doxygen will group on one line in the generated HTML -# documentation. Note that a value of 0 will completely suppress the enum -# values from appearing in the overview section. +# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that +# doxygen will group on one line in the generated HTML documentation. +# +# Note that a value of 0 will completely suppress the enum values from appearing +# in the overview section. # Minimum value: 0, maximum value: 20, default value: 4. # This tag requires that the tag GENERATE_HTML is set to YES. ENUM_VALUES_PER_LINE = 4 -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be -# used to set the initial width (in pixels) of the frame in which the tree -# is shown. +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used +# to set the initial width (in pixels) of the frame in which the tree is shown. # Minimum value: 0, maximum value: 1500, default value: 250. # This tag requires that the tag GENERATE_HTML is set to YES. TREEVIEW_WIDTH = 180 -# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open -# links to external symbols imported via tag files in a separate window. +# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to +# external symbols imported via tag files in a separate window. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. EXT_LINKS_IN_WINDOW = NO -# Use this tag to change the font size of Latex formulas included -# as images in the HTML documentation. The default is 10. Note that -# when you change the font size after a successful doxygen run you need -# to manually remove any form_*.png images from the HTML output directory -# to force them to be regenerated. +# Use this tag to change the font size of LaTeX formulas included as images in +# the HTML documentation. When you change the font size after a successful +# doxygen run you need to manually remove any form_*.png images from the HTML +# output directory to force them to be regenerated. # Minimum value: 8, maximum value: 50, default value: 10. # This tag requires that the tag GENERATE_HTML is set to YES. FORMULA_FONTSIZE = 10 -# Use the FORMULA_TRANPARENT tag to determine whether or not the images +# Use the FORMULA_TRANSPARENT tag to determine whether or not the images # generated for formulas are transparent PNGs. Transparent PNGs are # not supported properly for IE 6.0, but are supported on all modern browsers. # Note that when changing this option you need to delete any form_*.png files @@ -1442,12 +1506,12 @@ FORMULA_FONTSIZE = 10 FORMULA_TRANSPARENT = YES -# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax -# (see http://www.mathjax.org) which uses client side Javascript for the -# rendering instead of using prerendered bitmaps. Use this if you do not -# have LaTeX installed or if you want to formulas look prettier in the HTML -# output. When enabled you may also need to install MathJax separately and -# configure the path to it using the MATHJAX_RELPATH option. +# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see +# http://www.mathjax.org) which uses client side Javascript for the rendering +# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX +# installed or if you want to formulas look prettier in the HTML output. When +# enabled you may also need to install MathJax separately and configure the path +# to it using the MATHJAX_RELPATH option. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. @@ -1463,22 +1527,22 @@ USE_MATHJAX = NO MATHJAX_FORMAT = HTML-CSS -# When MathJax is enabled you need to specify the location relative to the -# HTML output directory using the MATHJAX_RELPATH option. The destination -# directory should contain the MathJax.js script. For instance, if the mathjax -# directory is located at the same level as the HTML output directory, then -# MATHJAX_RELPATH should be ../mathjax. The default value points to -# the MathJax Content Delivery Network so you can quickly see the result without -# installing MathJax. -# However, it is strongly recommended to install a local -# copy of MathJax from http://www.mathjax.org before deployment. +# When MathJax is enabled you need to specify the location relative to the HTML +# output directory using the MATHJAX_RELPATH option. The destination directory +# should contain the MathJax.js script. For instance, if the mathjax directory +# is located at the same level as the HTML output directory, then +# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax +# Content Delivery Network so you can quickly see the result without installing +# MathJax. However, it is strongly recommended to install a local copy of +# MathJax from http://www.mathjax.org before deployment. # The default value is: http://cdn.mathjax.org/mathjax/latest. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest -# The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension -# names that should be enabled during MathJax rendering. +# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax +# extension names that should be enabled during MathJax rendering. For example +# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_EXTENSIONS = @@ -1491,25 +1555,34 @@ MATHJAX_EXTENSIONS = MATHJAX_CODEFILE = -# When the SEARCHENGINE tag is enabled doxygen will generate a search box -# for the HTML output. The underlying search engine uses javascript -# and DHTML and should work on any modern browser. Note that when using -# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets -# (GENERATE_DOCSET) there is already a search function so this one should -# typically be disabled. For large projects the javascript based search engine -# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. +# When the SEARCHENGINE tag is enabled doxygen will generate a search box for +# the HTML output. The underlying search engine uses javascript and DHTML and +# should work on any modern browser. Note that when using HTML help +# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) +# there is already a search function so this one should typically be disabled. +# For large projects the javascript based search engine can be slow, then +# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to +# search using the keyboard; to jump to the search box use + S +# (what the is depends on the OS and browser, but it is typically +# , /