PIC-C Compiler by CCS is a software tool designed for programmers who work with Microchip PIC microcontrollers. This compiler supports a wide range of PIC devices, and allows developers to write programs in C language that can be compiled and executed on the target device.
With the help of PIC-C Compiler, programmers can easily develop complex applications for various industries such as industrial automation, automotive control systems, medical devices and more. The compiler comes with an intuitive user interface that allows developers to write, test, and debug their code efficiently.
One of the key features of PIC-C Compiler is its ability to optimize code for size or speed. This saves valuable memory resources and ensures that the program runs faster on the target device. In addition, the compiler includes a comprehensive set of libraries with functions for common tasks such as I/O, math calculations, and more.
Users can take advantage of the compiler's support for inline assembly, which enables them to write low-level code that interacts directly with hardware peripherals. The PIC-C Compiler also includes a range of debugging tools to help users identify and fix errors quickly.
ISC provides Kea packages for Alpine, CentOS, Debian, Fedora, RHEL, and Ubuntu.The recommended method for installing Kea on any of these systems, from theCloudsmith repository for Kea release 2.3.1 or later, is to install the isc-keametapackage. This metapackage is included on all supported distros andinstalls all of the services offered by the Kea software suite.
The real service names on Debian and Ubuntu follow the names of the olderpackages, to maintain compatibility with pre-existing scripts. Asystemd service alias is used to allow users to refer to them with shorternames. Calling systemctl enable on these services requiresthe real service names, which are: isc-kea-dhcp4-server,isc-kea-dhcp6-server, isc-kea-dhcp-ddns-server, andisc-kea-ctrl-agent.
To upgrade to Kea 2.3.2 or later from an earlier version of Kea on Debianand Ubuntu systems, run apt dist-upgrade instead of the usual apt upgrade.Once this upgrade has been completed, it is possible to upgrade to later versionsnormally using apt upgrade on Debian and Ubuntu systems.
Users may notice differences in the packages distributed in Kea versions prior to2.3.2 and those distributed with 2.3.2 and later. As a result of an overhaul of ourpackage design with that release, some packages were renamed or removed.To ensure that upgrades go as smoothly as possible, pay attention towhich packages are being removed and installed by the upgrade transaction,and ensure that all required packages are reinstalled.
This upgrade path issue does not apply to RPM and Alpine systems; however,customers with ISC support contracts who experience difficulties with upgradingpast 2.3.1 are invited to open a ticket in their support queue. Other usersare encouraged to describe their situation on the kea-users mailing list forbest-effort support from other list members.
Some operating systems have split their distribution packages into aruntime and a development package. Thedevelopment package versions, which include header files andlibraries, must be installed to build Kea from the source code.
Boost C++ libraries ( ). The oldest Boost versionused for testing is 1.57 (although Kea may also work with olderversions). The Boost system library must also be installed.Installing a header-only version of Boost is not recommended.
The MySQL client and the client development libraries, when using the--with-mysql configuration flag to build the Kea MySQL databasebackend. In this case, an instance of the MySQL server running locallyor on a machine reachable over a network is required. Note that runningthe unit tests requires a local MySQL server.
The PostgreSQL client and the client development libraries, when using the--with-pgsql configuration flag to build the Kea PostgreSQL databasebackend. In this case an instance of the PostgreSQL server running locallyor on a machine reachable over a network is required. Note that runningthe unit tests requires a local PostgreSQL server.
Sysrepo v1.4.140 and libyang v1.0.240 are needed to connect to a Sysrepodatastore. Earlier versions are no longer supported. When compiling fromsources, the configure switches that can be used are --with-libyang and--with-sysrepo without any parameters. If these dependencies wereinstalled in custom paths, point the switches to them.
The MIT Kerberos 5 or Heimdal libraries are needed by Kea DDNS server to signand verify DNS updates using GSS-TSIG. The configuration switch which enablesthis functionality is --with-gssapi without any parameters. If thesedependencies were installed in custom paths, point the switch to them.
The documentation generation tools Sphinx,texlive with its extensions, and Doxygen, if using the --enable-generate-docsconfiguration option to create the documentation. Specifically,with Fedora, python3-sphinx, texlive, and texlive-collection-latexextra are necessary;with Ubuntu, python3-sphinx, python3-sphinx-rtd-theme, and texlive-binariesare needed. If LaTeX packages are missing, Kea skips PDF generation and producesonly HTML documents.
Although Kea may be available in pre-compiled, ready-to-use packagesfrom operating system vendors, it is open source software written inC++. As such, it is freely available in source code form from ISC as adownloadable tar file. The source code can also be obtained from the KeaGitLab repository at -projects/kea. Thissection describes how to build Kea from the source code.
The code checked out from the git repository does not include thegenerated configure script or the Makefile.in files, nor their related buildfiles. They can be created by running autoreconf with the--install switch. This will run autoconf, aclocal,libtoolize, autoheader, automake, and related commands.
Write access to the Kea repository is only granted to ISC staff.Developers planning to contribute to Kea should check ourContributor'sGuide.The Kea Developer'sGuide contains moreinformation about the process, and describes the requirements forcontributed code to be accepted by ISC.
--with-opensslUse the OpenSSL cryptographic library instead of Botan. By defaultconfigure searches for a valid Botan installation; if one is notfound, Kea searches for OpenSSL. Normally this is not necessary.
--with-site-packagesOnly useful when kea-shell is enabled, this switch causes the kea-shellPython packages to be installed in the specified directory. This ismostly useful for Debian-related distributions. While most systems storePython packages in $prefix/usr/lib/pythonX/site-packages, Debianintroduced a separate directory for packages installed from DEB. SuchPython packages are expected to be installed in/usr/lib/python3/dist-packages.
--with-freeradiusBuild the optional RADIUS hook. This option specifies the path to thepatched version of the FreeRADIUS client. This feature is available inthe subscriber-only version of Kea, and requires the subscription-only RADIUS hook.
--with-freeradius-dictionarySpecify a non-standard location for a FreeRADIUS dictionary file, whichcontains a list of supported RADIUS attributes. This feature is available inthe subscriber-only version of Kea, and requires the subscription-only RADIUS hook.
--with-gtest, --with-gtest-sourceEnable the building of C++ unit tests using the Google Testframework. This option specifies the path to the gtest source. (Ifthe framework is not installed on the system, it can be downloadedfrom )
--enable-generate-docsEnable the rebuilding of Kea documentation. ISC publishes Keadocumentation for each release; however, in some cases it may bedesirable to rebuild it: for example, to change something in thedocs, or to generate new ones from git sources that are not yetreleased.
--enable-generate-parserEnable the generation of parsers using flex or bison. Kea sources include.cc and .h parser files, pre-generated for users' convenience. Bydefault Kea does not use flex or bison, to avoidrequiring installation of unnecessary dependencies for users.However, if anything in the parsers is changed (such as adding a newparameter), flex and bison are required to regenerateparsers. This option permits that.
--enable-generate-messagesEnable the regeneration of messages files from their messages sourcefiles, e.g. regenerate xxx_messages.h and xxx_messages.cc fromxxx_messages.mes using the Kea message compiler. By default Kea isbuilt using these .h and .cc files from the distribution. However, ifanything in a .mes file is changed (such as adding a new message),the Kea message compiler needs to be built and used. This optionpermits that.
Users who have any problems with building Kea using the header-only Boostcode, or who would like to use the Boost system library (assumed for thesake of this example to be located in /usr/pkg/lib), should issue thesecommands:
7fc3f7cf58