I am trying to compile ADAravis on Ubuntu 18.04 and am running into some difficulties. I'm using the following package versions:
epics base-3.15.6
asyn-R4-38
areaDetector-master branch from GitHub
ADGenICam-master branch from GitHub
ADAravis-master branch from GitHub
I installed all prerequisites for the aravis library and compiled aravis 0.7.2 in my /usr/local directory using meson; version 0.7.3 has some header files with function definitions that are incompatible with the master branch of ADAravis because they require additional inputs (e.g. arvcamera.h defines arv_camera_stop_acquisition (ArvCamera *camera, GError **error) whereas the function call in ADAravis.cpp only provides 'ArvCamera' as an input). I can get ADGenIcam to compile without any problems. Then when I try to compile ADAravis, I get the following output:
/opt/epics/synApps/support/areaDetector-master/ADAravis# make clean && make
make -C ./configure clean
make[1]: Entering directory '/opt/epics/synApps/support/areaDetector-master/ADAravis/configure'
rm -rf O.linux-x86_64 O.Common
make[1]: Leaving directory '/opt/epics/synApps/support/areaDetector-master/ADAravis/configure'
make -C ./aravisApp clean
make[1]: Entering directory '/opt/epics/synApps/support/areaDetector-master/ADAravis/aravisApp'
make -C ./src clean
make[2]: Entering directory '/opt/epics/synApps/support/areaDetector-master/ADAravis/aravisApp/src'
rm -rf O.linux-x86_64 O.Common
make[2]: Leaving directory '/opt/epics/synApps/support/areaDetector-master/ADAravis/aravisApp/src'
make -C ./Db clean
make[2]: Entering directory '/opt/epics/synApps/support/areaDetector-master/ADAravis/aravisApp/Db'
rm -rf O.linux-x86_64 O.Common
make[2]: Leaving directory '/opt/epics/synApps/support/areaDetector-master/ADAravis/aravisApp/Db'
make -C ./op clean
make[2]: Entering directory '/opt/epics/synApps/support/areaDetector-master/ADAravis/aravisApp/op'
make[2]: Nothing to be done for 'clean'.
make[2]: Leaving directory '/opt/epics/synApps/support/areaDetector-master/ADAravis/aravisApp/op'
make[1]: Leaving directory '/opt/epics/synApps/support/areaDetector-master/ADAravis/aravisApp'
make -C ./iocs clean
make[1]: Entering directory '/opt/epics/synApps/support/areaDetector-master/ADAravis/iocs'
make -C ./aravisIOC clean
make[2]: Entering directory '/opt/epics/synApps/support/areaDetector-master/ADAravis/iocs/aravisIOC'
make -C ./configure clean
make[3]: Entering directory '/opt/epics/synApps/support/areaDetector-master/ADAravis/iocs/aravisIOC/configure'
rm -rf O.linux-x86_64 O.Common
make[3]: Leaving directory '/opt/epics/synApps/support/areaDetector-master/ADAravis/iocs/aravisIOC/configure'
make -C ./aravisApp clean
make[3]: Entering directory '/opt/epics/synApps/support/areaDetector-master/ADAravis/iocs/aravisIOC/aravisApp'
make -C ./src clean
make[4]: Entering directory '/opt/epics/synApps/support/areaDetector-master/ADAravis/iocs/aravisIOC/aravisApp/src'
rm -rf O.linux-x86_64 O.Common
make[4]: Leaving directory '/opt/epics/synApps/support/areaDetector-master/ADAravis/iocs/aravisIOC/aravisApp/src'
make[3]: Leaving directory '/opt/epics/synApps/support/areaDetector-master/ADAravis/iocs/aravisIOC/aravisApp'
make -C ./iocBoot clean
make[3]: Entering directory '/opt/epics/synApps/support/areaDetector-master/ADAravis/iocs/aravisIOC/iocBoot'
make -C ./iocAravis clean
make[4]: Entering directory '/opt/epics/synApps/support/areaDetector-master/ADAravis/iocs/aravisIOC/iocBoot/iocAravis'
make[4]: Nothing to be done for 'clean'.
make[4]: Leaving directory '/opt/epics/synApps/support/areaDetector-master/ADAravis/iocs/aravisIOC/iocBoot/iocAravis'
make[3]: Leaving directory '/opt/epics/synApps/support/areaDetector-master/ADAravis/iocs/aravisIOC/iocBoot'
make[2]: Leaving directory '/opt/epics/synApps/support/areaDetector-master/ADAravis/iocs/aravisIOC'
make[1]: Leaving directory '/opt/epics/synApps/support/areaDetector-master/ADAravis/iocs'
make -C ./configure install
make[1]: Entering directory '/opt/epics/synApps/support/areaDetector-master/ADAravis/configure'
perl -CSD /opt/epics/base/bin/linux-x86_64/makeMakefile.pl O.linux-x86_64 ../..
mkdir O.Common
make -C O.linux-x86_64 -f ../Makefile TOP=../.. \
T_A=linux-x86_64 install
make[2]: Entering directory '/opt/epics/synApps/support/areaDetector-master/ADAravis/configure/O.linux-x86_64'
perl -CSD /opt/epics/base/bin/linux-x86_64/convertRelease.pl checkRelease
make[2]: Leaving directory '/opt/epics/synApps/support/areaDetector-master/ADAravis/configure/O.linux-x86_64'
make[1]: Leaving directory '/opt/epics/synApps/support/areaDetector-master/ADAravis/configure'
make -C ./aravisApp install
make[1]: Entering directory '/opt/epics/synApps/support/areaDetector-master/ADAravis/aravisApp'
make -C ./src install
make[2]: Entering directory '/opt/epics/synApps/support/areaDetector-master/ADAravis/aravisApp/src'
perl -CSD /opt/epics/base/bin/linux-x86_64/makeMakefile.pl O.linux-x86_64 ../../..
mkdir O.Common
make -C O.linux-x86_64 -f ../Makefile TOP=../../.. \
T_A=linux-x86_64 install
make[3]: Entering directory '/opt/epics/synApps/support/areaDetector-master/ADAravis/aravisApp/src/O.linux-x86_64'
/usr/bin/g++ -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_X86_64_ -DUNIX -Dlinux -O3 -g -Wall -mtune=generic -m64 -fPIC -I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/gcc -I../../../include/os/Linux -I../../../include -I/opt/epics/synApps/support/asyn-R4-38/include -I/opt/epics/synApps/support/areaDetector-master/ADSupport/include/os/Linux -I/opt/epics/synApps/support/areaDetector-master/ADSupport/include -I/opt/epics/synApps/support/areaDetector-master/ADCore/include -I/opt/epics/base/include/compiler/gcc -I/opt/epics/base/include/os/Linux -I/opt/epics/base/include -I/opt/epics/synApps/support/areaDetector-master/ADGenICam/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/local/include/aravis-0.8 -MM -MF ADAravis.d ../ADAravis.cpp
/usr/bin/g++ -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_X86_64_ -DUNIX -Dlinux -O3 -g -Wall -mtune=generic -m64 -fPIC -I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/gcc -I../../../include/os/Linux -I../../../include -I/opt/epics/synApps/support/asyn-R4-38/include -I/opt/epics/synApps/support/areaDetector-master/ADSupport/include/os/Linux -I/opt/epics/synApps/support/areaDetector-master/ADSupport/include -I/opt/epics/synApps/support/areaDetector-master/ADCore/include -I/opt/epics/base/include/compiler/gcc -I/opt/epics/base/include/os/Linux -I/opt/epics/base/include -I/opt/epics/synApps/support/areaDetector-master/ADGenICam/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/local/include/aravis-0.8 -MM -MF arvFeature.d ../arvFeature.cpp
/usr/bin/g++ -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_X86_64_ -DUNIX -Dlinux -O3 -g -Wall -mtune=generic -m64 -fPIC -I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/gcc -I../../../include/os/Linux -I../../../include -I/opt/epics/synApps/support/asyn-R4-38/include -I/opt/epics/synApps/support/areaDetector-master/ADSupport/include/os/Linux -I/opt/epics/synApps/support/areaDetector-master/ADSupport/include -I/opt/epics/synApps/support/areaDetector-master/ADCore/include -I/opt/epics/base/include/compiler/gcc -I/opt/epics/base/include/os/Linux -I/opt/epics/base/include -I/opt/epics/synApps/support/areaDetector-master/ADGenICam/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/local/include/aravis-0.8 -c ../arvFeature.cpp
/usr/bin/g++ -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_X86_64_ -DUNIX -Dlinux -O3 -g -Wall -mtune=generic -m64 -fPIC -I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/gcc -I../../../include/os/Linux -I../../../include -I/opt/epics/synApps/support/asyn-R4-38/include -I/opt/epics/synApps/support/areaDetector-master/ADSupport/include/os/Linux -I/opt/epics/synApps/support/areaDetector-master/ADSupport/include -I/opt/epics/synApps/support/areaDetector-master/ADCore/include -I/opt/epics/base/include/compiler/gcc -I/opt/epics/base/include/os/Linux -I/opt/epics/base/include -I/opt/epics/synApps/support/areaDetector-master/ADGenICam/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/local/include/aravis-0.8 -c ../ADAravis.cpp
/usr/bin/ar -rc libADAravis.a arvFeature.o ADAravis.o
/usr/bin/ranlib libADAravis.a
make[3]: *** No rule to make target '../../../lib/linux-x86_64/libglib-2.0.a', needed by 'libADAravis.so'. Stop.
make[3]: Leaving directory '/opt/epics/synApps/support/areaDetector-master/ADAravis/aravisApp/src/O.linux-x86_64'
/opt/epics/base/configure/RULES_ARCHS:58: recipe for target 'install.linux-x86_64' failed
make[2]: *** [install.linux-x86_64] Error 2
make[2]: Leaving directory '/opt/epics/synApps/support/areaDetector-master/ADAravis/aravisApp/src'
/opt/epics/base/configure/RULES_DIRS:84: recipe for target 'src.install' failed
make[1]: *** [src.install] Error 2
make[1]: Leaving directory '/opt/epics/synApps/support/areaDetector-master/ADAravis/aravisApp'
/opt/epics/base/configure/RULES_DIRS:84: recipe for target 'aravisApp.install' failed
make: *** [aravisApp.install] Error 2
Libglib-2.0.a exists, but it lives in /usr/lib/x86_64-linux-gnu/libglib-2.0.a. I have tried creating a folder in ADAravis/lib/linux-x86_64 and making a symlink to the x86_64-linux-gnu directory, but then I get a different set of errors, namely:
/opt/epics/synApps/support/areaDetector-master/ADSupport/lib/linux-x86_64/libcoders.so: undefined reference to `xmlNanoHTTPFrameState'
/opt/epics/synApps/support/areaDetector-master/ADSupport/lib/linux-x86_64/libcoders.so: undefined reference to `xmlNanoHTTPStreaming'
Any help is appreciated and please let me know if you need any more info.
Thanks so much,
Katie