Building from Source¶
Begin be fetching all needed source.
git clone --recursive https://github.com/mdavidsaver/pvxs.git git clone --branch 7.0 https://github.com/epics-base/epics-base.git
Prepare the PVXS source tree:
cat <<EOF > pvxs/configure/RELEASE.local EPICS_BASE=\$(TOP)/../epics-base EOF
make -C epics-base
Install or build libevent >=2.0
On RHEL7 and later.
yum install libevent-devel
On RHEL6 and earlier.
yum install libevent2-devel
apt-get install libevent-dev
To build from source (Requires CMake):
make -C pvxs/bundle libevent # implies .$(EPICS_HOST_ARCH)
For additional archs: eg.
make -C pvxs/bundle libevent.linux-x86_64-debug
make -C pvxs
It is recommended to run automatic unittests when building a new (to you) version of PVXS, or building on a new host.
make -C pvxs runtests
The bundled libevent may be built for some cross compile targets. Currently only cross mingw.
make -C pvxs/bundle libevent.windows-x64-mingw
Including PVXS in your application¶
Including PVXS in an application/IOC using the EPICS Makefiles is straightforward. Add PVXS to the application configure/RELEASE or RELEASE.local file.
cat <<EOF >> configure/RELEASE.local PVXS=/path/to/your/build/of/pvxs EPICS_BASE=/path/to/your/build/of/epics-base EOF
Then add the pvxs and pvxsIoc libraries as a dependencies to your IOC or support module. eg.
PROD_IOC += myioc ... myioc_DBD += pvxsIoc.dbd ... myioc_LIBS += pvxsIoc pvxs myioc_LIBS += $(EPICS_BASE_IOC_LIBS)
The “pvxsIoc” library should only be included for IOCs. It can, and should, be omitted for standalone applications (eg. GUI clients).
Add the pvxs library as a dependency to your executable or library. eg.
PROD_IOC += myapp ... myapp_LIBS += pvxs myapp_LIBS += Com
libevent will be automatically added for linking.
For those interested, this is accomplished with the logic found in “cfg/CONFIG_PVXS_MODULE”.