zoneminder wrote:The 1.22.0 release has a configure parameter --with-extra-libs which is designed for this kind of circumstance, e.g. when you need to add non standard libraries.
I'd be interested if someone could try it out though and confirm it does funciton correctly in this kind of situation.
Hi there. I have in fact just tried this on Ubuntu 6.06 Server (Dapper Drake). My experience is the same as that of maciekc. Here's what I did.
- Enable the 'universe' repository in /etc/apt/sources.list
- Add the following packages to the base LAMP server install:
build-essential libmysqlclient15-dev libjpeg62 libjpeg-progs libjpeg62-dev libjpeg62 libjpeg-progs libjpeg62-dev libssl-dev openssl libssl0.9.8-dbg libssl0.9.8 libpcre3 libpcre3-dev libpcre3 libpcre3-dev libwww-perl libio-socket-ssl-perl libmailtools-perl libhtml-format-perl libcompress-zlib-perl libwww-perl libio-socket-ssl-perl libmailtools-perl libhtml-format-perl libcompress-zlib-perl libwww-perl libio-socket-ssl-perl libmailtools-perl libhtml-format-perl libcompress-zlib-perl libwww-perl libio-socket-ssl-perl libmailtools-perl libhtml-format-perl libcompress-zlib-perl
- use the following configure line:
Code: Select all
$ ./configure \
--with-webdir=/var/www/zm/html \
--with-cgidir=/var/www/zm/cgi \
--with-webuser=www-data \
--with-webgroup=www-data \
--with-extralibs="-ldc1394_control -logg -ldts -lvorbisenc -ltheora -lgsm" \
CFLAGS="-g -O3 -march=pentium4" \
CXXFLAGS="-g -O3 -march=pentium4" \
ZM_DB_NAME=zm \
ZM_DB_USER=zm \
ZM_DB_PASS=********
- run make
This gets me the following error (lines broken for readability):
Code: Select all
g++ -g -O3 -march=pentium4 -L/usr/lib -L/usr/lib/mysql \
-ldc1394_control -logg -ldts -lvorbisenc -ltheora -lgsm \
-o zmc zmc.o zm.o zm_db.o zm_config.o zm_coord.o zm_box.o zm_poly.o \
zm_image.o zm_event.o zm_zone.o zm_camera.o zm_local_camera.o \
zm_remote_camera.o zm_file_camera.o zm_monitor.o zm_user.o zm_mpeg.o \
zm_jpeg.o zm_regexp.o zm_signal.o zm_buffer.o zm_debug.o \
-lavformat -lavcodec -lavutil -lpcre -lcrypto -lmysqlclient -ldl -lz -ljpeg
/usr/lib/libavcodec.a(dtsdec.o): In function `dts_decode_init': undefined reference to `dts_init'
/usr/lib/libavcodec.a(dtsdec.o): In function `dts_decode_frame': undefined reference to `dts_frame'
/usr/lib/libavcodec.a(dtsdec.o): In function `dts_decode_frame': undefined reference to `dts_blocks_num'
/usr/lib/libavcodec.a(dtsdec.o): In function `dts_decode_frame': undefined reference to `dts_block'
/usr/lib/libavcodec.a(dtsdec.o): In function `dts_decode_frame': undefined reference to `dts_samples'
/usr/lib/libavcodec.a(dtsdec.o): In function `dts_decode_frame': undefined reference to `dts_blocks_num'
/usr/lib/libavcodec.a(dtsdec.o): In function `dts_decode_frame': undefined reference to `dts_syncinfo'
collect2: ld returned 1 exit status
Some digging turns up the fact that there is no corresponding libdts package to mate with libdts-dev. According to
Debian Bug #285590, the API is not stable, and as such no shared library is provided.
It's been a while since I've actively done development, so I'm a bit fuzzy on exactly what goes where, but I have found, like maciekc, that if I add '-ldts' to the LIBS variable in src/Makefile (after running configure), that everything compiles just fine.
There is doubtless a way to specify this on the command line as a build option, either to configure or to make itself, but I'm not sure of exactly what that might be. I'm also not sure that this workaround is successful (any thoughts, maciekc?), but zm has compiled clean, so I'm going to proceed.
Feel free to followup or contact with questions. I'm happy to help with debugging, etc.