251 lines
11 KiB
Plaintext
251 lines
11 KiB
Plaintext
AC_INIT(zm,1.23.3,support@zoneminder.com,ZoneMinder)
|
|
AC_CONFIG_SRCDIR(src/zm.h)
|
|
AM_INIT_AUTOMAKE
|
|
AM_CONFIG_HEADER(config.h)
|
|
|
|
PATH_BUILD=`pwd`
|
|
AC_SUBST(PATH_BUILD)
|
|
TIME_BUILD=`date +'%s'`
|
|
AC_SUBST(TIME_BUILD)
|
|
|
|
AC_ARG_VAR(ZM_DB_HOST,[Hostname where ZoneMinder database located])
|
|
AC_ARG_VAR(ZM_DB_NAME,[Name of ZoneMinder database])
|
|
AC_ARG_VAR(ZM_DB_USER,[Name of ZoneMinder database user])
|
|
AC_ARG_VAR(ZM_DB_PASS,[Password of ZoneMinder database user])
|
|
AC_ARG_VAR(ZM_SSL_LIB,[Library to use for ssl functions])
|
|
|
|
if test "$ZM_DB_HOST" == ""; then
|
|
AC_SUBST(ZM_DB_HOST,[localhost])
|
|
fi
|
|
if test "$ZM_DB_NAME" == ""; then
|
|
AC_SUBST(ZM_DB_NAME,[zm])
|
|
fi
|
|
if test "$ZM_DB_USER" == ""; then
|
|
AC_SUBST(ZM_DB_USER,[zmuser])
|
|
fi
|
|
if test "$ZM_DB_PASS" == ""; then
|
|
AC_SUBST(ZM_DB_PASS,[zmpass])
|
|
fi
|
|
if test "$ZM_SSL_LIB" == ""; then
|
|
AC_SUBST(ZM_SSL_LIB,gnutls)
|
|
fi
|
|
|
|
LIB_ARCH=lib
|
|
AC_ARG_WITH(libarch,
|
|
[ --with-libarch=<lib> architecture library path to use, default lib],
|
|
[LIB_ARCH=$with_libarch],
|
|
AC_MSG_WARN([You can call configure with the --with-libarch option.
|
|
This tells configure where to find architecture specific libraries.
|
|
The default of 'lib' is usually ok but 64 bit machines may require lib64.
|
|
e.g. --with-libarch=lib or --with-libarch=lib64])
|
|
)
|
|
AC_SUBST(LIB_ARCH)
|
|
|
|
MYSQL_PREFIX=/usr
|
|
AC_ARG_WITH(mysql,
|
|
[ --with-mysql=<path> prefix of MySQL installation, default /usr],
|
|
[MYSQL_PREFIX=$with_mysql],
|
|
AC_MSG_WARN([You can call configure with the --with-mysql option.
|
|
This tells configure where to find the MySql C library and headers if configure cannot
|
|
locate them automatically.
|
|
e.g. --with-mysql=/usr/local or --with-mysql=/usr])
|
|
)
|
|
AC_SUBST(MYSQL_PREFIX)
|
|
MYSQL_LIBS="-L${MYSQL_PREFIX}/${LIB_ARCH}/mysql"
|
|
MYSQL_CFLAGS="-I${MYSQL_PREFIX}/include"
|
|
AC_SUBST(MYSQL_LIBS)
|
|
AC_SUBST(MYSQL_CFLAGS)
|
|
|
|
LDFLAGS="${MYSQL_LIBS} $LDFLAGS"
|
|
|
|
FFMPEG_PREFIX=/usr
|
|
AC_ARG_WITH(ffmpeg,
|
|
[ --with-ffmpeg=<path> prefix of ffmpeg root directory for libavcodec etc, default /usr],
|
|
[FFMPEG_PREFIX=$with_ffmpeg],
|
|
AC_MSG_WARN([You can call configure with the --with-ffmpeg option.
|
|
This tells configure where to find the ffmpeg root directory within which are the libavcodec
|
|
and libavformat files that can be used to build true MPEG streaming into ZoneMinder. Ensure that
|
|
your copy of ffmpeg has installed libraries as well as binaries (use 'make installlib'). If you
|
|
are using a local install of ffmpeg you may have to remove or rename a previous real installation
|
|
as the headers and libraries from that will probably be picked up before your local copy.
|
|
e.g. --with-ffmpeg=/usr/local])
|
|
)
|
|
AC_SUBST(FFMPEG_PREFIX)
|
|
FFMPEG_LIBS="-L${FFMPEG_PREFIX}/${LIB_ARCH}"
|
|
FFMPEG_CFLAGS="-I${FFMPEG_PREFIX}/include"
|
|
AC_SUBST(FFMPEG_LIBS)
|
|
AC_SUBST(FFMPEG_CFLAGS)
|
|
|
|
LDFLAGS="${FFMPEG_LIBS} $LDFLAGS"
|
|
|
|
EXTRA_LIBS=
|
|
AC_ARG_WITH(extralibs,
|
|
[ --with-extralibs="<libs>" string containing extra libraries to pass to link, default empty],
|
|
[EXTRA_LIBS=$with_extralibs],
|
|
AC_MSG_WARN([You can call configure with the --with-extralibs option.
|
|
Ordinarily you will need to use this option only when your copy of ffmpeg has been built
|
|
with support for additional formats and you would use this option to detail which additional
|
|
libraries ffmpeg was built with so that it is able to link successfully with ZoneMinder.
|
|
You will need to wrap this option in quotes if it contains any spaces.
|
|
e.g. --with-extralibs="-lmp3lame"])
|
|
)
|
|
AC_SUBST(EXTRA_LIBS)
|
|
|
|
LDFLAGS="$LDFLAGS ${EXTRA_LIBS}"
|
|
|
|
AC_ARG_WITH(webdir,
|
|
[ --with-webdir=<path> prefix of web directory],
|
|
[WEB_PREFIX=$with_webdir],
|
|
AC_MSG_ERROR([You must call configure with the --with-webdir option.
|
|
This tells configure where to install PHP and web files and scripts.
|
|
e.g. --with-webdir=/var/www/html or --with-mysql=/www/vhtdocs/<site>])
|
|
)
|
|
AC_SUBST(WEB_PREFIX)
|
|
|
|
AC_ARG_WITH(cgidir,
|
|
[ --with-cgidir=<path> prefix of cgi directory],
|
|
[CGI_PREFIX=$with_cgidir],
|
|
AC_MSG_ERROR([You must call configure with the --with-cgidir option.
|
|
This tells configure where to install cgi files and scripts.
|
|
e.g. --with-cgidir=/var/www/cgi-bin or --with-mysql=/www/vhtdocs/<site>/cgi-bin])
|
|
)
|
|
AC_SUBST(CGI_PREFIX)
|
|
|
|
WEB_USER=apache
|
|
AC_ARG_WITH(webuser,
|
|
[ --with-webuser=<user> name of web user, default apache],
|
|
[WEB_USER=$with_webuser],
|
|
AC_MSG_WARN([You can call configure with the --with-webuser option.
|
|
This tells configure what the user name of the web user is if it is not the default of 'apache'.
|
|
e.g. --with-webuser=apache or --with-webuser=web])
|
|
)
|
|
AC_SUBST(WEB_USER)
|
|
|
|
WEB_GROUP=apache
|
|
AC_ARG_WITH(webgroup,
|
|
[ --with-webgroup=<group> name of web group, default apache],
|
|
[WEB_GROUP=$with_webgroup],
|
|
AC_MSG_WARN([You can call configure with the --with-webgroup option.
|
|
This tells configure what the group name of the web group is if it is not the default of 'apache'.
|
|
e.g. --with-webgroup=apache or --with-webgroup=web])
|
|
)
|
|
AC_SUBST(WEB_GROUP)
|
|
|
|
ENABLE_DEBUG=yes
|
|
AC_ARG_ENABLE(debug,
|
|
[ --enable-debug=<yes|no> enable or disable debug, default enabled],
|
|
[ENABLE_DEBUG=$enable_debug],
|
|
AC_MSG_WARN([You can call configure with the --enable-debug=<yes|no> or --disable-debug option.
|
|
This tells configure whether to compile ZoneMinder with debug included. Although debug is included
|
|
by default it is not output unless explicitly switched on elsewhere. These checks may induce a
|
|
small penalty on performance and if you are after squeezing the maximum possible performance out
|
|
of ZoneMinder you may use this switch to prevent debug from being compiled in.
|
|
e.g. --enable-debug=yes or --disable-debug])
|
|
)
|
|
if test "$ENABLE_DEBUG" != "yes"; then
|
|
AC_DEFINE(ZM_DBG_OFF,1,"Whether debug is switched off and compiled out")
|
|
fi
|
|
|
|
ENABLE_CRASHTRACE=yes
|
|
AC_ARG_ENABLE(crashtrace,
|
|
[ --enable-crashtrace=<yes|no> enable or disabled crash tracing, default enabled],
|
|
[ENABLE_CRASHTRACE=$enable_crashtrace],
|
|
AC_MSG_WARN([You can call configure with the --enable-crashtrace=<yes|no> or --disable-crashtrace option.
|
|
This tells configure whether to compile ZoneMinder with crash tracing included. This allows a
|
|
dump of the stack trace when a ZoneMinder binary crashes or is killed by an unexpected signal.
|
|
Although this should work on most systems it does rely on un(or loosely) documented features and
|
|
so should be regarded as experimental. If you experience problems compiling zm_signal.cpp or
|
|
ZoneMinder binaries fail to shut down correctly then you should probably disable this feature.
|
|
e.g. --enable-crashtrace=yes or --disable-crashtrace])
|
|
)
|
|
if test "$ENABLE_CRASHTRACE" != "yes"; then
|
|
AC_DEFINE(ZM_NO_CRASHTRACE,1,"Whether crash tracing is switched off and compiled out")
|
|
fi
|
|
|
|
AC_PROG_CC
|
|
AC_PROG_CXX
|
|
AC_PROG_INSTALL
|
|
AC_PROG_MAKE_SET
|
|
|
|
AC_HEADER_STDC
|
|
|
|
AC_LANG_CPLUSPLUS
|
|
|
|
AC_SUBST(LDFLAGS)
|
|
|
|
AC_TYPE_SIZE_T
|
|
AC_TYPE_SIGNAL
|
|
|
|
AC_CHECK_TYPES(siginfo_t,,,[#include <signal.h>])
|
|
AC_CHECK_TYPES(struct sigcontext,,,[#include <signal.h>])
|
|
AC_CHECK_MEMBERS([struct sigcontext.eip],,,[#include <signal.h>])
|
|
AC_CHECK_TYPES(ucontext_t,,,[#include <signal.h>])
|
|
|
|
AC_CHECK_HEADERS(mysql/mysql.h,,AC_MSG_ERROR(zm requires mysql/mysql.h),)
|
|
AC_CHECK_HEADERS(ffmpeg/avformat.h,,,)
|
|
AC_CHECK_HEADERS(libavformat/avformat.h,,,)
|
|
AC_CHECK_HEADERS(ffmpeg/swscale.h,,,)
|
|
AC_CHECK_HEADERS(libswscale/swscale.h,,,)
|
|
AC_CHECK_HEADERS(pcre/pcre.h,,,)
|
|
AC_CHECK_HEADERS(pcre.h,,,)
|
|
AC_CHECK_DECLS(round,,,[#include <math.h>])
|
|
AC_CHECK_DECLS(strsignal,,,[#include <string.h>])
|
|
if test "$ZM_SSL_LIB" == "openssl"; then
|
|
AC_CHECK_DECLS(MD5,,AC_MSG_ERROR([zm requires openssl/md5.h - use ZM_SSL_LIB option to select gnutls instead]),[#include <stdlib.h>
|
|
#include <openssl/md5.h>])
|
|
else
|
|
AC_CHECK_DECLS(MD5,,AC_MSG_ERROR([zm requires gnutls/openssl.h - use ZM_SSL_LIB option to select openssl instead]),[#include <stdlib.h>
|
|
#include <gnutls/openssl.h>])
|
|
fi
|
|
AC_CHECK_DECLS(backtrace,,,[#include <execinfo.h>])
|
|
AC_CHECK_LIB(jpeg,jpeg_start_compress,,AC_MSG_ERROR(zm requires libjpeg.a))
|
|
AC_CHECK_LIB(z,compress,,AC_MSG_ERROR(zm requires libz.a))
|
|
AC_CHECK_LIB(dl,dlsym,,AC_MSG_ERROR(zm requires libdl.a))
|
|
AC_CHECK_LIB(mysqlclient,mysql_init,,AC_MSG_ERROR(zm requires libmysqlclient.a))
|
|
if test "$ZM_SSL_LIB" == "openssl"; then
|
|
AC_CHECK_LIB(crypto,MD5,,AC_MSG_WARN([libcrypto.a is required for authenticated streaming - use ZM_SSL_LIB option to select gnutls instead]))
|
|
else
|
|
AC_CHECK_LIB(gnutls-openssl,MD5,,AC_MSG_WARN([gnutls-openssl.a is required for authenticated streaming - use ZM_SSL_LIB option to select openssl instead]))
|
|
fi
|
|
AC_CHECK_LIB(pcre,pcre_compile,,AC_MSG_WARN(libpcre.a may be required for remote/network camera support))
|
|
AC_CHECK_LIB(avutil,ff_gcd,,AC_MSG_WARN(libavutil.a may be required for MPEG streaming))
|
|
AC_CHECK_LIB(avcodec,avcodec_init,,AC_MSG_WARN(libavcodec.a is required for MPEG streaming))
|
|
AC_CHECK_LIB(avformat,av_new_stream,,AC_MSG_WARN(libavformat.a is required for MPEG streaming),-lavcodec)
|
|
AC_CHECK_LIB(swscale,sws_scale,,,-lswscale)
|
|
|
|
AC_PROG_PERL_VERSION(5.6.0)
|
|
|
|
AC_PROG_PERL_MODULES(Sys::Syslog,,AC_MSG_ERROR(zm requires SYS:Syslog))
|
|
AC_PROG_PERL_MODULES(DBI,,AC_MSG_ERROR(zm requires DBI))
|
|
AC_PROG_PERL_MODULES(DBD::mysql,,AC_MSG_ERROR(zm requires DBD::mysql))
|
|
AC_PROG_PERL_MODULES(Getopt::Long,,AC_MSG_ERROR(zm requires Getopt::Long))
|
|
AC_PROG_PERL_MODULES(Time::HiRes,,AC_MSG_ERROR(zm requires Time::HiRes))
|
|
AC_PROG_PERL_MODULES(Date::Manip,,AC_MSG_ERROR(zm requires Date::Manip))
|
|
AC_PROG_PERL_MODULES(LWP::UserAgent,,AC_MSG_ERROR(zm requires LWP::UserAgent))
|
|
AC_PROG_PERL_MODULES(PHP::Serialization,,AC_MSG_ERROR(zm requires PHP::Serialization))
|
|
|
|
AC_PROG_PERL_MODULES(Module::Load,,AC_MSG_WARN(Module::Load is required for PTZ camera control))
|
|
AC_PROG_PERL_MODULES(Device::SerialPort,,AC_MSG_WARN(Device::SerialPort is required for RS232/RS485 PTZ camera control))
|
|
AC_PROG_PERL_MODULES(Net::FTP,,AC_MSG_WARN(Net::FTP is required for automatic event uploading))
|
|
AC_PROG_PERL_MODULES(Archive::Tar,,AC_MSG_WARN(Archive::Tar may be required for automatic event uploading))
|
|
AC_PROG_PERL_MODULES(Archive::Zip,,AC_MSG_WARN(Archive::Zip may be required for automatic event uploading))
|
|
AC_PROG_PERL_MODULES(Net::SMTP,,AC_MSG_WARN(Net::SMTP may be required for automatic event email notification))
|
|
AC_PROG_PERL_MODULES(MIME::Lite,,AC_MSG_WARN(MIME::Lite may be required for automatic event email notification))
|
|
AC_PROG_PERL_MODULES(MIME::Entity,,AC_MSG_WARN(MIME::Entity may be required for automatic event email notification))
|
|
AC_PROG_PERL_MODULES(X10::ActiveHome,,AC_MSG_WARN(X10::ActiveHome is required for X.10 support))
|
|
|
|
AC_DEFINE_DIR([BINDIR],[bindir],[Expanded binary directory])
|
|
AC_DEFINE_DIR([LIBDIR],[libdir],[Expanded library directory])
|
|
AC_SUBST(RUNDIR,"/var/run")
|
|
AC_SUBST(ZM_RUNDIR,"$RUNDIR/zm")
|
|
AC_SUBST(ZM_PID,"$ZM_RUNDIR/zm.pid")
|
|
AC_DEFINE_DIR([SYSCONFDIR],[sysconfdir],[Expanded configuration directory])
|
|
AC_SUBST(ZM_CONFIG,"$SYSCONFDIR/zm.conf")
|
|
|
|
AC_OUTPUT(Makefile src/Makefile web/Makefile web/graphics/Makefile scripts/Makefile db/Makefile)
|
|
AC_OUTPUT(zm.conf src/zm_config.h web/zm_config.php scripts/zm db/zm_create.sql)
|
|
AC_OUTPUT(scripts/ZoneMinder/lib/ZoneMinder/Base.pm scripts/ZoneMinder/lib/ZoneMinder/Config.pm scripts/ZoneMinder/lib/ZoneMinder/ConfigAdmin.pm)
|
|
AC_OUTPUT(scripts/zmdbbackup scripts/zmdbrestore scripts/zmeventdump scripts/zmlogrotate.conf)
|
|
|
|
AC_CHECK_FILE(scripts/ZoneMinder/Makefile,,[cd scripts/ZoneMinder;perl Makefile.PL])
|