mirror of https://gitee.com/openkylin/cdrdao.git
425 lines
12 KiB
Plaintext
425 lines
12 KiB
Plaintext
dnl Process this file with autoconf to produce a configure script.
|
|
AC_REVISION($Revision: 1.26 $)dnl
|
|
|
|
AC_INIT(cdrdao, 1.2.4)
|
|
|
|
AC_CONFIG_SRCDIR(dao/main.cc)
|
|
AM_INIT_AUTOMAKE
|
|
AM_CONFIG_HEADER(config.h)
|
|
AM_MAINTAINER_MODE
|
|
AC_CANONICAL_HOST
|
|
#AM_GCONF_SOURCE_2
|
|
|
|
AC_ARG_WITH(pcctsbin,[ --with-pcctsbin=dir set directory of PCCTS parser generator executables],[pcctsbin=$withval],[pcctsbin=default])
|
|
|
|
AC_ARG_WITH(pcctsinc,[ --with-pcctsinc=dir set directory of PCCTS parser generator includes],[pcctsinc=$withval],[pcctsinc=default])
|
|
|
|
AC_ARG_WITH(linux-qnx-sched,[ --with-linux-qnx-sched enable QNX real time scheduling for Linux],[AC_DEFINE(LINUX_QNX_SCHEDULING,1,"Use real time scheduling for Linux")])
|
|
|
|
AC_ARG_WITH(posix-threads,[ --with-posix-threads use Posix threads for ring buffer (default is YES)],[use_pthreads=$withval],[use_pthreads=default])
|
|
|
|
AC_ARG_WITH(scglib,[ --with-scglib use bundled libscg SCSI library (see INSTALL) (default is NO)],[scglib=$withval],[scglib=default])
|
|
|
|
AC_ARG_WITH(gcdmaster,[ --with-gcdmaster enable build of gcdmaster Gnome GUI front-end (default is YES)],[gcdmaster=$withval],[gcdmaster=default])
|
|
|
|
AC_ARG_WITH(ogg-support,[ --with-ogg-support enable OGG format support (default is YES)],[],[with_ogg_support=yes])
|
|
|
|
AC_ARG_WITH(mp3-support,[ --with-mp3-support enable MP3 format support (default is YES)],[],[with_mp3_support=yes])
|
|
|
|
dnl Checks for programs.
|
|
AC_PROG_CC
|
|
AC_PROG_CXX
|
|
AC_PROG_CPP
|
|
AC_PROG_INSTALL
|
|
AC_PROG_RANLIB
|
|
AC_CHECK_PROG(AR,ar,ar)
|
|
AC_PROG_MAKE_SET
|
|
AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
|
|
|
|
dnl Checks for header files.
|
|
AC_HEADER_STDC
|
|
AC_HEADER_SYS_WAIT
|
|
AC_CHECK_HEADERS(fcntl.h getopt.h malloc.h unistd.h sys/mman.h sched.h)
|
|
|
|
dnl Checks for typedefs, structures, and compiler characteristics.
|
|
AC_C_BIGENDIAN
|
|
AC_TYPE_SIGNAL
|
|
AC_CHECK_SIZEOF(short)
|
|
AC_CHECK_SIZEOF(int)
|
|
AC_CHECK_SIZEOF(long)
|
|
AC_CHECK_SIZEOF(long long)
|
|
|
|
case 2 in
|
|
$ac_cv_sizeof_short)
|
|
AC_DEFINE(size16,short,"")
|
|
SIZE16="short";;
|
|
$ac_cv_sizeof_int)
|
|
AC_DEFINE(size16,int,"")
|
|
SIZE16="int";;
|
|
esac
|
|
|
|
case 4 in
|
|
$ac_cv_sizeof_short) SIZE32="short";;
|
|
$ac_cv_sizeof_int) SIZE32="int";;
|
|
$ac_cv_sizeof_long) SIZE32="long";;
|
|
esac
|
|
|
|
AC_CHECK_TYPE(u_int8_t, unsigned char)
|
|
AC_CHECK_TYPE(int16_t,,AC_DEFINE_UNQUOTED(int16_t,$SIZE16,""))
|
|
AC_CHECK_TYPE(int32_t,,AC_DEFINE_UNQUOTED(int32_t,$SIZE32,""))
|
|
AC_CHECK_TYPE(u_int16_t,,AC_DEFINE_UNQUOTED(u_int16_t,$SIZE16,""))
|
|
AC_CHECK_TYPE(u_int32_t,,AC_DEFINE_UNQUOTED(u_int32_t,$SIZE32,""))
|
|
|
|
if test -z "$SIZE16"; then
|
|
AC_MSG_ERROR(No 16 bit type found on this platform!)
|
|
fi
|
|
|
|
dnl Check for additionally required libraries
|
|
|
|
AC_CHECK_FUNC([sched_getparam],[AC_DEFINE(HAVE_SCHED_GETPARAM,1,"")],
|
|
[AC_CHECK_LIB([posix4],[sched_getparam],[use_libposix4=yes;AC_DEFINE(HAVE_SCHED_GETPARAM)])])
|
|
|
|
AC_CHECK_FUNC([sched_get_priority_max],[AC_DEFINE(HAVE_SCHED_GET_PRIORITY_MAX,1,"")],
|
|
AC_CHECK_LIB(posix4,sched_get_priority_max,[use_libposix4=yes;AC_DEFINE(HAVE_SCHED_GET_PRIORITY_MAX,1,"")]))
|
|
|
|
AC_CHECK_FUNC([sched_setscheduler],[AC_DEFINE(HAVE_SCHED_SETSCHEDULER,1,"")],
|
|
[AC_CHECK_LIB(posix4,sched_setscheduler,[use_libposix4=yes;AC_DEFINE(HAVE_SCHED_SETSCHEDULER,1,"")])])
|
|
|
|
AC_CHECK_LIB([socket],[socket],[use_libsocket=yes])
|
|
AC_CHECK_LIB([socket],[connect],[use_libsocket=yes])
|
|
|
|
dnl Add 'libsocket' if required
|
|
if test "$use_libsocket" = yes; then
|
|
LIBS="$LIBS -lsocket"
|
|
fi
|
|
|
|
dnl Check if libposix4 must be linked
|
|
if test "$use_libposix4" = yes; then
|
|
LIBS="$LIBS -lposix4"
|
|
fi
|
|
|
|
dnl Checks for library functions.
|
|
AC_CHECK_FUNCS(strerror)
|
|
AC_CHECK_FUNCS(mlockall munlockall)
|
|
AC_CHECK_FUNCS(getpagesize)
|
|
AC_CHECK_FUNCS(usleep)
|
|
AC_CHECK_FUNCS(setreuid setregid seteuid setegid setuid setgid)
|
|
|
|
AC_CHECK_FUNCS(inet_aton)
|
|
|
|
dnl check if Posix threads should be used
|
|
if test "$use_pthreads" = default; then
|
|
use_pthreads=yes
|
|
fi
|
|
|
|
if test "$use_pthreads" = yes; then
|
|
AC_CHECK_FUNC(pthread_create,have_pthread_std=yes,have_pthread_std=no)
|
|
|
|
if test "$have_pthread_std" = yes; then
|
|
AC_DEFINE(USE_POSIX_THREADS,1,"")
|
|
thread_libs=""
|
|
thread_test_lib=""
|
|
else
|
|
AC_CHECK_LIB(pthread,pthread_create,have_pthread=yes,have_pthread=no)
|
|
|
|
if test "$have_pthread" = yes; then
|
|
AC_DEFINE(USE_POSIX_THREADS,1,"")
|
|
thread_libs="-lpthread"
|
|
thread_test_lib="pthread"
|
|
else
|
|
AC_CHECK_LIB(pthread32,pthread_create,have_pthread32=yes,have_pthread32=no)
|
|
if test "$have_pthread32" = yes; then
|
|
AC_DEFINE(USE_POSIX_THREADS)
|
|
thread_libs="-lpthread32"
|
|
thread_test_lib="pthread32"
|
|
else
|
|
AC_CHECK_LIB(c_r,pthread_create,have_c_r=yes,have_c_r=no)
|
|
|
|
if test "$have_c_r" = yes; then
|
|
AC_DEFINE(USE_POSIX_THREADS)
|
|
thread_libs="-lc_r"
|
|
thread_test_lib="c_r"
|
|
else
|
|
use_pthreads=no
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if test "$use_pthreads" = yes; then
|
|
if test "$have_pthread_std" = yes; then
|
|
AC_CHECK_FUNCS(pthread_sigmask pthread_attr_setschedpolicy)
|
|
AC_CHECK_FUNCS(pthread_attr_setschedparam pthread_getschedparam)
|
|
AC_CHECK_FUNCS(pthread_setschedparam)
|
|
else
|
|
AC_CHECK_LIB($thread_test_lib,pthread_sigmask,AC_DEFINE(HAVE_PTHREAD_SIGMASK))
|
|
AC_CHECK_LIB($thread_test_lib,pthread_attr_setschedpolicy,AC_DEFINE(HAVE_PTHREAD_ATTR_SETSCHEDPOLICY))
|
|
AC_CHECK_LIB($thread_test_lib,pthread_attr_setschedparam,AC_DEFINE(HAVE_PTHREAD_ATTR_SETSCHEDPARAM))
|
|
AC_CHECK_LIB($thread_test_lib,pthread_getschedparam,AC_DEFINE(HAVE_PTHREAD_GETSCHEDPARAM))
|
|
AC_CHECK_LIB($thread_test_lib,pthread_setschedparam,AC_DEFINE(HAVE_PTHREAD_SETSCHEDPARAM))
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if test "$use_pthreads" = yes; then
|
|
mydefs="-D_THREAD_SAFE -D_REENTRANT $mydefs"
|
|
fi
|
|
|
|
|
|
dnl Checks for pccts parser generator
|
|
en_pccts="no"
|
|
if test "$pcctsbin" = default; then
|
|
antlr_path='$(srcdir)/../pccts/antlr/antlr'
|
|
dlg_path='$(srcdir)/../pccts/dlg/dlg'
|
|
|
|
|
|
en_pccts="yes"
|
|
else
|
|
AC_PATH_PROG(antlr_path,antlr,no,$pcctsbin)
|
|
AC_PATH_PROG(dlg_path,dlg,no,$pcctsbin)
|
|
|
|
if test $antlr_path = "no" || test $dlg_path = "no"; then
|
|
AC_MSG_WARN([PCCTS: antlr or dlg not found in path, using own.])
|
|
antlr_path='$(srcdir)/../pccts/antlr/antlr'
|
|
dlg_path='$(srcdir)/../pccts/dlg/dlg'
|
|
en_pccts="yes"
|
|
fi
|
|
fi
|
|
|
|
|
|
if test "$pcctsinc" = default; then
|
|
pcctsinc='$(srcdir)/../pccts/h'
|
|
antlr_path='$(srcdir)/../pccts/antlr/antlr'
|
|
dlg_path='$(srcdir)/../pccts/dlg/dlg'
|
|
en_pccts="yes"
|
|
else
|
|
ac_save_CPPFLAGS="$CPPFLAGS"
|
|
CPPFLAGS="$CPPFLAGS -I$pcctsinc"
|
|
AC_CHECK_HEADER(pcctscfg.h,,[
|
|
AC_MSG_WARN([PCCTS: headers not found in path, using own.])
|
|
pcctsinc='$(srcdir)/../pccts/h'
|
|
antlr_path='$(srcdir)/../pccts/antlr/antlr'
|
|
en_pccts="yes"])
|
|
CPPFLAGS="$ac_save_CPPFLAGS"
|
|
fi
|
|
|
|
utiltools="toc2cue cue2toc"
|
|
en_cdrdao=yes
|
|
en_toc2cue=yes
|
|
en_cue2toc=yes
|
|
en_toc2mp3=no
|
|
|
|
AC_PATH_LAME(3.100, [utiltools="$utiltools toc2mp3" en_toc2mp3=yes],
|
|
[echo "Building of toc2mp3 disabled"])
|
|
|
|
dnl Determine whether we're building the gcdaster GUI front-end
|
|
en_gcdmaster=no
|
|
if test "$gcdmaster" = default; then
|
|
gcdmaster=yes
|
|
fi
|
|
if test "$gcdmaster" = yes; then
|
|
en_gcdmaster=yes
|
|
PKG_CHECK_MODULES(SIGCPP2, sigc++-2.0 >= 2.0.0,[],
|
|
[echo "Building of gcdmaster disabled"; en_gcdmaster=no])
|
|
PKG_CHECK_MODULES(GTKMM2, gtkmm-2.4 >= 2.4.0,[],
|
|
[echo "Building of gcdmaster disabled"; en_gcdmaster=no])
|
|
PKG_CHECK_MODULES(LIBGUIMM2, libgnomeuimm-2.6 >= 2.6.0,[],
|
|
[echo "Building of gcdmaster disabled"; en_gcdmaster=no])
|
|
fi
|
|
|
|
dnl Determine source for scsi interface class
|
|
|
|
if test "$scglib" = yes; then
|
|
scsilib_dir=scsilib
|
|
scsilib_incl='-I$(srcdir)/../scsilib/export -I$(srcdir)/../scsilib/export/libschily'
|
|
scsilib_libs="-L../scsilib/export"
|
|
en_scsilib="yes"
|
|
|
|
scsilib_libs="$scsilib_libs -lscg -lschily"
|
|
scsilib_objs="ScsiIf-lib.o"
|
|
|
|
case "$host" in
|
|
*-freebsd* | *-kfreebsd*-gnu)
|
|
scsilib_libs="$scsilib_libs -lcam"
|
|
;;
|
|
esac
|
|
|
|
else
|
|
|
|
en_scsilib="no (using native interface)"
|
|
scsilib_dir=""
|
|
scsilib_incl=""
|
|
scsilib_libs=""
|
|
|
|
case "$host" in
|
|
*-linux*)
|
|
scsilib_libs=""
|
|
scsilib_objs="ScsiIf-linux.o sg_err.o"
|
|
;;
|
|
|
|
*-freebsd* | *-kfreebsd*-gnu)
|
|
scsilib_libs="-lcam"
|
|
scsilib_objs="ScsiIf-freebsd-cam.o"
|
|
;;
|
|
|
|
*-netbsd*)
|
|
scsilib_libs="-lutil"
|
|
scsilib_objs="ScsiIf-netbsd.o"
|
|
;;
|
|
|
|
*-irix*)
|
|
scsilib_libs=""
|
|
scsilib_objs="ScsiIf-irix.o"
|
|
;;
|
|
|
|
*-darwin*)
|
|
scsilib_libs="-framework IOKit -framework CoreFoundation"
|
|
scsilib_objs="ScsiIf-osx.o"
|
|
;;
|
|
|
|
*-pc-cygwin*)
|
|
scsilib_libs=""
|
|
scsilib_objs="ScsiIf-win.o"
|
|
;;
|
|
|
|
*)
|
|
AC_MSG_ERROR([No native interface for operating system $host_os, use --with-libscg])
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
dnl Selection of buffer code
|
|
case "$host" in
|
|
*)
|
|
dao_src=dao.cc
|
|
;;
|
|
esac
|
|
|
|
dnl Additional operating system dependent selections
|
|
case "$host" in
|
|
*-freebsd*)
|
|
if test "$use_pthreads" = yes; then
|
|
LDFLAGS="-pthread $LDFLAGS"
|
|
dnl -lc_r is automatically done by the linker
|
|
thread_libs=""
|
|
fi
|
|
;;
|
|
*darwin*)
|
|
AC_DEFINE(_P1003_1B_VISIBLE,1,"")
|
|
LIBS="$LIBS -framework CoreServices -framework IOKit"
|
|
;;
|
|
|
|
esac
|
|
|
|
dnl Sound device selection for xcdrdao
|
|
case "$host" in
|
|
*-linux* | *-freebsd* | *-kfreebsd*-gnu | *-solaris*)
|
|
sound_if_obj=SoundIF-ao.o
|
|
;;
|
|
|
|
*)
|
|
sound_if_obj=SoundIF-none.o
|
|
;;
|
|
esac
|
|
|
|
dnl Check for OGG support
|
|
if test "$with_ogg_support" = yes; then
|
|
PKG_CHECK_MODULES(VORBISFILE, vorbisfile >= 1.0, [],
|
|
[echo "OGG support disabled"; with_ogg_support=no])
|
|
fi
|
|
|
|
dnl Check for MP3 support
|
|
if test "$with_mp3_support" = yes; then
|
|
PKG_CHECK_MODULES(MAD, mad >= 0.10, [],
|
|
[echo "libMAD detection via pkg-config failed"; with_mp3_support=no])
|
|
if test "$with_mp3_support" = no; then
|
|
AC_CHECK_LIB(mad, mad_stream_init, [AC_CHECK_HEADER([mad.h])])
|
|
if test "$ac_cv_lib_mad_mad_stream_init" = yes; then
|
|
AC_ARG_VAR(MAD_LIBS,"")
|
|
AC_ARG_VAR(MAD_CFLAGS,"")
|
|
MAD_LIBS="-lmad"
|
|
MAD_CFLAGS=""
|
|
with_mp3_support=yes
|
|
else
|
|
echo "MP3 support disabled"; with_mp3_support=no
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
dnl Check for libao support
|
|
if test "$with_mp3_support" = yes || test "$with_ogg_support" = yes || test "$en_gcdmaster" = yes; then
|
|
PKG_CHECK_MODULES(AO, ao >= 0.8, [AC_DEFINE(HAVE_AO,1,"")],
|
|
[echo "Building of gcdmaster disabled"; en_gcdmaster=no])
|
|
fi
|
|
|
|
if test "$with_ogg_support" = yes; then
|
|
AC_DEFINE(HAVE_OGG_SUPPORT,1,"")
|
|
fi
|
|
if test "$with_mp3_support" = yes; then
|
|
AC_DEFINE(HAVE_MP3_SUPPORT,1,"")
|
|
fi
|
|
|
|
dnl General platform specific setup
|
|
|
|
case "$host" in
|
|
*-sysv4*)
|
|
mydefs="-DUNIXWARE $mydefs"
|
|
LIBS="$LIBS -L/usr/ucblib -lucb"
|
|
;;
|
|
esac
|
|
|
|
|
|
AC_SUBST(en_gcdmaster)
|
|
AC_SUBST(en_toc2mp3)
|
|
AC_SUBST(en_toc2cue)
|
|
AC_SUBST(en_cue2toc)
|
|
AC_SUBST(en_cdrdao)
|
|
AC_SUBST(scsilib_dir)
|
|
AC_SUBST(scsilib_incl)
|
|
AC_SUBST(scsilib_libs)
|
|
AC_SUBST(scsilib_objs)
|
|
AC_SUBST(pcctsinc)
|
|
AC_SUBST(dao_src)
|
|
AC_SUBST(sound_if_obj)
|
|
AC_SUBST(thread_libs)
|
|
AC_SUBST(mydefs)
|
|
AC_SUBST(antlr_path)
|
|
AC_SUBST(dlg_path)
|
|
|
|
AM_CONDITIONAL([COND_GCDMASTER], [test "$en_gcdmaster" = yes])
|
|
AM_CONDITIONAL([COND_TOC2MP3], [test "$en_toc2mp3" = yes])
|
|
AM_CONDITIONAL([COND_SCSILIB], [test "$en_scsilib" = yes])
|
|
AM_CONDITIONAL([COND_PCCTS], [test "$en_pccts" = yes])
|
|
AM_CONDITIONAL([COND_MP3], [test "$with_mp3_support" = yes])
|
|
AM_CONDITIONAL([COND_OGG], [test "$with_ogg_support" = yes])
|
|
|
|
AC_CONFIG_FILES([
|
|
trackdb/Makefile
|
|
dao/Makefile
|
|
utils/Makefile
|
|
gcdmaster/Makefile
|
|
gcdmaster/gcdmaster.schemas
|
|
gcdmaster/stock/Makefile
|
|
paranoia/Makefile
|
|
pccts/Makefile
|
|
pccts/antlr/Makefile
|
|
pccts/dlg/Makefile
|
|
Makefile
|
|
specs/cdrdao.fedora.spec
|
|
])
|
|
|
|
AC_OUTPUT
|
|
|
|
echo
|
|
echo "------------------------------------------------------"
|
|
echo " Building scsilib : $en_scsilib"
|
|
echo " Building pccts : $en_pccts"
|
|
echo " Building cdrdao : $en_cdrdao"
|
|
echo " OGG support : $with_ogg_support"
|
|
echo " MP3 support : $with_mp3_support"
|
|
echo " Building toc2cue : $en_toc2cue"
|
|
echo " Building cue2toc : $en_cue2toc"
|
|
echo " Building toc2mp3 : $en_toc2mp3"
|
|
echo " Building gcdmaster : $en_gcdmaster"
|
|
echo "------------------------------------------------------"
|