2003-04-25 21:26:47 +00:00
|
|
|
dnl Copyright (C) 2003 Rocky Bernstein <rocky@panix.com>
|
|
|
|
|
dnl
|
|
|
|
|
dnl This program is free software; you can redistribute it and/or modify
|
|
|
|
|
dnl it under the terms of the GNU General Public License as published by
|
|
|
|
|
dnl the Free Software Foundation; either version 2, or (at your option)
|
|
|
|
|
dnl any later version.
|
|
|
|
|
dnl
|
|
|
|
|
dnl This program is distributed in the hope that it will be useful,
|
|
|
|
|
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
dnl GNU General Public License for more details.
|
|
|
|
|
dnl
|
|
|
|
|
dnl You should have received a copy of the GNU General Public License
|
|
|
|
|
dnl along with this program; if not, write to the Free Software
|
|
|
|
|
dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
|
|
|
dnl 02111-1307, USA.
|
|
|
|
|
|
2003-09-13 06:25:36 +00:00
|
|
|
AC_REVISION([$Id: configure.ac,v 1.39 2003/09/13 06:25:36 rocky Exp $])dnl
|
2003-03-24 19:01:09 +00:00
|
|
|
AC_INIT(lib/cdio.c)
|
|
|
|
|
AM_CONFIG_HEADER(config.h)
|
2003-09-07 18:11:35 +00:00
|
|
|
AM_INIT_AUTOMAKE(libcdio, 0.64-cvs)
|
2003-03-24 19:01:09 +00:00
|
|
|
|
|
|
|
|
AM_SANITY_CHECK
|
|
|
|
|
|
2003-03-30 01:11:56 +00:00
|
|
|
AC_ARG_WITH(cdinfo,
|
2003-03-30 01:31:06 +00:00
|
|
|
[ --without-cdinfo build sample program cdinfo (enabled by default)],
|
|
|
|
|
enable_cdinfo="${withval}", enable_cdinfo=yes)
|
2003-03-30 01:11:56 +00:00
|
|
|
|
2003-03-24 19:01:09 +00:00
|
|
|
dnl Checks for programs.
|
|
|
|
|
AC_PROG_CC
|
|
|
|
|
|
2003-06-10 01:19:15 +00:00
|
|
|
cd_drivers='bin/cue NRG '
|
|
|
|
|
|
2003-03-24 19:01:09 +00:00
|
|
|
if test "x$GCC" != "xyes"
|
|
|
|
|
then
|
|
|
|
|
echo "*** non GNU CC compiler detected."
|
|
|
|
|
echo "*** This package has not been tested very well with non GNU compilers"
|
|
|
|
|
echo "*** you should try to use 'gcc' for compiling this package."
|
|
|
|
|
else
|
2003-09-01 22:50:25 +00:00
|
|
|
WARN_CFLAGS="-Wall -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -Wunused -Wpointer-arith -Wwrite-strings -Wnested-externs -Wno-sign-compare"
|
2003-03-24 19:01:09 +00:00
|
|
|
|
|
|
|
|
for WOPT in $WARN_CFLAGS; do
|
|
|
|
|
SAVE_CFLAGS="$CFLAGS"
|
|
|
|
|
CFLAGS="$CFLAGS $WOPT"
|
|
|
|
|
AC_MSG_CHECKING([whether $CC understands $WOPT])
|
|
|
|
|
AC_TRY_COMPILE([], [], has_option=yes, has_option=no,)
|
|
|
|
|
CFLAGS="$SAVE_CFLAGS"
|
|
|
|
|
AC_MSG_RESULT($has_option)
|
|
|
|
|
if test $has_option = yes; then
|
|
|
|
|
warning_flags="$warning_flags $option"
|
|
|
|
|
fi
|
|
|
|
|
unset has_option
|
|
|
|
|
unset SAVE_CFLAGS
|
|
|
|
|
done
|
|
|
|
|
WARNING_FLAGS="$warning_flags"
|
|
|
|
|
unset warning_flags
|
|
|
|
|
fi
|
|
|
|
|
|
2003-06-08 13:08:37 +00:00
|
|
|
dnl We use a Perl for documentation and regression tests
|
2003-03-24 19:01:09 +00:00
|
|
|
AC_PATH_PROG(PERL, perl, no)
|
2003-06-08 13:08:37 +00:00
|
|
|
AC_SUBST(PERL)
|
|
|
|
|
|
|
|
|
|
dnl We use a diff in regression testing
|
|
|
|
|
AC_PATH_PROG(DIFF, diff, no)
|
|
|
|
|
DIFF_OPTS=
|
|
|
|
|
|
2003-06-10 01:19:15 +00:00
|
|
|
if test "$DIFF" = no ; then
|
2003-06-08 13:08:37 +00:00
|
|
|
AC_PATH_PROG(DIFF, cmp, no)
|
|
|
|
|
else
|
|
|
|
|
dnl Try for GNU diff options.
|
|
|
|
|
# MSDOG output uses \r\n rather than \n in tests
|
|
|
|
|
for diff_opt in -w --unified ; do
|
|
|
|
|
if $DIFF $diff_opt ./configure ./configure > /dev/null 2>&1; then
|
|
|
|
|
AC_MSG_RESULT([adding $diff_opt to diff in regression tests])
|
|
|
|
|
DIFF_OPTS="$DIFF_OPTS $diff_opt"
|
|
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
fi
|
|
|
|
|
AC_SUBST(DIFF)
|
|
|
|
|
AC_SUBST(DIFF_OPTS)
|
2003-06-08 12:33:37 +00:00
|
|
|
|
2003-03-24 19:01:09 +00:00
|
|
|
|
2003-03-30 01:11:56 +00:00
|
|
|
AM_PATH_LIBPOPT(, [enable_cdinfo=no])
|
2003-03-24 19:01:09 +00:00
|
|
|
|
|
|
|
|
dnl headers
|
|
|
|
|
|
|
|
|
|
AC_STDC_HEADERS
|
|
|
|
|
AC_CHECK_HEADERS(stdint.h inttypes.h stdbool.h)
|
|
|
|
|
|
|
|
|
|
dnl compiler
|
|
|
|
|
AC_C_BIGENDIAN
|
|
|
|
|
AC_C_CONST
|
|
|
|
|
AC_C_INLINE
|
|
|
|
|
|
|
|
|
|
dnl ISOC99_PRAGMA
|
|
|
|
|
AC_MSG_CHECKING([whether $CC supports ISOC99 _Pragma()])
|
|
|
|
|
AC_TRY_COMPILE([],[_Pragma("pack(1)")], [
|
|
|
|
|
ISOC99_PRAGMA=yes
|
|
|
|
|
AC_DEFINE(HAVE_ISOC99_PRAGMA, [], [Supports ISO _Pragma() macro])
|
|
|
|
|
],ISOC99_PRAGMA=no)
|
|
|
|
|
AC_MSG_RESULT($ISOC99_PRAGMA)
|
|
|
|
|
|
|
|
|
|
dnl empty_array_size
|
|
|
|
|
AC_MSG_CHECKING([how to create empty arrays])
|
|
|
|
|
|
|
|
|
|
empty_array_size="xxx"
|
|
|
|
|
AC_TRY_COMPILE([],[struct { int foo; int bar[]; } doo;], empty_array_size="")
|
|
|
|
|
|
|
|
|
|
if test "x$empty_array_size" = "xxxx";then
|
|
|
|
|
AC_TRY_COMPILE([],[struct { int foo; int bar[0]; } doo;], empty_array_size="0")
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if test "x$empty_array_size" = "xxxx"
|
|
|
|
|
then
|
|
|
|
|
AC_MSG_ERROR([compiler is unable to creaty empty arrays])
|
|
|
|
|
else
|
|
|
|
|
AC_DEFINE_UNQUOTED(EMPTY_ARRAY_SIZE, $empty_array_size,
|
|
|
|
|
[what to put between the brackets for empty arrays])
|
|
|
|
|
changequote(`,')
|
|
|
|
|
msg="[${empty_array_size}]"
|
|
|
|
|
changequote([,])
|
|
|
|
|
AC_MSG_RESULT($msg)
|
|
|
|
|
fi
|
|
|
|
|
dnl empty_array_size
|
|
|
|
|
|
|
|
|
|
dnl bitfield order
|
|
|
|
|
AC_MSG_CHECKING(bitfield ordering in structs)
|
|
|
|
|
AC_TRY_RUN([
|
|
|
|
|
int
|
|
|
|
|
main() {
|
|
|
|
|
struct { char bit_0:1, bit_12:2, bit_345:3, bit_67:2; }
|
|
|
|
|
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
|
|
|
|
|
__attribute__((packed))
|
|
|
|
|
#endif
|
|
|
|
|
bf = { 1,1,1,1 };
|
|
|
|
|
if (sizeof (bf) != 1) return 1;
|
|
|
|
|
return *((unsigned char*) &bf) != 0x4b; }
|
|
|
|
|
], bf_lsbf=1, AC_TRY_RUN([
|
|
|
|
|
int
|
|
|
|
|
main() {
|
|
|
|
|
struct { char bit_0:1, bit_12:2, bit_345:3, bit_67:2; }
|
|
|
|
|
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
|
|
|
|
|
__attribute__((packed))
|
|
|
|
|
#endif
|
|
|
|
|
bf = { 1,1,1,1 };
|
|
|
|
|
if (sizeof (bf) != 1) return 1;
|
|
|
|
|
return *((unsigned char*) &bf) != 0xa5; }
|
|
|
|
|
], bf_lsbf=0, AC_MSG_ERROR([unsupported bitfield ordering])))
|
|
|
|
|
if test "x$bf_lsbf" = "x1"; then
|
|
|
|
|
AC_MSG_RESULT(LSBF)
|
|
|
|
|
AC_DEFINE(BITFIELD_LSBF, [], [compiler does lsbf in struct bitfields])
|
|
|
|
|
else
|
|
|
|
|
AC_MSG_RESULT(MSBF)
|
|
|
|
|
fi
|
|
|
|
|
dnl
|
|
|
|
|
|
|
|
|
|
dnl system
|
2003-06-07 01:20:40 +00:00
|
|
|
|
2003-03-24 19:01:09 +00:00
|
|
|
LIBS="$LIBS -lm"
|
|
|
|
|
CFLAGS="$CFLAGS $WARN_CFLAGS"
|
|
|
|
|
|
|
|
|
|
AM_CONDITIONAL(CYGWIN, test "x$CYGWIN" = "xyes")
|
2003-03-30 01:11:56 +00:00
|
|
|
AM_CONDITIONAL(BUILD_CDINFO, test "x$enable_cdinfo" = "xyes")
|
2003-03-29 17:32:00 +00:00
|
|
|
AM_CONDITIONAL(BUILD_CDINFO_LINUX, test "x$enable_cdinfo_linux" = "xyes")
|
|
|
|
|
AM_CONDITIONAL(BUILD_CDIOTEST, test "x$enable_cdiotest" = "xyes")
|
2003-03-24 19:01:09 +00:00
|
|
|
|
|
|
|
|
AM_PROG_LIBTOOL
|
|
|
|
|
|
|
|
|
|
dnl Checks for header files.
|
|
|
|
|
AC_STDC_HEADERS
|
|
|
|
|
|
|
|
|
|
AC_HAVE_HEADERS( stdbool.h stdlib.h stdint.h stdio.h string.h strings.h linux/version.h sys/cdio.h sys/stat.h sys/types.h )
|
|
|
|
|
|
2003-04-22 12:40:42 +00:00
|
|
|
LIBCDIO_CFLAGS='-I$(top_srcdir)/lib/ -I$(top_srcdir)/include/'
|
2003-03-24 19:01:09 +00:00
|
|
|
LIBCDIO_LIBS='$(top_builddir)/lib/libcdio.la'
|
2003-08-17 05:31:19 +00:00
|
|
|
LIBISO9660_LIBS='$(top_builddir)/lib/libiso9660.la'
|
2003-03-24 19:01:09 +00:00
|
|
|
AC_SUBST(LIBCDIO_CFLAGS)
|
|
|
|
|
AC_SUBST(LIBCDIO_LIBS)
|
2003-08-17 05:31:19 +00:00
|
|
|
AC_SUBST(LIBISO9660_LIBS)
|
2003-03-24 19:01:09 +00:00
|
|
|
|
2003-03-30 01:31:06 +00:00
|
|
|
ACLOCAL_AMFLAGS='-I .'
|
|
|
|
|
AC_SUBST(ACLOCAL_AMFLAGS)
|
|
|
|
|
|
2003-03-24 19:01:09 +00:00
|
|
|
case $host_os in
|
2003-09-13 06:25:36 +00:00
|
|
|
darwin6*)
|
|
|
|
|
AC_CHECK_HEADERS(IOKit/IOKitLib.h, [have_osx_cdrom="yes"])
|
|
|
|
|
AC_DEFINE([HAVE_OSX_CDROM], [1],
|
|
|
|
|
[Define 1 if you have OSX-type CD-ROM support])
|
|
|
|
|
cd_drivers="${cd_drivers}OS X "
|
|
|
|
|
;;
|
2003-03-24 19:01:09 +00:00
|
|
|
linux*)
|
|
|
|
|
AC_CHECK_HEADERS(linux/version.h)
|
|
|
|
|
AC_CHECK_HEADERS(linux/cdrom.h, [have_linux_cdrom_h="yes"])
|
|
|
|
|
if test "x$have_linux_cdrom_h" = "xyes" ; then
|
|
|
|
|
AC_TRY_COMPILE(,[
|
|
|
|
|
#include <linux/cdrom.h>
|
|
|
|
|
struct cdrom_generic_command test;
|
|
|
|
|
int has_timeout=sizeof(test.timeout);],
|
|
|
|
|
[AC_DEFINE([HAVE_LINUX_CDROM_TIMEOUT], [1],
|
|
|
|
|
[Define 1 if timeout is in cdrom_generic_command struct])])
|
2003-06-10 01:19:15 +00:00
|
|
|
AC_DEFINE([HAVE_LINUX_CDROM], [1],
|
|
|
|
|
[Define 1 if you have Linux-type CD-ROM support])
|
|
|
|
|
cd_drivers="${cd_drivers}GNU/Linux "
|
2003-03-24 19:01:09 +00:00
|
|
|
fi
|
|
|
|
|
;;
|
|
|
|
|
bsdi*)
|
2003-03-30 12:59:37 +00:00
|
|
|
AC_CHECK_HEADERS(dvd.h, [have_bsdi_dvd_h="yes"])
|
|
|
|
|
if test "x$have_bsdi_dvd_h" = "xyes" ; then
|
|
|
|
|
AC_DEFINE([HAVE_BSDI_CDROM], [1],
|
|
|
|
|
[Define 1 if you have BSDI-type CD-ROM support])
|
|
|
|
|
LIBS="$LIBS -ldvd"
|
2003-06-10 01:19:15 +00:00
|
|
|
cd_drivers="${cd_drivers}BSDI "
|
2003-03-30 12:59:37 +00:00
|
|
|
fi
|
2003-03-24 19:01:09 +00:00
|
|
|
;;
|
|
|
|
|
sunos*|sun*|solaris*)
|
|
|
|
|
AC_CHECK_HEADERS(sys/cdio.h)
|
|
|
|
|
AC_DEFINE([HAVE_SOLARIS_CDROM], [1],
|
|
|
|
|
[Define 1 if you have Solaris CD-ROM support])
|
2003-06-10 01:19:15 +00:00
|
|
|
cd_drivers="${cd_drivers}Solaris "
|
2003-03-24 19:01:09 +00:00
|
|
|
;;
|
2003-06-07 08:53:16 +00:00
|
|
|
cygwin*)
|
2003-06-10 01:19:15 +00:00
|
|
|
LIBS="$LIBS -mcygwin"
|
2003-06-07 08:53:16 +00:00
|
|
|
AC_DEFINE([CYGWIN], [1],
|
|
|
|
|
[Define 1 if you are compiling using cygwin])
|
2003-06-10 01:19:15 +00:00
|
|
|
AC_DEFINE([HAVE_WIN32_CDROM], [1],
|
|
|
|
|
[Define 1 if you have MinGW CD-ROM support])
|
|
|
|
|
LIBS="$LIBS -lwinmm -mcygwin"
|
|
|
|
|
cd_drivers="${cd_drivers}MinGW "
|
2003-06-07 08:53:16 +00:00
|
|
|
;;
|
|
|
|
|
mingw*)
|
|
|
|
|
AC_DEFINE([MINGW32], [1],
|
|
|
|
|
[Define 1 if you are compiling using MinGW])
|
2003-05-27 02:55:58 +00:00
|
|
|
AC_DEFINE([HAVE_WIN32_CDROM], [1],
|
2003-06-10 01:19:15 +00:00
|
|
|
[Define 1 if you have MinGW CD-ROM support])
|
2003-06-07 01:20:40 +00:00
|
|
|
LIBS="$LIBS -lwinmm -mwindows"
|
2003-06-10 01:19:15 +00:00
|
|
|
cd_drivers="${cd_drivers}MinGW "
|
2003-05-27 02:55:58 +00:00
|
|
|
;;
|
2003-03-24 19:01:09 +00:00
|
|
|
*)
|
|
|
|
|
AC_MSG_WARN(Don't have OS CD-reading support for ${host_os}...)
|
|
|
|
|
AC_MSG_WARN(Will use generic support.)
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
AC_SUBST(LINUX_CDROM_TIMEOUT)
|
|
|
|
|
AC_SUBST(HAVE_LINUX_CDROM)
|
|
|
|
|
AC_SUBST(HAVE_BSDI_CDROM)
|
|
|
|
|
AC_SUBST(HAVE_SOLARIS_CDROM)
|
2003-05-27 02:55:58 +00:00
|
|
|
AC_SUBST(HAVE_WIN32_CDROM)
|
2003-03-24 19:01:09 +00:00
|
|
|
|
2003-04-14 04:29:24 +00:00
|
|
|
if test x$enable_cddb = x; then
|
|
|
|
|
AC_ARG_ENABLE(cddb,
|
|
|
|
|
[ --disable-cddb don't include CDDB lookups in cdinfo],
|
|
|
|
|
enable_cddb=no,
|
|
|
|
|
enable_cddb=yes)
|
|
|
|
|
fi
|
|
|
|
|
if test x$enable_cddb = xyes; then
|
2003-06-01 21:05:45 +00:00
|
|
|
PKG_CHECK_MODULES(CDDB, libcddb >= 0.9.4, [
|
2003-04-20 01:39:23 +00:00
|
|
|
HAVE_CDDB=yes
|
|
|
|
|
AC_DEFINE(HAVE_CDDB, [], [Define this if you have libcddb installed])
|
|
|
|
|
],
|
2003-06-01 21:05:45 +00:00
|
|
|
[AC_MSG_WARN(new enough libcddb not found. CDDB access disabled)
|
|
|
|
|
HAVE_CDDB=no])
|
2003-05-20 08:10:45 +00:00
|
|
|
AC_CHECK_LIB(socket, connect)
|
|
|
|
|
AC_CHECK_FUNC(gethostbyname, , AC_CHECK_LIB(nsl, gethostbyname))
|
2003-04-14 04:29:24 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
2003-09-01 02:07:52 +00:00
|
|
|
AC_SUBST(CDDB_LIBS)
|
2003-04-14 04:29:24 +00:00
|
|
|
|
2003-04-26 14:24:44 +00:00
|
|
|
if test x$enable_vcdinfo = x; then
|
|
|
|
|
AC_ARG_ENABLE(vcdinfo,
|
|
|
|
|
[ --disable-vcdinfo don't include Video CD Info from libvcd],
|
|
|
|
|
enable_vcdinfo=no,
|
|
|
|
|
enable_vcdinfo=yes)
|
|
|
|
|
fi
|
|
|
|
|
if test x$enable_vcdinfo = xyes; then
|
2003-08-16 22:09:31 +00:00
|
|
|
PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.18-cdio,
|
2003-08-10 02:27:49 +00:00
|
|
|
[AC_DEFINE([HAVE_VCDINFO],1,
|
|
|
|
|
[Define this if you have libvcdinfo installed])],
|
|
|
|
|
[enable_vcdinfo=no])
|
2003-04-26 14:24:44 +00:00
|
|
|
fi
|
|
|
|
|
|
2003-08-10 02:27:49 +00:00
|
|
|
AC_SUBST(VCDINFO_LIBS)
|
|
|
|
|
AC_SUBST(VCDINFO_CFLAGS)
|
2003-04-26 14:24:44 +00:00
|
|
|
|
2003-04-20 15:34:31 +00:00
|
|
|
AC_CONFIG_COMMANDS([checks],
|
2003-04-26 14:24:44 +00:00
|
|
|
[chmod +x test/check_cue.sh; chmod +x test/check_nrg.sh
|
2003-04-20 15:34:31 +00:00
|
|
|
])
|
2003-04-19 00:50:39 +00:00
|
|
|
|
2003-08-17 05:31:19 +00:00
|
|
|
AC_CONFIG_FILES([ \
|
2003-03-24 19:01:09 +00:00
|
|
|
Makefile \
|
2003-04-21 10:17:50 +00:00
|
|
|
libcdio.pc \
|
2003-04-25 21:26:47 +00:00
|
|
|
libcdio.spec \
|
2003-08-17 05:31:19 +00:00
|
|
|
libiso9660.pc \
|
2003-04-19 08:29:13 +00:00
|
|
|
include/Makefile \
|
|
|
|
|
include/cdio/Makefile \
|
2003-04-22 12:09:08 +00:00
|
|
|
include/cdio/version.h \
|
2003-07-28 02:25:37 +00:00
|
|
|
doc/Makefile \
|
2003-03-24 19:01:09 +00:00
|
|
|
lib/Makefile \
|
|
|
|
|
src/Makefile \
|
2003-04-26 14:24:44 +00:00
|
|
|
test/check_nrg.sh \
|
2003-04-22 12:09:08 +00:00
|
|
|
test/check_cue.sh \
|
2003-06-08 12:33:37 +00:00
|
|
|
test/check_common_fn \
|
2003-04-22 12:09:08 +00:00
|
|
|
test/Makefile \
|
2003-03-24 19:01:09 +00:00
|
|
|
])
|
2003-08-17 05:31:19 +00:00
|
|
|
AC_OUTPUT
|
2003-04-14 10:03:27 +00:00
|
|
|
|
2003-06-10 01:19:15 +00:00
|
|
|
echo "Using CD-ROM drivers: $cd_drivers"
|