Note:
The source for lsucpd is written in C++ and expects (almost) full
compliance with the C++20 standard (from 2020). This means gcc/g++
version 12 is problematic. The problem is the lack of support for
the std::format library. g++ version 13 properly implements std::format.
Currently many distributions still use g++ version 12. This a relatively
common problem and there is a solution. Both g++ version 12 or clang++
version 15 can be supported if the 'libfmt' library is available. On
Debian/Ubuntu use 'apt install libfmt-dev' to install the libfmt library
and its associated header file.


To build:
 $ ./autogen.sh
 $ ./configure
 $ make

To install call:
 $ make install
This will most likely need superuser privilege. The executable is placed
in the /usr/local/bin directory while the man page is placed in the
/usr/local/man/man8 directory. The install directory are controlled by
the PREFIX variable in the Makefile. To install executable in the /usr/bin
directory use './configure --prefix=/usr ' instead.

To uninstall the executable and man page call:
 $ make uninstall

To clean out object and executable files from the working directory call:
 $ make clean

To clean out prior to making a tarball (so ./configure needs to be run
on the target system):
 $ make distclean

Rpms are also available. A lsucpd.spec file is included in the tarball
to facilitate building rpms. One way of doing this on a RedHat system
is to place the tarball of the form 'lsucpd-%{version}.tar.gz' in the
/usr/src/redhat/SOURCE directory and the spec file in the
/usr/src/redhat/SPEC directory. Then execute 'rpmbuild -ba lsucpd.spec'
from the "SPEC" directory. [Specifying the
target may help (e.g. 'rpmbuild --target=x86_64 -ba lsucpd.spec') . If
successful that will deposit the binary rpm in the
/usr/src/redhat/RPMS/x86_64 directory and the source rpm in the
/usr/src/redhat/SRPMS directory. Building an rpm on Suse is similar
(although they use their name rather than "redhat" in the above paths).


To build a Linux debian "deb" (binary) package, first untar the tarball,
then change directory to the top level within the lsucpd source. Then:
 # chmod +x debian/rules
 # dpkg-buildpackage -b -rfakeroot
The binary deb packages will be placed in the parent directory (of
the lsucpd source directory) if all goes well.
There is a build_debian.sh script in the tarball's top level directory
that does the above.

Douglas Gilbert
10 August 2023
