mirror of
https://github.com/Motion-Project/motion.git
synced 2026-02-01 02:21:26 -05:00
1082 lines
26 KiB
Plaintext
1082 lines
26 KiB
Plaintext
dnl Process this file with autoconf to produce a configure script
|
|
AC_INIT
|
|
AC_CONFIG_SRCDIR([motion.c])
|
|
|
|
VERSION=3.2.9
|
|
AC_SUBST(VERSION)
|
|
|
|
THREAD_CFLAGS=""
|
|
THREAD_CHECK="pthread.h"
|
|
|
|
Darwin=""
|
|
FreeBSD=""
|
|
|
|
LINUXTHREADS="no"
|
|
AC_ARG_WITH(linuxthreads,
|
|
[ --with-linuxthreads Use linuxthreads in BSD instead of native phtreads
|
|
]
|
|
,
|
|
LINUXTHREADS="$withval"
|
|
)
|
|
|
|
AC_MSG_CHECKING(for Darwin)
|
|
Darwin=`uname -a | grep "Darwin"`
|
|
|
|
if test "${Darwin}" = ""; then
|
|
AC_MSG_RESULT(no)
|
|
AC_MSG_CHECKING(for *BSD)
|
|
|
|
FreeBSD=`uname -a | grep "BSD"`
|
|
if test "${FreeBSD}" = ""; then
|
|
AC_MSG_RESULT(no)
|
|
VIDEO="video.o video2.o video_common.o"
|
|
else
|
|
AC_MSG_RESULT(yes)
|
|
if test "${LINUXTHREADS}" = "no"; then
|
|
AC_MSG_CHECKING(Linuxthreads)
|
|
AC_MSG_RESULT(skipping)
|
|
else
|
|
THREAD_CHECK="/usr/local/include/pthread/linuxthreads/pthread.h"
|
|
THREAD_LIB_CHECK="/usr/local/lib/liblthread.so"
|
|
fi
|
|
|
|
TEMP_CFLAGS="${CFLAGS} -I/usr/local/include"
|
|
TEMP_LDFLAGS="${LDFLAGS} -L/usr/local/lib"
|
|
TEMP_LIBS="-L/usr/local/lib"
|
|
VIDEO="video_freebsd.o"
|
|
fi
|
|
else
|
|
TEMP_CFLAGS="${CFLAGS} -I/sw/include"
|
|
TEMP_LDFLAGS="${LDFLAGS} -L/sw/lib"
|
|
TEMP_LIBS="-L/sw/lib"
|
|
VIDEO="video_freebsd.o"
|
|
FINK_LIB="-L/sw/lib"
|
|
Darwin="yes"
|
|
AC_MSG_RESULT($Darwin)
|
|
fi
|
|
|
|
|
|
AC_SUBST(VIDEO)
|
|
|
|
dnl Checks for programs.
|
|
AC_PROG_CC
|
|
|
|
TEMP_LIBS="-lm ${TEMP_LIBS}"
|
|
TEMP_CFLAGS="${TEMP_CFLAGS} ${CFLAGS}"
|
|
TEMP_LDFLAGS="${TEMP_LDFLAGS} ${LDFLAGS}"
|
|
|
|
|
|
if test "${FreeBSD}" != ""; then
|
|
|
|
AC_MSG_CHECKING(bktr headers in /usr/include/dev/bktr)
|
|
|
|
if test -f /usr/include/dev/bktr/ioctl_meteor.h && test -f /usr/include/dev/bktr/ioctl_bt848.h; then
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
TEMP_CFLAGS="${TEMP_CFLAGS} -DOLD_BKTR"
|
|
fi
|
|
|
|
dnl
|
|
dnl Check to Exclude BKTR
|
|
dnl
|
|
BKTR="yes"
|
|
AC_ARG_WITH(bktr,
|
|
[ --without-bktr Exclude to use bktr subsystem , that usually useful
|
|
for devices as network cameras ( ONLY used in *BSD).
|
|
]
|
|
,
|
|
BKTR="$withval"
|
|
)
|
|
|
|
|
|
if test "${BKTR}" = "no"; then
|
|
TEMP_CFLAGS="${TEMP_CFLAGS} -DWITHOUT_V4L"
|
|
fi
|
|
|
|
else
|
|
|
|
dnl
|
|
dnl Check to Exclude V4L
|
|
dnl
|
|
V4L="yes"
|
|
AC_ARG_WITH(v4l,
|
|
[ --without-v4l Exclude using v4l (video4linux) subsystem.
|
|
Makes Motion so it only supports network cameras.
|
|
],
|
|
V4L="$withval"
|
|
)
|
|
|
|
fi
|
|
|
|
|
|
if test "${Darwin}" = "yes"; then
|
|
V4L="no"
|
|
fi
|
|
|
|
if test "${V4L}" = "no"; then
|
|
TEMP_CFLAGS="${TEMP_CFLAGS} -DWITHOUT_V4L"
|
|
fi
|
|
|
|
|
|
if test "${FreeBSD}" != "" && test "${LINUXTHREADS}" != "no" ; then
|
|
|
|
AC_MSG_CHECKING(for linuxthreads)
|
|
|
|
dnl
|
|
dnl Check for thread header
|
|
dnl
|
|
if test -f "${THREAD_CHECK}"; then
|
|
HEADERS_THREAD_CFLAGS="-I/usr/local/include/pthread/linuxthreads"
|
|
THREADS="yes"
|
|
else
|
|
THREADS="no"
|
|
fi
|
|
|
|
dnl
|
|
dnl Check for thread lib
|
|
dnl
|
|
if test -f "${THREAD_LIB_CHECK}" ; then
|
|
THREADS="yes"
|
|
LIB_THREAD="-llthread -llgcc_r"
|
|
else
|
|
THREADS="no"
|
|
fi
|
|
|
|
dnl Checks for Library linuxthreads for FreeBSD
|
|
dnl
|
|
dnl linuxthreads on freeBSD, ports collection
|
|
dnl /usr/local/include/pthreads/linuxthreads/pthread.h
|
|
dnl #include <linuxthreads/pthread.h>
|
|
dnl /usr/local/lib/libpthread.so
|
|
dnl
|
|
|
|
if test "${THREADS}" = "yes"; then
|
|
TEMP_CFLAGS="${HEADERS_THREAD_CFLAGS} $TEMP_CFLAGS -DWITH_LINUXTREADS"
|
|
TEMP_LIBS="$TEMP_LIBS ${LIB_THREAD}"
|
|
THREAD_CFLAGS="-D_THREAD_SAFE"
|
|
PTHREAD_SUPPORT="yes"
|
|
AC_MSG_RESULT($THREADS)
|
|
else
|
|
PTHREAD_SUPPORT="no"
|
|
AC_MSG_RESULT($THREADS)
|
|
echo
|
|
echo You do not have linuxthread installed
|
|
echo
|
|
fi
|
|
|
|
else
|
|
|
|
dnl Checks for Library pthread ( no cross platform )
|
|
AC_CHECK_LIB(pthread,pthread_create,[
|
|
TEMP_LIBS="$TEMP_LIBS -lpthread"
|
|
PTHREAD_SUPPORT="yes"
|
|
],[
|
|
echo
|
|
echo You do not have pthread installed
|
|
echo
|
|
]
|
|
)
|
|
|
|
fi
|
|
|
|
|
|
|
|
dnl
|
|
dnl Check for the special mmx accelerated jpeg library
|
|
dnl
|
|
JPEG_MMX="no"
|
|
JPEG_MMX_OK="not_found"
|
|
AC_ARG_WITH(jpeg-mmx,
|
|
[ --with-jpeg-mmx[=DIR] Specify the prefix for the install path for
|
|
jpeg-mmx for optimized jpeg handling (optional).
|
|
If this is not specified motion will try to find
|
|
the library /usr/lib/libjpeg-mmx.a /usr/local/lib/libjpeg-mmx.a.
|
|
],
|
|
JPEG_MMX="$withval"
|
|
)
|
|
|
|
dnl
|
|
dnl --without-jpeg-mmx or with-jpeg-mmx=no
|
|
dnl
|
|
|
|
if test "${JPEG_MMX}" = "no"; then
|
|
AC_MSG_CHECKING(for libjpeg-mmx)
|
|
AC_MSG_RESULT(skipping)
|
|
elif test "${JPEG_MMX}" = "yes"; then
|
|
dnl AUTODETECT STATIC LIB
|
|
AC_MSG_CHECKING(for libjpeg-mmx autodetecting)
|
|
|
|
if test -f /usr/lib/libjpeg-mmx.a ; then
|
|
AC_MSG_RESULT(found)
|
|
JPEG_MMX_OK="found"
|
|
JPEG_MMX="/usr/lib"
|
|
elif test -f /usr/local/lib/libjpeg-mmx.a ; then
|
|
AC_MSG_RESULT(found)
|
|
JPEG_MMX_OK="found"
|
|
JPEG_MMX="/usr/local/lib"
|
|
else
|
|
AC_MSG_RESULT(not found)
|
|
fi
|
|
else
|
|
AC_MSG_CHECKING(for libjpeg-mmx in -> [${JPEG_MMX}] <-)
|
|
if test -f ${JPEG_MMX}/libjpeg-mmx.a ; then
|
|
AC_MSG_RESULT(found)
|
|
JPEG_MMX_OK="found"
|
|
else
|
|
AC_MSG_RESULT(not found)
|
|
fi
|
|
fi
|
|
|
|
if test "${JPEG_MMX_OK}" = "found"; then
|
|
OLD_CFLAGS="$CFLAGS"
|
|
OLD_LIBS="$LIBS"
|
|
CFLAGS="$CFLAGS -I${JPEG_MMX}"
|
|
LIBS="$LIBS -L${JPEG_MMX}"
|
|
AC_CHECK_LIB(jpeg-mmx, jpeg_start_compress,
|
|
[ TEMP_LIBS="$TEMP_LIBS -ljpeg-mmx"
|
|
TEMP_CFLAGS="${TEMP_CFLAGS} -I${JPEG_MMX}"
|
|
JPEG_SUPPORT="yes"],,)
|
|
LIBS="$OLD_LIBS"
|
|
CFLAGS="$OLD_CFLAGS"
|
|
JPEG_SUPPORT_MMX="yes"
|
|
fi
|
|
|
|
dnl
|
|
dnl Look for _a_ jpeg lib that will work.
|
|
dnl
|
|
if test x$JPEG_SUPPORT != xyes ; then
|
|
dnl Checks for libraries
|
|
LDFLAGS=$TEMP_LDFLAGS
|
|
|
|
AC_CHECK_LIB(jpeg, jpeg_set_defaults, [
|
|
TEMP_LIBS="$TEMP_LIBS -ljpeg"
|
|
JPEG_SUPPORT="yes"
|
|
], [
|
|
echo
|
|
echo You do not have libjpeg installed
|
|
echo
|
|
]
|
|
)
|
|
fi
|
|
|
|
|
|
#
|
|
# Check mjpegtools -lmjpegutils -llavjpeg
|
|
#
|
|
|
|
MJPEG_SUPPORT="no"
|
|
MJPEG_HEADER1_SUPPORT="no"
|
|
MJPEG_HEADER2_SUPPORT="no"
|
|
|
|
AC_CHECK_HEADER(mjpegtools/jpegutils.h, ,MJPEG_HEADER1_SUPPORT="yes")
|
|
AC_CHECK_HEADER(mjpegtools/mjpeg_types.h, ,MJPEG_HEADER2_SUPPORT="yes")
|
|
|
|
if test x$MJPEG_HEADER1_SUPPORT != xyes && test x$MJPEG_HEADER2_SUPPORT != xyes; then
|
|
|
|
LDFLAGS=$TEMP_LDFLAGS
|
|
|
|
AC_CHECK_LIB(lavjpeg, decode_jpeg_raw,[
|
|
TEMP_LDFLAGS="$TEMP_LDFLAGS -lmjpegutils -llavjpeg"
|
|
MJPEG_SUPPORT="yes"
|
|
TEMP_CFLAGS="$TEMP_CFLAGS -DMJPEGT"
|
|
], , -lmjpegutils)
|
|
fi
|
|
|
|
AC_MSG_CHECKING(mjpegtools)
|
|
AC_MSG_RESULT($MJPEG_SUPPORT)
|
|
|
|
|
|
dnl
|
|
dnl Check for libavcodec and libavformat from ffmpeg
|
|
dnl
|
|
FFMPEG="yes"
|
|
FFMPEG_OK="no_found"
|
|
FFMPEG_OBJ=""
|
|
AC_ARG_WITH(ffmpeg,
|
|
[ --with-ffmpeg[=DIR] Specify the prefix for the install path for
|
|
libavcodec/libavformat (part of ffmpeg) be able to
|
|
encode mpeg movies realtime.
|
|
If this is not specified motion will try to find
|
|
the libraries in /usr and /usr/local.
|
|
],
|
|
FFMPEG="$withval"
|
|
)
|
|
dnl
|
|
dnl --without-ffmpeg or with-ffmpeg=no
|
|
dnl
|
|
if test "${FFMPEG}" = "no"; then
|
|
AC_MSG_CHECKING(for ffmpeg)
|
|
AC_MSG_RESULT(skipping)
|
|
dnl
|
|
dnl with-ffmpeg=<dir> or nothing
|
|
dnl
|
|
else if test "${FFMPEG}" = "yes"; then
|
|
dnl AUTODETECT STATIC/SHARED LIB
|
|
AC_MSG_CHECKING(for ffmpeg autodetecting)
|
|
|
|
# weird hack to fix debian problem TO BE REMOVED
|
|
|
|
if test -f /usr/bin/ffmpeg-config; then
|
|
FFMPEG_LIBS_DEB="`ffmpeg-config --libs avformat`"
|
|
FFMPEG_CFLAGS_DEB="`ffmpeg-config --cflags`"
|
|
FFMPEG_OK="found"
|
|
AC_MSG_RESULT(found for debian)
|
|
elif test -f /usr/lib64/libavcodec.a -o -f /usr/lib64/libavcodec.so && test -f /usr/lib64/libavformat.a -o -f /usr/lib64/libavformat.so ; then
|
|
AC_MSG_RESULT(found)
|
|
FFMPEG_OK="found"
|
|
FFMPEG="/usr/lib64"
|
|
elif test -f /usr/lib/libavcodec.a -o -f /usr/lib/libavcodec.so && test -f /usr/lib/libavformat.a -o -f /usr/lib/libavformat.so ; then
|
|
AC_MSG_RESULT(found)
|
|
FFMPEG_OK="found"
|
|
FFMPEG="/usr/lib"
|
|
elif test -f /usr/local/lib/libavcodec.a -o -f /usr/local/lib/libavcodec.so && test -f /usr/local/lib/libavformat.a -o -f /usr/local/lib/libavformat.so ; then
|
|
AC_MSG_RESULT(found)
|
|
FFMPEG_OK="found"
|
|
FFMPEG="/usr/local/lib"
|
|
else
|
|
AC_MSG_RESULT(not found)
|
|
echo ""
|
|
echo "**********************************************"
|
|
echo "* libavcodec.a or libavcodec.so or *"
|
|
echo "* libavformat.a or libavformat.so not found: *"
|
|
echo "* ALL FFMPEG FEATURES DISABLED *"
|
|
echo "* *"
|
|
echo "* Please read the Motion Guide for help: *"
|
|
echo "* http://motion.sourceforge.net *"
|
|
echo "**********************************************"
|
|
echo ""
|
|
fi
|
|
else
|
|
AC_MSG_CHECKING(for ffmpeg in -> [${FFMPEG}] <-)
|
|
if test -f ${FFMPEG}/lib/libavcodec.a -o -f ${FFMPEG}/lib/libavcodec.so && test -f ${FFMPEG}/lib/libavformat.a -o -f ${FFMPEG}/lib/libavformat.so ; then
|
|
AC_MSG_RESULT(found)
|
|
FFMPEG_OK="found"
|
|
FFMPEG="${FFMPEG}/lib"
|
|
elif test -f ${FFMPEG}/libavcodec.a -o -f ${FFMPEG}/libavcodec.so && test -f ${FFMPEG}/libavformat.a -o -f ${FFMPEG}/libavformat.so ; then
|
|
AC_MSG_RESULT(found)
|
|
FFMPEG_OK="found"
|
|
else
|
|
AC_MSG_RESULT(not found)
|
|
if test "${FFMPEG}" != "no"; then
|
|
echo ""
|
|
echo "**********************************************"
|
|
echo "* libavcodec.a or libavcodec.so or *"
|
|
echo "* libavformat.a or libavformat.so not found: *"
|
|
echo "* ALL FFMPEG FEATURES DISABLED *"
|
|
echo "* *"
|
|
echo "* Please read the Motion Guide for help: *"
|
|
echo "* http://motion.sourceforge.net *"
|
|
echo "**********************************************"
|
|
echo ""
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
#
|
|
# Now check for ffmpeg headers ( avformat.h ) if ffmpeg libs were found
|
|
#
|
|
|
|
if test "${FFMPEG_OK}" = "found"; then
|
|
AC_MSG_CHECKING(for ffmpeg headers)
|
|
|
|
if test "${FFMPEG_CFLAGS_DEB}" != "" ; then
|
|
FFMPEG_CFLAGS="${FFMPEG_CFLAGS_DEB}"
|
|
AC_MSG_RESULT(found for debian)
|
|
elif test -f ${FFMPEG}/include/avformat.h; then
|
|
AC_MSG_RESULT(found)
|
|
FFMPEG_CFLAGS="-I${FFMPEG}/include"
|
|
elif test -f ${FFMPEG}/avformat.h; then
|
|
AC_MSG_RESULT(found)
|
|
FFMPEG_CFLAGS="-I${FFMPEG}"
|
|
elif test -f `AS_DIRNAME([${FFMPEG}])`/include/avformat.h; then
|
|
AC_MSG_RESULT(found)
|
|
FFMPEG_CFLAGS="-I`AS_DIRNAME([${FFMPEG}])`/include"
|
|
elif test -f `AS_DIRNAME([${FFMPEG}])`/include/ffmpeg/avformat.h; then
|
|
AC_MSG_RESULT(found)
|
|
FFMPEG_CFLAGS="-I`AS_DIRNAME([${FFMPEG}])`/include/ffmpeg"
|
|
else
|
|
AC_MSG_RESULT(not found)
|
|
FFMPEG_OK="no_found"
|
|
echo "**********************************************"
|
|
echo "* avformat.h not found: *"
|
|
echo "* ALL FFMPEG FEATURES DISABLED *"
|
|
echo "* *"
|
|
echo "* Please read the Motion Guide for help: *"
|
|
echo "* http://motion.sourceforge.net *"
|
|
echo "**********************************************"
|
|
echo ""
|
|
fi
|
|
|
|
#
|
|
# If ffmpeg libs and headers have been found
|
|
#
|
|
|
|
if test "${FFMPEG_OK}" = "found"; then
|
|
if test "${FFMPEG_LIBS_DEB}" != ""; then
|
|
TEMP_LIBS="$TEMP_LIBS ${FFMPEG_LIBS_DEB}"
|
|
# TEMP_LDFLAGS="${TEMP_LDFLAGS} ${FFMPEG_LIBS_DEB}"
|
|
else
|
|
TEMP_LIBS="$TEMP_LIBS -L${FFMPEG} -lavformat -lavcodec -lm -lz"
|
|
TEMP_LDFLAGS="${TEMP_LDFLAGS} -L${FFMPEG}"
|
|
fi
|
|
|
|
TEMP_CFLAGS="${TEMP_CFLAGS} -DHAVE_FFMPEG ${FFMPEG_CFLAGS}"
|
|
|
|
FFMPEG_OBJ="ffmpeg.o"
|
|
AC_SUBST(FFMPEG_OBJ)
|
|
|
|
AC_MSG_CHECKING([file_protocol is defined in ffmpeg ?])
|
|
CFLAGS="${FFMPEG_CFLAGS}"
|
|
LIBS="$TEMP_LIBS"
|
|
|
|
AC_COMPILE_IFELSE(
|
|
[
|
|
#include <avformat.h>
|
|
URLProtocol test_file_protocol;
|
|
int main(void){
|
|
test_file_protocol.url_read = file_protocol.url_read;
|
|
return 0;
|
|
}
|
|
],
|
|
[AC_MSG_RESULT(yes)],
|
|
[
|
|
AC_MSG_RESULT(no)
|
|
TEMP_CFLAGS="${TEMP_CFLAGS} -DHAVE_FFMPEG_NEW"
|
|
]
|
|
)
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
|
|
#
|
|
# Check Mysql
|
|
#
|
|
|
|
MYSQL="yes"
|
|
MYSQL_SUPPORT="no"
|
|
MYSQL_HEADERS="yes"
|
|
MYSQL_LIBS="yes"
|
|
|
|
AC_MSG_CHECKING(for mysql support)
|
|
|
|
AC_ARG_WITH(mysql,
|
|
[ --without-mysql Disable mysql support in motion.
|
|
],
|
|
MYSQL="$withval"
|
|
dnl if not given argument, assume standard
|
|
)
|
|
|
|
AC_ARG_WITH(mysql-lib,
|
|
[ --with-mysql-lib[=DIR] Normally, configure will scan all possible default
|
|
installation paths for mysql libs. When its fail, use
|
|
this command to tell configure where mysql libs
|
|
installation root directory is.
|
|
],
|
|
MYSQL_LIBS="$withval"
|
|
dnl if not given argument, assume standard
|
|
)
|
|
|
|
|
|
AC_ARG_WITH(mysql-include,
|
|
[ --with-mysql-include[=DIR] Normally, configure will scan all possible default
|
|
installation paths for mysql include. When its fail, use
|
|
this command to tell configure where mysql include
|
|
installation root directory is.
|
|
],
|
|
MYSQL_HEADERS="$withval"
|
|
dnl if not given argument, assume standard
|
|
)
|
|
|
|
|
|
if test "${MYSQL}" = "no"; then
|
|
AC_MSG_RESULT(skipped)
|
|
else
|
|
AC_MSG_RESULT(testing)
|
|
# ******* Search mysql headers *******
|
|
|
|
if test "${MYSQL_HEADERS}" = "yes"; then
|
|
AC_MSG_CHECKING(autodect mysql headers)
|
|
# Autodetect
|
|
for w in /usr/include /usr/local/include /usr/mysql /usr/local/mysql /usr/local/mysql/include /opt /opt/mysql; do
|
|
# check for plain setups
|
|
if test -f $w/mysql.h; then
|
|
MYSQL_INCDIR=$w
|
|
break
|
|
fi
|
|
# check for "/usr/include/<packagename>" type setups
|
|
if test -f $w/mysql/mysql.h; then
|
|
MYSQL_INCDIR=$w/mysql
|
|
break
|
|
fi
|
|
# check for "/usr/<packagename>/include" type setups
|
|
if test -f $w/mysql/include/mysql.h; then
|
|
MYSQL_INCDIR=$w/mysql/include
|
|
break
|
|
fi
|
|
done
|
|
elif test "${MYSQL_HEADERS}" = "no"; then
|
|
AC_MSG_CHECKING(for mysql headers)
|
|
AC_MSG_RESULT(skipped)
|
|
else
|
|
AC_MSG_CHECKING(for mysql headers in $MYSQL_HEADERS)
|
|
# Manual detection for <withval>
|
|
if test -f $MYSQL_HEADERS/mysql.h; then
|
|
MYSQL_INCDIR=$MYSQL_HEADERS
|
|
fi
|
|
fi
|
|
|
|
if test -z "$MYSQL_INCDIR" ; then
|
|
MYSQL_HEADERS="no"
|
|
AC_MSG_RESULT(not found)
|
|
echo Invalid MySQL directory - unable to find mysql.h.
|
|
else
|
|
AC_MSG_RESULT(yes)
|
|
MYSQL_HEADERS="yes"
|
|
fi
|
|
|
|
|
|
if test "${MYSQL_HEADERS}" = "yes"; then
|
|
|
|
# ******* Search mysql libs *********
|
|
if test "${MYSQL_LIBS}" = "yes"; then
|
|
AC_MSG_CHECKING(autodect mysql libs)
|
|
# Autodetect
|
|
for w in /usr/lib /usr/local/lib /usr/mysql /usr/local/mysql /usr/local/mysql/lib /opt /opt/mysql /usr/lib64; do
|
|
# check for plain setups
|
|
if test -f $w/libmysqlclient.a -o -f $w/libmysqlclient.so; then
|
|
MYSQL_LIBDIR=$w
|
|
break
|
|
fi
|
|
# check for "/usr/lib/<packagename>" type setups
|
|
if test -f $w/mysql/libmysqlclient.a -o -f $w/mysql/libmysqlclient.so; then
|
|
MYSQL_LIBDIR=$w/mysql
|
|
break
|
|
fi
|
|
# check for "/usr/<packagename>/lib" type setups
|
|
if test -f $w/mysql/lib/libmysqlclient.a -o -f $w/mysql/lib/libmysqlclient.so; then
|
|
MYSQL_LIBDIR=$w/mysql/lib
|
|
break
|
|
fi
|
|
done
|
|
elif test "${MYSQL_LIBS}" = "no"; then
|
|
AC_MSG_CHECKING(for mysql libs)
|
|
AC_MSG_RESULT(skipped)
|
|
else
|
|
AC_MSG_CHECKING(for mysql libs in $MYSQL_LIBS)
|
|
# Manual detection for <withval>
|
|
if test -f $MYSQL_LIBS/libmysqlclient.a -o -f $MYSQL_LIBS/libmysqlclient.so; then
|
|
MYSQL_LIBDIR=$MYSQL_LIBS
|
|
fi
|
|
fi
|
|
|
|
|
|
if test -z "$MYSQL_LIBDIR" ; then
|
|
AC_MSG_RESULT(not found)
|
|
echo Invalid MySQL directory - unable to find libmysqlclient.a or libmysqlclient.so.
|
|
else
|
|
TEMP_LIBS="$TEMP_LIBS -L$MYSQL_LIBDIR -lmysqlclient"
|
|
#Add -lz for some mysql installs....
|
|
TEMP_LIBS="$TEMP_LIBS -lz"
|
|
TEMP_CFLAGS="$TEMP_CFLAGS -DHAVE_MYSQL -I$MYSQL_INCDIR"
|
|
AC_MSG_RESULT(found)
|
|
MYSQL_SUPPORT="yes"
|
|
fi
|
|
|
|
# end mysql-include , mysql-libs
|
|
fi
|
|
|
|
# end Mysql detection
|
|
fi
|
|
|
|
|
|
dnl Start Check for Postgresql
|
|
AC_DEFUN(PGSQL_INC_CHK,[if test -r $i$1/libpq-fe.h; then PGSQL_DIR=$i; PGSQL_INCDIR=$i$1])
|
|
PGSQL="yes"
|
|
|
|
AC_MSG_CHECKING(for PostgreSQL)
|
|
AC_ARG_WITH(pgsql,
|
|
[ --with-pgsql[=DIR] Include PostgreSQL support. DIR is the PostgreSQL
|
|
base install directory. If not specified configure will
|
|
search in /usr, /usr/local and /usr/local/pgsql.
|
|
],
|
|
PGSQL="$withval"
|
|
dnl if not given argument, assume standard
|
|
)
|
|
if test "${PGSQL}" = "no"; then
|
|
AC_MSG_RESULT(skipped)
|
|
fi
|
|
|
|
if test "${PGSQL}" = "yes"; then
|
|
for i in /usr /usr/local /usr/local/pgsql $PHP_PGSQL; do
|
|
PGSQL_INC_CHK(/include)
|
|
el[]PGSQL_INC_CHK(/include/pgsql)
|
|
el[]PGSQL_INC_CHK(/include/postgresql)
|
|
fi
|
|
done
|
|
|
|
if test -z "$PGSQL_DIR"; then
|
|
AC_MSG_RESULT(Cannot find libpq-fe.h. Please specify the installation path of PostgreSQL)
|
|
else
|
|
PGSQL_INCLUDE="-I$PGSQL_INCDIR"
|
|
PGSQL_LIBDIR=$PGSQL_DIR/lib
|
|
AC_MSG_RESULT(yes)
|
|
test -d $PGSQL_DIR/lib/pgsql && PGSQL_LIBDIR=$PGSQL_DIR/lib/pgsql
|
|
LDFLAGS="$TEMP_LDFLAGS -L$PGSQL_LIBDIR"
|
|
AC_CHECK_LIB(pq, PQcmdTuples,AC_DEFINE(HAVE_PQCMDTUPLES,1,[ ]))
|
|
AC_CHECK_LIB(pq, PQoidValue,AC_DEFINE(HAVE_PQOIDVALUE,1,[ ]))
|
|
AC_CHECK_LIB(pq, PQclientEncoding,AC_DEFINE(HAVE_PQCLIENTENCODING,1,[ ]))
|
|
AC_CHECK_LIB(pq, pg_encoding_to_char,AC_DEFINE(HAVE_PGSQL_WITH_MULTIBYTE_SUPPORT,1,[ ]))
|
|
LDFLAGS=""
|
|
AC_DEFINE(HAVE_PGSQL,1,[ ])
|
|
TEMP_LIBS="$TEMP_LIBS -L$PGSQL_LIBDIR -lpq"
|
|
TEMP_CFLAGS="$TEMP_CFLAGS -DHAVE_PGSQL $PGSQL_INCLUDE"
|
|
PostgreSQL_SUPPORT="yes"
|
|
fi
|
|
fi
|
|
dnl End Postgresql
|
|
|
|
dnl Checks for header files.
|
|
AC_HEADER_STDC
|
|
AC_CHECK_HEADERS(stdio.h unistd.h fcntl.h time.h signal.h sys/ioctl.h sys/mman.h linux/videodev.h sys/param.h)
|
|
|
|
|
|
dnl check if v4l2 is available
|
|
SUPPORTED_V4L2=false
|
|
SUPPORTED_V4L2_old=false
|
|
|
|
|
|
if test "${V4L}" = "no"; then
|
|
AC_MSG_CHECKING(for V42L support)
|
|
AC_MSG_RESULT(skipping)
|
|
else
|
|
AC_CHECK_TYPE([struct v4l2_buffer],
|
|
[SUPPORTED_V4L2=true],
|
|
[SUPPORTED_V4L2=false],
|
|
[#include <sys/time.h>
|
|
#include <linux/videodev.h>])
|
|
|
|
AC_MSG_CHECKING(for V42L support)
|
|
if test x$SUPPORTED_V4L2 = xtrue; then
|
|
AC_MSG_RESULT(yes)
|
|
TEMP_CFLAGS="${TEMP_CFLAGS} -DMOTION_V4L2"
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
|
|
dnl linux/videodev.h doesn't include videodev2.h
|
|
if test x$SUPPORTED_V4L2 = xfalse; then
|
|
AC_MSG_CHECKING(for V42L *old* support)
|
|
AC_MSG_RESULT(testing)
|
|
AC_CHECK_HEADERS(linux/videodev2.h,[SUPPORTED_V4L2_old=true],[], [#include <asm/types.h>])
|
|
fi
|
|
|
|
|
|
if test x$SUPPORTED_V4L2_old = xtrue; then
|
|
TEMP_CFLAGS="${TEMP_CFLAGS} -DMOTION_V4L2 -DMOTION_V4L2_OLD"
|
|
SUPPORTED_V4L2=true
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
dnl Check sizes of integer types
|
|
AC_CHECK_SIZEOF(short int)
|
|
if test "$ac_cv_sizeof_short_int" = "4"; then
|
|
TEMP_CFLAGS="${TEMP_CFLAGS} -DTYPE_32BIT=\"short int\""
|
|
else
|
|
AC_CHECK_SIZEOF(int)
|
|
if test "$ac_cv_sizeof_int" = "4"; then
|
|
TEMP_CFLAGS="${TEMP_CFLAGS} -DTYPE_32BIT=\"int\""
|
|
else
|
|
AC_CHECK_SIZEOF(long int)
|
|
if test "$ac_cv_sizeof_long_int" = "4"; then
|
|
TEMP_CFLAGS="${TEMP_CFLAGS} -DTYPE_32BIT=\"long int\""
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
|
|
OPTIMIZECPU="yes"
|
|
|
|
AC_ARG_WITH(optimizecpu,
|
|
[ --without-optimizecpu Exclude autodetecting platform and cpu type.
|
|
This will disable the compilation of gcc
|
|
optimizing code by platform and cpu.
|
|
],
|
|
OPTIMIZECPU="$withval"
|
|
)
|
|
|
|
DEVELOPER_FLAGS="no"
|
|
|
|
AC_ARG_WITH(developer-flags,
|
|
[ --with-developer-flags Causes practically all of the possible gcc
|
|
warning flags to be set. This may produce
|
|
a large amount of warnings.],
|
|
DEVELOPER_FLAGS="$withval"
|
|
)
|
|
|
|
dnl Checks for typedefs, structures, and compiler characteristics.
|
|
AC_C_CONST
|
|
|
|
if test "${FreeBSD}" != ""; then
|
|
OPTIMIZECPU=""
|
|
fi
|
|
|
|
if test "${OPTIMIZECPU}" = "yes"; then
|
|
|
|
dnl Try to autodetect cpu type
|
|
CPU_NAME="unknown"
|
|
CPU_TYPE="unknown"
|
|
if test -e "/proc/cpuinfo" ; then
|
|
intel[[30]]="-march=i386"
|
|
intel[[32]]="-march=i386"
|
|
intel[[34]]="-march=i386"
|
|
intel[[40]]="-march=i486"
|
|
intel[[41]]="-march=i486"
|
|
intel[[42]]="-march=i486"
|
|
intel[[43]]="-march=i486"
|
|
intel[[44]]="-march=i486"
|
|
intel[[45]]="-march=i486"
|
|
intel[[47]]="-march=i486"
|
|
intel[[48]]="-march=i486"
|
|
intel[[51]]="-march=pentium"
|
|
intel[[52]]="-march=pentium"
|
|
intel[[54]]="-march=pentium-mmx"
|
|
intel[[56]]="-march=pentium-mmx"
|
|
intel[[61]]="-march=pentiumpro"
|
|
intel[[63]]="-march=pentium2"
|
|
intel[[65]]="-march=pentium2"
|
|
intel[[66]]="-march=pentium2"
|
|
intel[[67]]="-march=pentium3"
|
|
intel[[68]]="-march=pentium3"
|
|
intel[[610]]="-march=pentium3"
|
|
intel[[611]]="-march=pentium3"
|
|
intel[[150]]="-march=pentium4"
|
|
intel[[151]]="-march=pentium4"
|
|
intel[[152]]="-march=pentium4"
|
|
intel[[154]]="-march=pentium4"
|
|
intel[[614]]="-march=prescott"
|
|
amd[[50]]="-march=i586"
|
|
amd[[51]]="-march=i586"
|
|
amd[[52]]="-march=i586"
|
|
amd[[53]]="-march=i586"
|
|
amd[[56]]="-march=k6"
|
|
amd[[57]]="-march=k6"
|
|
amd[[58]]="-march=k6-2"
|
|
amd[[510]]="-march=k6-2"
|
|
amd[[59]]="-march=k6-3"
|
|
amd[[513]]="-march=k6-3"
|
|
amd[[61]]="-march=athlon"
|
|
amd[[62]]="-march=athlon"
|
|
amd[[63]]="-march=athlon"
|
|
amd[[64]]="-march=athlon"
|
|
amd[[66]]="-march=athlon"
|
|
amd[[67]]="-march=athlon"
|
|
amd[[68]]="-march=athlon"
|
|
amd[[610]]="-march=athlon"
|
|
amd[[158]]="-march=athlon-xp"
|
|
amd[[154]]="-march=k8"
|
|
amd[[155]]="-march=athlon64"
|
|
amd[[1543]]="-march=athlon64"
|
|
amd[[1544]]="-march=athlon64"
|
|
amd[[1565]]="-march=opteron"
|
|
via[[67]]="-march=c3"
|
|
via[[68]]="-march=c3"
|
|
via[[69]]="-march=i686"
|
|
via[[610]]="-march=i686"
|
|
|
|
CPU_TYPE="known"
|
|
CPU_FAMILY=`cat /proc/cpuinfo | grep "cpu family" | head -n1`
|
|
CPU_MODEL=`cat /proc/cpuinfo | grep model[[^\ ]] | head -n1`
|
|
CPU_NAME=`cat /proc/cpuinfo | grep "model name" | head -n1`
|
|
CPU_FLAGS=`cat /proc/cpuinfo | grep "flags" | head -n1`
|
|
CPU_VENDOR=`cat /proc/cpuinfo | grep "vendor_id" | head -n1`
|
|
CPU_FAMILY=${CPU_FAMILY#*: }
|
|
CPU_MODEL=${CPU_MODEL#*: }
|
|
CPU_NAME=${CPU_NAME#*: }
|
|
CPU_FLAGS=${CPU_FLAGS#*: }
|
|
CPU_VENDOR=${CPU_VENDOR#*: }
|
|
if test "x${CPU_VENDOR}" = "xGenuineIntel" ; then
|
|
CPU_OPTIONS=${intel[[$CPU_FAMILY$CPU_MODEL]]}
|
|
fi
|
|
if test "x${CPU_VENDOR}" = "xAuthenticAMD" ; then
|
|
CPU_OPTIONS=${amd[[$CPU_FAMILY$CPU_MODEL]]}
|
|
fi
|
|
if test "x${CPU_VENDOR}" = "xCentaurHauls"; then
|
|
CPU_OPTIONS=${via[[$CPU_FAMILY$CPU_MODEL]]}
|
|
fi
|
|
if test "x${CPU_OPTIONS}" = "x" ; then
|
|
CPU_TYPE="unknown"
|
|
fi
|
|
CPU_EXT=""
|
|
for i in $CPU_FLAGS ; do
|
|
case $i in
|
|
fpu)
|
|
CPU_FPU="-mfpmath=387"
|
|
;;
|
|
mmx)
|
|
CPU_EXT="$CPU_EXT -mmmx"
|
|
;;
|
|
sse)
|
|
CPU_FPU="-mfpmath=sse -msse"
|
|
;;
|
|
sse2)
|
|
CPU_FPU="-mfpmath=sse -msse2"
|
|
;;
|
|
sse3)
|
|
CPU_FPU="-msse3"
|
|
;;
|
|
3dnow)
|
|
CPU_EXT="$CPU_EXT -m3dnow"
|
|
;;
|
|
esac
|
|
done
|
|
CPU_OPTIONS="$CPU_OPTIONS $CPU_FPU $CPU_EXT"
|
|
fi
|
|
if test "x${CPU_TYPE}" = "xunknown"; then
|
|
CPU_TYPE=`( uname -p ) 2>&1`
|
|
case $CPU_TYPE in
|
|
i386)
|
|
CPU_OPTIONS="-march=i386"
|
|
;;
|
|
i486)
|
|
CPU_OPTIONS="-march=i486"
|
|
;;
|
|
Pentium2)
|
|
CPU_OPTIONS="-march=pentium2"
|
|
;;
|
|
Pentiumpro)
|
|
CPU_OPTIONS="-march=pentiumpro"
|
|
;;
|
|
Pentium*)
|
|
CPU_OPTIONS="-march=pentium"
|
|
;;
|
|
k6)
|
|
CPU_OPTIONS="-march=k6"
|
|
;;
|
|
k6-2)
|
|
CPU_OPTIONS="-march=k6-2"
|
|
;;
|
|
k6-3)
|
|
CPU_OPTIONS="-march=k6-3"
|
|
;;
|
|
"VIA C3 Ezra")
|
|
CPU_OPTIONS="-march=c3"
|
|
CPU_TYPE="known"
|
|
;;
|
|
*)
|
|
CPU_OPTIONS=""
|
|
CPU_TYPE="unknown"
|
|
;;
|
|
esac
|
|
if test "x${CPU_TYPE}" = "xunknown"; then
|
|
CPU_TYPE=`( uname -m ) 2>&1`
|
|
case $CPU_TYPE in
|
|
i386)
|
|
CPU_OPTIONS="-march=i386"
|
|
;;
|
|
i486)
|
|
CPU_OPTIONS="-march=i486"
|
|
;;
|
|
i586)
|
|
CPU_OPTIONS="-march=i586"
|
|
;;
|
|
i686)
|
|
CPU_OPTIONS="-march=i686"
|
|
;;
|
|
Pentium2)
|
|
CPU_OPTIONS="-march=pentium2"
|
|
;;
|
|
Pentiumpro)
|
|
CPU_OPTIONS="-march=pentiumpro"
|
|
;;
|
|
k6)
|
|
CPU_OPTIONS="-march=k6"
|
|
;;
|
|
k6-2)
|
|
CPU_OPTIONS="-march=k6-2"
|
|
;;
|
|
k6-3)
|
|
CPU_OPTIONS="-march=k6-3"
|
|
;;
|
|
*)
|
|
CPU_OPTIONS=""
|
|
;;
|
|
esac
|
|
fi
|
|
fi
|
|
echo "Detected CPU: $CPU_NAME"
|
|
dnl Now we check if the compiler supports the detected cpu
|
|
COMPILER=$CC
|
|
for I in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
|
|
test "$I" && break
|
|
done
|
|
TMPC="$I/cpu_test-$RANDOM-$$.c"
|
|
TMPO="$I/cpu_test-$RANDOM-$$.o"
|
|
cat > $TMPC << EOF
|
|
int main(void) { return 0; }
|
|
EOF
|
|
( $COMPILER $CPU_OPTIONS -o $TMPO $TMPC ) 2>&1
|
|
TMP="$?"
|
|
rm -f $TMPO
|
|
rm -f $TMPC
|
|
|
|
|
|
if test "x${TMP}" = "x1" ; then
|
|
CPU_OPTIONS=""
|
|
echo "No CPU optimizations will be added"
|
|
else
|
|
echo "CPU optimization: $CPU_OPTIONS"
|
|
fi
|
|
|
|
else
|
|
CPU_OPTIONS=""
|
|
fi
|
|
|
|
|
|
AC_MSG_CHECKING(for bswap instruction)
|
|
AC_LINK_IFELSE([
|
|
AC_LANG_PROGRAM([ ],
|
|
[unsigned int __x=0;
|
|
register unsigned int __v;
|
|
__asm("bswap %0" : "=r" (__v) : "0" (__x));])
|
|
],
|
|
[
|
|
TEMP_CFLAGS="${TEMP_CFLAGS} -DHAVE_BSWAP"
|
|
AC_MSG_RESULT(yes)
|
|
],
|
|
[
|
|
AC_MSG_RESULT(no)
|
|
])
|
|
|
|
|
|
if test "${DEVELOPER_FLAGS}" = "yes"; then
|
|
TEMP_CFLAGS="${TEMP_CFLAGS} -W -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -Wno-long-long"
|
|
fi
|
|
|
|
CFLAGS="${TEMP_CFLAGS} $UNAME_DEFS $CPU_OPTIONS"
|
|
|
|
LIBS="${TEMP_LIBS}"
|
|
LDFLAGS="${TEMP_LDFLAGS}"
|
|
|
|
dnl
|
|
dnl Add the right exec path for rc scripts
|
|
dnl
|
|
if test $prefix = "NONE";then
|
|
BIN_PATH="$ac_default_prefix"
|
|
if test $exec_prefix = "NONE"; then
|
|
BIN_PATH="$BIN_PATH/bin"
|
|
else
|
|
BIN_PATH="$BIN_PATH/$bindir"
|
|
fi
|
|
else
|
|
if test $exec_prefix = "NONE";then
|
|
BIN_PATH="$prefix/bin"
|
|
else
|
|
BIN_PATH="$prefix/$bindir"
|
|
fi
|
|
fi
|
|
|
|
AC_SUBST(BIN_PATH)
|
|
|
|
AC_CONFIG_FILES([motion.init-FreeBSD.sh
|
|
motion.init-Debian
|
|
motion.init-RH
|
|
motion.spec
|
|
Makefile
|
|
])
|
|
AC_OUTPUT
|
|
|
|
echo ""
|
|
echo " ************************"
|
|
echo " * Configure status *"
|
|
echo " ************************"
|
|
echo ""
|
|
|
|
|
|
if test "${Darwin}" != ""; then
|
|
echo "OS : Darwin"
|
|
elif test "${FreeBSD}" != ""; then
|
|
echo "OS : *BSD"
|
|
else
|
|
echo "OS : Linux"
|
|
fi
|
|
|
|
if test "${PTHREAD_SUPPORT}" = "yes"; then
|
|
echo "pthread Support: Yes"
|
|
else
|
|
echo "pthread Support: No"
|
|
echo "**********************************************"
|
|
echo "** Fatal Error YOU MUST HAVE pthread Support *"
|
|
echo "**********************************************"
|
|
fi
|
|
|
|
if test "${JPEG_SUPPORT_MMX}" = "yes"; then
|
|
echo "jpeg-mmx Support: Yes"
|
|
elif test "${JPEG_SUPPORT}" = "yes"; then
|
|
echo "jpeg Support: Yes"
|
|
else
|
|
echo "jpeg Support: No"
|
|
echo "**********************************************"
|
|
echo "** Fatal Error YOU MUST HAVE jpeg Support ***"
|
|
echo "**********************************************"
|
|
fi
|
|
|
|
if test "${MJPEG_SUPPORT}" = "yes"; then
|
|
echo "mjpeg Support: Yes"
|
|
else
|
|
echo "mjpeg Support: No"
|
|
fi
|
|
|
|
if test "${FreeBSD}" != ""; then
|
|
if test "${BKTR}" = "yes"; then
|
|
echo "BKTR included: Yes"
|
|
else
|
|
echo "BKTR included: No"
|
|
fi
|
|
|
|
|
|
else
|
|
if test "${V4L}" = "yes"; then
|
|
echo "V4L included: Yes"
|
|
else
|
|
echo "V4L included: No"
|
|
fi
|
|
|
|
if test x$SUPPORTED_V4L2 = xtrue; then
|
|
echo "V4L2 supported: Yes"
|
|
else
|
|
echo "V4L2 supported: No"
|
|
fi
|
|
fi
|
|
|
|
if test "${FFMPEG_OK}" = "found"; then
|
|
echo "FFmpeg Support: Yes"
|
|
else
|
|
echo "FFmpeg Support: No"
|
|
fi
|
|
|
|
if test "${MYSQL_SUPPORT}" = "yes"; then
|
|
echo "MYSQL Support: Yes"
|
|
else
|
|
echo "MYSQL Support: No"
|
|
fi
|
|
|
|
if test "${PostgreSQL_SUPPORT}" = "yes"; then
|
|
echo "PostgreSQL Support: Yes"
|
|
else
|
|
echo "PostgreSQL Support: No"
|
|
fi
|
|
echo ""
|
|
|
|
echo "CFLAGS: $CFLAGS"
|
|
echo "LIBS: $LIBS"
|
|
echo "LDFLAGS: $LDFLAGS"
|
|
|
|
echo
|
|
echo "Install prefix: $prefix"
|
|
echo
|
|
|