242 lines
6.5 KiB
Plaintext
242 lines
6.5 KiB
Plaintext
AC_DEFUN([LIBBURNIA_SET_FLAGS],
|
|
[
|
|
case $target_os in
|
|
freebsd* | netbsd*)
|
|
LDFLAGS="$LDFLAGS -L/usr/local/lib"
|
|
CPPFLAGS="$CPPFLAGS -I/usr/local/include"
|
|
;;
|
|
esac
|
|
])
|
|
|
|
|
|
AC_DEFUN([TARGET_SHIZZLE],
|
|
[
|
|
ARCH=""
|
|
LIBBURNIA_PKGCONFDIR="$libdir"/pkgconfig
|
|
|
|
AC_MSG_CHECKING([target operating system])
|
|
|
|
libburn_check_libcam=
|
|
LIBBURNIA_LDCONFIG_CMD="echo 'No ldconfig run performed. If needed, configure manually for:'"
|
|
|
|
case $target in
|
|
*-*-linux*)
|
|
ARCH=linux
|
|
LIBBURN_ARCH_LIBS=
|
|
LIBBURNIA_LDCONFIG_CMD=ldconfig
|
|
;;
|
|
*-*-freebsd*)
|
|
ARCH=freebsd
|
|
LIBBURN_ARCH_LIBS=-lcam
|
|
LIBBURNIA_PKGCONFDIR=$(echo "$libdir" | sed 's/\/lib$/\/libdata/')/pkgconfig
|
|
;;
|
|
*-kfreebsd*-gnu*)
|
|
ARCH=freebsd
|
|
LIBBURN_ARCH_LIBS=-lcam
|
|
libburn_check_libcam=yes
|
|
;;
|
|
*-solaris*)
|
|
ARCH=solaris
|
|
LIBBURN_ARCH_LIBS=-lvolmgt
|
|
;;
|
|
*)
|
|
ARCH=
|
|
LIBBURN_ARCH_LIBS=
|
|
# AC_ERROR([You are attempting to compile for an unsupported platform])
|
|
;;
|
|
esac
|
|
AC_MSG_RESULT([$ARCH])
|
|
|
|
if test x"$libburn_check_libcam" = xyes
|
|
then
|
|
LIBBURNIA_CHECK_LIBCAM
|
|
fi
|
|
])
|
|
|
|
|
|
dnl LIBBURN_ASSERT_VERS_LIBS is by Thomas Schmitt, libburnia project
|
|
dnl It tests whether -Wl,--version-script=... works with the compiler
|
|
AC_DEFUN([LIBBURN_ASSERT_VERS_LIBS],
|
|
[
|
|
libburnia_save_LDFLAGS="$LDFLAGS"
|
|
LDFLAGS="$LDFLAGS -Wl,--version-script=$srcdir/libburn/libburn.ver"
|
|
AC_TRY_LINK([#include <stdio.h>], [printf("Hello\n");],
|
|
[vers_libs_test="yes"], [vers_libs_test="no"])
|
|
if test x$vers_libs_test = xyes
|
|
then
|
|
LIBLDFLAGS="-Wl,--version-script=$srcdir/libburn/libburn.ver"
|
|
fi
|
|
LDFLAGS="$libburnia_save_LDFLAGS"
|
|
AC_SUBST(LIBLDFLAGS)
|
|
])
|
|
|
|
|
|
dnl LIBBURNIA_SET_PKGCONFIG determines the install directory for the *.pc file.
|
|
dnl Important: Must be performed _after_ TARGET_SHIZZLE
|
|
dnl
|
|
AC_DEFUN([LIBBURNIA_SET_PKGCONFIG],
|
|
[
|
|
### for testing --enable-libdir-pkgconfig on Linux
|
|
### LIBBURNIA_PKGCONFDIR="$libdir"data/pkgconfig
|
|
|
|
if test "x$LIBBURNIA_PKGCONFDIR" = "x$libdir"/pkgconfig
|
|
then
|
|
dummy=dummy
|
|
else
|
|
AC_ARG_ENABLE(libdir-pkgconfig,
|
|
[ --enable-libdir-pkgconfig Install to $libdir/pkgconfig on any OS, default=no],
|
|
, enable_libdir_pkgconfig="no")
|
|
AC_MSG_CHECKING([for --enable-libdir-pkgconfig])
|
|
if test "x$enable_libdir_pkgconfig" = xyes
|
|
then
|
|
LIBBURNIA_PKGCONFDIR="$libdir"/pkgconfig
|
|
fi
|
|
AC_MSG_RESULT([$enable_libdir_pkgconfig])
|
|
fi
|
|
|
|
libburnia_pkgconfig_override="no"
|
|
AC_ARG_ENABLE(pkgconfig-path,
|
|
[ --enable-pkgconfig-path=DIR Absolute path of directory for libisofs-*.pc],
|
|
libburnia_pkgconfig_override="yes" , enable_pkgconfig_path="none")
|
|
AC_MSG_CHECKING([for overridden pkgconfig directory path])
|
|
if test "x$enable_pkgconfig_path" = xno
|
|
then
|
|
libburnia_pkgconfig_override="no"
|
|
fi
|
|
if test "x$enable_pkgconfig_path" = x -o "x$enable_pkgconfig_path" = xyes
|
|
then
|
|
libburnia_pkgconfig_override="invalid argument"
|
|
fi
|
|
if test "x$libburnia_pkgconfig_override" = xyes
|
|
then
|
|
LIBBURNIA_PKGCONFDIR="$enable_pkgconfig_path"
|
|
AC_MSG_RESULT([$LIBBURNIA_PKGCONFDIR])
|
|
else
|
|
AC_MSG_RESULT([$libburnia_pkgconfig_override])
|
|
fi
|
|
AC_SUBST(LIBBURNIA_PKGCONFDIR)
|
|
|
|
dnl For debugging only
|
|
### AC_MSG_RESULT([LIBBURNIA_PKGCONFDIR = $LIBBURNIA_PKGCONFDIR])
|
|
|
|
])
|
|
|
|
dnl LIBBURNIA_CHECK_ARCH_LIBS is by Thomas Schmitt, libburnia project
|
|
dnl It tests whether the OS dependent libraries are available.
|
|
dnl With libisoburn they are needed only for the case that indirect linking
|
|
dnl does not work. So it is worth a try to omit them.
|
|
dnl $1 = "mandatory" or "optional" define the action if test linking fails.
|
|
dnl "silent" is like "optional" but without message.
|
|
AC_DEFUN([LIBBURNIA_CHECK_ARCH_LIBS],
|
|
[
|
|
libburnia_save_LIBS="$LIBS"
|
|
if test "x$LIBBURN_ARCH_LIBS" = x
|
|
then
|
|
dummy=dummy
|
|
else
|
|
LIBS="$LIBS $LIBBURN_ARCH_LIBS"
|
|
AC_TRY_LINK([#include <stdio.h>], [printf("Hello\n");],
|
|
[archlibs_test="yes"], [archlibs_test="no"])
|
|
LIBS="$libburnia_save_LIBS"
|
|
if test x$archlibs_test = xno
|
|
then
|
|
if test x"$1" = xmandatory
|
|
then
|
|
echo >&2
|
|
echo "FATAL: Test linking with mandatory library options failed: $LIBBURN_ARCH_LIBS" >&2
|
|
echo >&2
|
|
(exit 1); exit 1;
|
|
else
|
|
if test x"$1" = xoptional
|
|
then
|
|
echo "disabled linking with $LIBBURN_ARCH_LIBS (because not found)"
|
|
fi
|
|
LIBBURN_ARCH_LIBS=""
|
|
fi
|
|
else
|
|
if test x"$1" = xsilent
|
|
then
|
|
dummy=dummy
|
|
else
|
|
echo "enabled linking with $LIBBURN_ARCH_LIBS"
|
|
fi
|
|
fi
|
|
fi
|
|
])
|
|
|
|
|
|
dnl LIBBURNIA_CHECK_LINUX_SCSI is by Thomas Schmitt, libburnia project
|
|
dnl
|
|
AC_DEFUN([LIBBURNIA_CHECK_LINUX_SCSI],
|
|
[
|
|
dnl Check whether it is a Linux without scsi/scsi.h
|
|
libburn_scsi_disabled=
|
|
if test x"$ARCH" = xlinux
|
|
then
|
|
AH_TEMPLATE([Libburn_use_sg_dummY],
|
|
[Define to compile without OS specific SCSI features])
|
|
AC_MSG_CHECKING([for missing scsi/scsi.h on Linux])
|
|
AC_TRY_COMPILE([
|
|
#ifdef __linux
|
|
#include <scsi/scsi.h>
|
|
#endif
|
|
],
|
|
[;],
|
|
[AC_MSG_RESULT([no])],
|
|
[AC_DEFINE([Libburn_use_sg_dummY], [yes])
|
|
libburn_scsi_disabled=yes
|
|
AC_MSG_RESULT([yes])]
|
|
)
|
|
fi
|
|
if test x"$libburn_scsi_disabled" = xyes
|
|
then
|
|
echo "disabled operation of optical drives via SCSI"
|
|
fi
|
|
])
|
|
|
|
|
|
dnl LIBBURNIA_CHECK_LIBCAM is by Thomas Schmitt, libburnia project
|
|
dnl
|
|
AC_DEFUN([LIBBURNIA_CHECK_LIBCAM],
|
|
[
|
|
dnl Check whether libcam is requested for FreeBSD kernel but missing
|
|
libburn_scsi_disabled=
|
|
if test x"$LIBBURN_ARCH_LIBS" = x"-lcam"
|
|
then
|
|
AH_TEMPLATE([Libburn_use_sg_dummY],
|
|
[Define to compile without OS specific SCSI features])
|
|
AC_MSG_CHECKING([for missing libcam for SCSI on FreeBSD kernel])
|
|
dnl If libcam is not available, LIBBURN_ARCH_LIBS will be made empty
|
|
LIBBURNIA_CHECK_ARCH_LIBS(silent)
|
|
if test x"$LIBBURN_ARCH_LIBS" = x
|
|
then
|
|
AC_DEFINE([Libburn_use_sg_dummY], [yes])
|
|
libburn_scsi_disabled=yes
|
|
AC_MSG_RESULT([yes])
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
fi
|
|
fi
|
|
if test x"$LIBBURN_ARCH_LIBS" = x"-lcam"
|
|
then
|
|
AC_MSG_CHECKING([for missing libcam headers])
|
|
AC_TRY_COMPILE([
|
|
#include <stdio.h>
|
|
#include <camlib.h>
|
|
#include <cam/scsi/scsi_message.h>
|
|
#include <cam/scsi/scsi_pass.h>
|
|
],
|
|
[;],
|
|
[AC_MSG_RESULT([no])],
|
|
[AC_DEFINE([Libburn_use_sg_dummY], [yes])
|
|
libburn_scsi_disabled=yes
|
|
AC_MSG_RESULT([yes])]
|
|
)
|
|
fi
|
|
if test x"$libburn_scsi_disabled" = xyes
|
|
then
|
|
echo "disabled operation of optical drives via SCSI"
|
|
fi
|
|
])
|
|
|