summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac243
1 files changed, 243 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..9f4831e
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,243 @@
+dnl Process this file with autoconf to produce a configure script.
+AC_PREREQ(2.54)
+AC_INIT([libmpeg2],[0.5.1],[])
+
+AC_CONFIG_SRCDIR([src/mpeg2dec.c])
+AC_CONFIG_AUX_DIR(.auto)
+AC_CONFIG_FILES([Makefile include/Makefile test/Makefile
+ doc/Makefile src/Makefile libmpeg2/Makefile libmpeg2/convert/Makefile
+ libvo/Makefile vc++/Makefile
+ libmpeg2/libmpeg2.pc libmpeg2/convert/libmpeg2convert.pc])
+AC_CONFIG_HEADERS([include/config.h])
+AC_CANONICAL_HOST
+
+AM_INIT_AUTOMAKE([1.5 -Wall foreign])
+AM_MAINTAINER_MODE
+
+dnl Checks for compiler
+AC_PROG_CC
+AC_PROG_GCC_TRADITIONAL
+AM_PROG_AS
+
+dnl Checks for headers. We do this before the CC-specific section because
+dnl autoconf generates tests for generic headers before the first header test.
+AC_CHECK_HEADERS([sys/time.h time.h sys/timeb.h io.h])
+
+dnl CC-specific flags
+AC_SUBST([OPT_CFLAGS])
+AC_SUBST([ARCH_OPT_CFLAGS])
+if test x"$CC" = x"checkergcc"; then
+ enable_sdl=no
+elif test x"$GCC" = x"yes"; then
+
+ dnl GCC-specific flags
+
+ dnl -Wall
+ dnl -Werror moved to the end to not disturb the configure script
+ TRY_CFLAGS="$OPT_CFLAGS -Wall -Wpointer-arith -Wcast-align -Wcast-qual -Wstrict-prototypes -Wshadow -Waggregate-return -Wmissing-prototypes -Wnested-externs -Wsign-compare"
+ AC_TRY_CFLAGS([$TRY_CFLAGS $CFLAGS],[OPT_CFLAGS="$TRY_CFLAGS"])
+
+ dnl -O3
+ changequote(<<,>>)
+ TRY_CFLAGS=`echo "$OPT_CFLAGS $CFLAGS"|sed "s/-O[0-9]*//g"`
+ changequote([,])
+ TRY_CFLAGS="$TRY_CFLAGS -O3"
+ AC_TRY_CFLAGS([$TRY_CFLAGS],[OPT_CFLAGS="$TRY_CFLAGS"])
+
+ AC_ARG_ENABLE([debug],
+ [ --enable-debug debug mode configuration])
+ if test x"$enable_debug" = x"yes"; then
+ AC_DEFINE([DEBUG],,[debug mode configuration])
+ else
+ dnl -fomit-frame-pointer
+ TRY_CFLAGS="$OPT_CFLAGS -fomit-frame-pointer"
+ AC_TRY_CFLAGS([$TRY_CFLAGS $CFLAGS],[OPT_CFLAGS="$TRY_CFLAGS"])
+ fi
+
+ dnl -fno-common
+ TRY_CFLAGS="$OPT_CFLAGS -fno-common"
+ AC_TRY_CFLAGS([$TRY_CFLAGS $CFLAGS],[OPT_CFLAGS="$TRY_CFLAGS"])
+
+ dnl arch-specific flags
+ arm_conditional=false
+ case "$host" in
+ i?86-* | k?-* | x86_64-* | amd64-*)
+ AC_DEFINE([ARCH_X86],,[x86 architecture])
+ case "$host" in
+ i386-*) TRY_CFLAGS="$OPT_CFLAGS -mcpu=i386";;
+ i486-*) TRY_CFLAGS="$OPT_CFLAGS -mcpu=i486";;
+ i586-*) TRY_CFLAGS="$OPT_CFLAGS -mcpu=pentium";;
+ i686-*) TRY_CFLAGS="$OPT_CFLAGS -mcpu=pentiumpro";;
+ k6-*) TRY_CFLAGS="$OPT_CFLAGS -mcpu=k6";;
+ esac
+ AC_TRY_CFLAGS([$TRY_CFLAGS $CFLAGS],[OPT_CFLAGS="$TRY_CFLAGS"]);;
+ ppc-* | powerpc-*)
+ have_altivec=no
+ for TRY_CFLAGS in "-mpim-altivec -force_cpusubtype_ALL" -faltivec -maltivec -fvec; do
+ AC_TRY_CFLAGS([$OPT_CFLAGS $TRY_CFLAGS $CFLAGS],
+ [save_CFLAGS="$CFLAGS"
+ CFLAGS="$OPT_CFLAGS $TRY_CFLAGS $CFLAGS"
+ AC_MSG_CHECKING([if <altivec.h> is needed])
+ AC_TRY_COMPILE([],
+ [typedef vector int t;
+ vec_ld(0, (unsigned char *)0);],
+ [have_altivec=yes; AC_MSG_RESULT(no)],
+ [AC_TRY_COMPILE([#include <altivec.h>],
+ [typedef vector int t; vec_ld(0, (unsigned char *)0);],
+ [AC_DEFINE([HAVE_ALTIVEC_H],,
+ [Define to 1 if you have the <altivec.h> header.])
+ have_altivec=yes; AC_MSG_RESULT(yes)],
+ [AC_MSG_RESULT(unsupported)])])
+ CFLAGS="$save_CFLAGS"])
+ if test "$have_altivec" = "yes"; then
+ ARCH_OPT_CFLAGS="$TRY_CFLAGS"
+ AC_DEFINE([ARCH_PPC],,[ppc architecture])
+ break
+ fi
+ done;;
+ sparc-* | sparc64-*)
+ AC_DEFINE([ARCH_SPARC],,[sparc architecture])
+ TRY_CFLAGS="$OPT_CFLAGS -mcpu=ultrasparc -mvis"
+ AC_TRY_CFLAGS([$TRY_CFLAGS $CFLAGS],[OPT_CFLAGS="$TRY_CFLAGS"]);;
+ alpha*)
+ AC_DEFINE([ARCH_ALPHA],,[alpha architecture]);;
+ arm*)
+ arm_conditional=:
+ AC_DEFINE([ARCH_ARM],,[ARM architecture]);;
+ esac
+elif test x"$CC" = x"tendracc"; then
+ dnl TenDRA portability checking compiler
+ TENDRA=yes
+ OPT_CFLAGS="-Xp -Yansi -f`pwd`/include/tendra.h -DELIDE_CODE"
+ no_x=yes
+ enable_sdl=no
+elif test x"$CC" = x"icc" -a x"`$CC -V 2>&1 | grep Intel`" != x""; then
+ dnl Intel C++ compiler
+ OPT_CFLAGS="-g -O3 -unroll -ip"
+else
+ dnl non-gcc flags - we probably need exact configuration triplets here.
+ case "$host" in
+ sparc-sun-solaris*)
+ TRY_CFLAGS="$OPT_CFLAGS -xCC -fast -xO5"
+ AC_TRY_CFLAGS([$TRY_CFLAGS $CFLAGS],[OPT_CFLAGS="$TRY_CFLAGS"]);;
+ esac
+fi
+
+AM_CONDITIONAL(ARCH_ARM, ${arm_conditional})
+
+dnl Checks for libtool - this must be done after we set cflags
+AC_LIBTOOL_WIN32_DLL
+AC_PROG_LIBTOOL
+
+dnl Checks for libraries.
+
+dnl Checks for header files.
+AM_CPPFLAGS='-I$(top_srcdir)/include -I$(top_builddir)/include'
+AC_SUBST([AM_CPPFLAGS])
+AC_HEADER_TIME
+AC_CHECK_TYPES([struct timeval], [], [],
+ [#include <sys/time.h>
+ #include <time.h>])
+AC_CHECK_GENERATE_INTTYPES([include])
+
+dnl Checks for typedefs, structures, and compiler characteristics.
+AC_C_CONST
+AC_C_ALWAYS_INLINE
+AC_C_RESTRICT
+AC_C_BUILTIN_EXPECT
+AC_C_BIGENDIAN
+AC_C_VOLATILE
+AC_TYPE_SIZE_T
+AC_TYPE_SIGNAL
+AC_SYS_LARGEFILE
+
+dnl Checks for library functions.
+AC_CHECK_FUNCS([gettimeofday ftime])
+
+case "$target" in
+ dnl avoid -fPIC on 32-bit x86 platforms
+ i?86-*|k?-*)
+ AC_LIBTOOL_NON_PIC([LIBMPEG2_CFLAGS="$LIBMPEG2_CFLAGS -prefer-non-pic"])
+ ;;
+esac
+AC_SUBST([LIBMPEG2_CFLAGS])
+
+dnl check for cpudetect
+AC_ARG_ENABLE([accel-detect],
+ [ --disable-accel-detect make a version without accel detection code])
+if test x"$enable_accel_detect" != x"no"; then
+ AC_DEFINE([ACCEL_DETECT],,[autodetect accelerations])
+fi
+
+dnl check for X11
+AC_PATH_XTRA
+if test x"$no_x" != x"yes"; then
+ dnl check for Xshm
+ AC_CHECK_LIB([Xext],[XShmCreateImage],
+ [AC_DEFINE([LIBVO_X11],,[libvo X11 support])
+ LIBVO_CFLAGS="$LIBVO_CFLAGS $X_CFLAGS"
+ LIBVO_LIBS="$LIBVO_LIBS $X_PRE_LIBS $X_LIBS $X_EXTRA_LIBS -lXext -lX11"
+ dnl check for Xv
+ AC_CHECK_LIB([Xv],[XvShmCreateImage],
+ [AC_DEFINE([LIBVO_XV],,[libvo Xv support])
+ LIBVO_LIBS="$LIBVO_LIBS -lXv"],,
+ [$X_PRE_LIBS $X_LIBS $X_EXTRA_LIBS -lXext -lX11])],,
+ [$X_PRE_LIBS $X_LIBS $X_EXTRA_LIBS -lX11])
+fi
+
+dnl check for DirectX
+AC_ARG_ENABLE([directx],
+ [ --enable-directx=DIR use Win32 DirectX headers in DIR])
+case $enable_directx in
+ ""|yes) AC_CHECK_HEADER([ddraw.h],
+ [AC_DEFINE([LIBVO_DX],,[libvo DirectX support])
+ LIBVO_LIBS="$LIBVO_LIBS -lgdi32"]);;
+ no) ;;
+ *) if test -f "$enable_directx/ddraw.h"; then
+ AC_DEFINE([LIBVO_DX],,[libvo DirectX support])
+ LIBVO_CFLAGS="$LIBVO_CFLAGS -I$enable_directx"
+ LIBVO_LIBS="$LIBVO_LIBS -lgdi32"
+ else
+ AC_MSG_ERROR([Cannot find $enable_directx/ddraw.h])
+ fi;;
+esac
+
+dnl check for SDL
+AC_ARG_ENABLE([sdl],[ --disable-sdl make a version not using SDL])
+if test x"$enable_sdl" != x"no"; then
+ AC_CHECK_PROG([SDLCONFIG],[sdl-config],[yes])
+ if test x"$SDLCONFIG" = x"yes"; then
+ AC_DEFINE([LIBVO_SDL],,[libvo SDL support])
+ LIBVO_CFLAGS="$LIBVO_CFLAGS `sdl-config --cflags`"
+ LIBVO_LIBS="$LIBVO_LIBS `sdl-config --libs`"
+ fi
+fi
+
+AC_SUBST([LIBVO_CFLAGS])
+AC_SUBST([LIBVO_LIBS])
+
+AC_ARG_ENABLE([warnings],
+ [ --enable-warnings treat warnings as errors])
+if test x"$enable_warnings" = x"yes" -a x"$GCC" = x"yes"; then
+ dnl compiler warnings
+ TRY_CFLAGS="$OPT_CFLAGS -Werror"
+ AC_TRY_CFLAGS([$TRY_CFLAGS $CFLAGS],[OPT_CFLAGS="$TRY_CFLAGS"])
+elif test x"$TENDRA" = x"yes"; then
+ dnl TenDRA portability checking compiler
+ OPT_CFLAGS="$OPT_CFLAGS -DTenDRA_check"
+fi
+
+MPEG2DEC_CFLAGS="$OPT_CFLAGS"
+
+AC_ARG_ENABLE([gprof],[ --enable-gprof make a version using gprof])
+if test x"$enable_gprof" = x"yes"; then
+ AC_DEFINE([MPEG2DEC_GPROF],,[mpeg2dec profiling])
+ MPEG2DEC_CFLAGS=`echo "$MPEG2DEC_CFLAGS"|sed "s/-fomit-frame-pointer//g"`
+ MPEG2DEC_CFLAGS="$MPEG2DEC_CFLAGS -p"
+fi
+
+AC_SUBST([MPEG2DEC_CFLAGS])
+
+AC_C_ATTRIBUTE_ALIGNED
+
+AC_OUTPUT