aboutsummaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
Diffstat (limited to 'configure.ac')
-rwxr-xr-xconfigure.ac418
1 files changed, 418 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
new file mode 100755
index 0000000..2daad20
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,418 @@
+###############################################################################
+# prelude
+###############################################################################
+
+m4_include([project/project.m4sugar])
+
+m4_define([SVNINFO],m4_esyscmd([svn info 2>/dev/null]))
+
+m4_define([PRJ_repo_url],m4_bregexp(SVNINFO,[^URL: *\(.+\)],[\1]))
+m4_define([PRJ_repo_root],m4_bregexp(SVNINFO,[^Repository Root: *\(.+\)],[\1]))
+m4_define([PRJ_repo_uuid],m4_bregexp(SVNINFO,[^Repository UUID: *\(.+\)],[\1]))
+m4_define([PRJ_repo_rev],m4_bregexp(SVNINFO,[^Last Changed Rev: *\(.+\)],[\1]))
+m4_define([PRJ_repo_date],m4_bregexp(SVNINFO,[^Last Changed Date: *\(.+\)],[\1]))
+m4_define([PRJ_repo_type],ifelse(m4_bregexp(PRJ_repo_url,[/releases/]),[-1],[developer],[stable]))
+
+m4_define([PRJ_version_hex],m4_format([0x%04x%02x%02x],PRJ_version_major,PRJ_version_minor,PRJ_version_point))
+
+m4_define([PRJ_snapshot],
+ m4_bregexp(m4_esyscmd([(test "$SNAPSHOT" = "1" && date +%Y%m%d) 2>/dev/null]),[\([0-9]+\)],[\1]))
+m4_define([PRJ_repo_type],ifelse(m4_len(PRJ_snapshot),8,[snapshot],PRJ_repo_type))
+
+m4_define([PRJ_version],ifelse(
+ PRJ_repo_type,[stable],m4_format([%d.%d.%d],PRJ_version_major,PRJ_version_minor,PRJ_version_point),
+ PRJ_repo_type,[snapshot],m4_format([%d.%d-%s],PRJ_version_major,PRJ_version_minor,PRJ_snapshot),
+ PRJ_repo_type,[developer],m4_format([%d.%d-r%d],PRJ_version_major,PRJ_version_minor,PRJ_repo_rev),
+ m4_format([%d.%d-r%d],PRJ_version_major,PRJ_version_minor,PRJ_repo_rev)))
+
+###############################################################################
+# initialization
+###############################################################################
+
+AC_PREREQ([2.61])
+AC_INIT(PRJ_name,PRJ_version,PRJ_bugreport)
+
+AC_MSG_NOTICE([
+ -->
+ --> Configuring ]AC_PACKAGE_STRING[
+ -->])
+
+AC_CONFIG_AUX_DIR([autoaux])
+AM_INIT_AUTOMAKE([1.9.6 foreign -Wall -Wno-portability -Werror subdir-objects nostdinc no-dist-gzip dist-bzip2 dist-zip dejagnu])
+
+AC_CONFIG_SRCDIR([src/mp4.cpp])
+
+# disable unused langs (improves config speed, reduces configure file size)
+AC_DEFUN([_LT_AC_LANG_F77_CONFIG], [:])
+AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG], [:])
+AC_DEFUN([_LT_AC_LANG_RC_CONFIG], [:])
+
+AC_CANONICAL_HOST
+
+###############################################################################
+# add configure options
+###############################################################################
+
+if test -z "$enable_dependency_tracking"; then
+ enable_dependency_tracking=no
+fi
+
+AC_ARG_ENABLE([debug],
+ [AS_HELP_STRING([--disable-debug],[disable debugging compilation])])
+AC_ARG_ENABLE([optimize],
+ [AS_HELP_STRING([--disable-optimize],[disable optimizing compilation])])
+AC_ARG_ENABLE([fvisibility],
+ [AS_HELP_STRING([--disable-fvisibility],[disable use of -fvisibility])])
+AC_ARG_ENABLE([gch],
+ [AS_HELP_STRING([--disable-gch],[disable GCC precompiled-headers])])
+AC_ARG_ENABLE([largefile],
+ [AS_HELP_STRING([--disable-largefile],[disable LFS (large file support)])])
+AC_ARG_ENABLE([util],
+ [AS_HELP_STRING([--disable-util],[disable build of command-line utilities])])
+AC_ARG_ENABLE([bi],
+ [AS_HELP_STRING([--enable-bi=ARCH],[enable -mARCH for bi-arch compilation])])
+AC_ARG_ENABLE([ub],
+ [AS_HELP_STRING([--enable-ub@<:@=ARCHS@:>@],[enable -arch ARCH for universal-binaries (OSX only)])])
+AC_ARG_ENABLE([cygwin_win32],
+ [AS_HELP_STRING([--enable-cygwin-win32],[when building with Cygwin use -mwin32])])
+AC_ARG_ENABLE([mingw_mt],
+ [AS_HELP_STRING([--enable-mingw-threads],[when building with MinGW use -mthreads])])
+
+###############################################################################
+# checks for programs
+###############################################################################
+
+AC_PROG_CXX
+AC_PROG_LIBTOOL
+
+AC_CHECK_PROG([FOUND_HELP2MAN],[help2man],[yes],[no])
+
+###############################################################################
+# top-level platform check
+###############################################################################
+
+AC_MSG_CHECKING([$PACKAGE_NAME platform portability])
+X_PLATFORM=posix
+case ${host} in
+*-*-cygwin)
+ # do not support shared
+ enable_shared=no
+ X_CXX_W="$X_CXX_W -Wno-format"
+ if test "$enable_cygwin_win32" = "yes"; then
+ X_PLATFORM=win32
+ X_CXX_ARCH="$X_CXX_ARCH -mwin32"
+ fi
+ ;;
+*-*-mingw*)
+ # do not support shared
+ enable_shared=no
+ X_PLATFORM=win32
+ X_MINGW_LIBS="$X_MINGW_LIBS"
+ X_CXX_W="$X_CXX_W -Wno-format"
+ if test "$enable_mingw_threads" = "yes"; then
+ X_CXX_ARCH="$X_CXX_ARCH -mthreads"
+ fi
+ ;;
+esac
+AC_MSG_RESULT([$X_PLATFORM])
+
+###############################################################################
+# prepare project metadata
+###############################################################################
+
+PROJECT_name="PRJ_name"
+PROJECT_name_lower="PRJ_name_lower"
+PROJECT_name_upper="PRJ_name_upper"
+PROJECT_name_formal="PRJ_name PRJ_version"
+PROJECT_url_website="PRJ_url_website"
+PROJECT_url_downloads="PRJ_url_downloads"
+PROJECT_url_discussion="PRJ_url_discussion"
+PROJECT_irc="PRJ_irc"
+PROJECT_bugreport="<PRJ_bugreport>"
+
+PROJECT_version="PRJ_version"
+PROJECT_version_hex="PRJ_version_hex"
+PROJECT_version_major="PRJ_version_major"
+PROJECT_version_minor="PRJ_version_minor"
+PROJECT_version_point="PRJ_version_point"
+PROJECT_repo_url="PRJ_repo_url"
+PROJECT_repo_root="PRJ_repo_root"
+PROJECT_repo_uuid="PRJ_repo_uuid"
+PROJECT_repo_rev="PRJ_repo_rev"
+PROJECT_repo_date="PRJ_repo_date"
+PROJECT_repo_type="PRJ_repo_type"
+PROJECT_build="`date`"
+
+test -z "$PROJECT_version_hex" && PROJECT_version_hex="0x0000000000000000LL"
+test -z "$PROJECT_version_major" && PROJECT_version_major="0"
+test -z "$PROJECT_version_minor" && PROJECT_version_minor="0"
+test -z "$PROJECT_version_point" && PROJECT_version_point="0"
+test -z "$PROJECT_repo_url" && PROJECT_repo_url="svn://nowhere.com/project/unknown"
+test -z "$PROJECT_repo_root" && PROJECT_repo_root="svn://nowhere.com/project"
+test -z "$PROJECT_repo_uuid" && PROJECT_repo_uuid="00000000-0000-0000-0000-000000000000"
+test -z "$PROJECT_repo_rev" && PROJECT_repo_rev="0"
+test -z "$PROJECT_repo_date" && PROJECT_repo_date="unknown"
+test -z "$PROJECT_repo_type" && PROJECT_repo_type="unknown"
+test -z "$PROJECT_build" && PROJECT_build="unknown"
+
+AC_SUBST([PROJECT_name])
+AC_SUBST([PROJECT_name_lower])
+AC_SUBST([PROJECT_name_upper])
+AC_SUBST([PROJECT_name_formal])
+AC_SUBST([PROJECT_url_website])
+AC_SUBST([PROJECT_url_downloads])
+AC_SUBST([PROJECT_url_discussion])
+AC_SUBST([PROJECT_irc])
+AC_SUBST([PROJECT_bugreport])
+AC_SUBST([PROJECT_version])
+AC_SUBST([PROJECT_version_hex])
+AC_SUBST([PROJECT_version_major])
+AC_SUBST([PROJECT_version_minor])
+AC_SUBST([PROJECT_version_point])
+AC_SUBST([PROJECT_repo_url])
+AC_SUBST([PROJECT_repo_root])
+AC_SUBST([PROJECT_repo_uuid])
+AC_SUBST([PROJECT_repo_rev])
+AC_SUBST([PROJECT_repo_date])
+AC_SUBST([PROJECT_repo_type])
+AC_SUBST([PROJECT_build])
+
+###############################################################################
+# checks for libraries
+###############################################################################
+
+###############################################################################
+# checks for header files
+###############################################################################
+
+###############################################################################
+# checks for typedefs, structures, and compiler characteristics
+###############################################################################
+
+###############################################################################
+# replace -ggdb3 with -ggdb2 to avoid GNU 'as' from failing
+# See http://code.google.com/p/mp4v2/issues/detail?id=27
+###############################################################################
+if test "$GXX" = "yes"; then
+ CXXFLAGS_GGDB3=`echo "$CXXFLAGS" | sed -e 's/-ggdb3/-ggdb2/'`
+ CXXFLAGS="$CXXFLAGS_GGDB3"
+fi
+
+###############################################################################
+# additional ldflags
+###############################################################################
+
+case ${host} in
+ *-*-darwin*)
+ X_libmp4v2_la_LDFLAGS='-Wl,-current_version,$(PROJECT_version_major).$(PROJECT_version_minor).$(PROJECT_version_point) -Wl,-compatibility_version,$(PROJECT_version_major).0.0'
+ ;;
+ *)
+ X_libmp4v2_la_LDFLAGS=
+ ;;
+esac
+
+AC_SUBST([X_libmp4v2_la_LDFLAGS])
+
+###############################################################################
+# check for --disable-fvisibility
+###############################################################################
+
+if test "$enable_fvisibility" != "no" -a "$GXX" = "yes"; then
+ case ${host} in
+ *-*-cygwin)
+ ;;
+ *-*-mingw*)
+ ;;
+ *)
+ AC_LANG(C++)
+ AC_CACHE_CHECK([if $CXX supports -fvisibility],[x_cv_fvisibility],[
+ x_save="$CXXFLAGS"
+ CXXFLAGS="$CXXFLAGS -fvisibility=hidden"
+ AC_TRY_COMPILE([],[],[x_cv_fvisibility=yes],[x_cv_fvisibility=no])
+ if test "$x_cv_fvisibility" != "yes"; then
+ CXXFLAGS="$x_save"
+ fi
+ x_save=
+ ])
+ ;;
+ esac
+fi
+
+###############################################################################
+# check for --disable-gch
+###############################################################################
+
+AC_MSG_CHECKING([if GCC precompiled-headers should be created])
+
+X_GCH=0
+X_GCH_FLAGS=
+X_GCH_STATIC=0
+X_GCH_STATIC_FLAGS="$lt_prog_compiler_static_CXX"
+X_GCH_SHARED=0
+X_GCH_SHARED_FLAGS="$lt_prog_compiler_pic_CXX"
+
+if test "$enable_gch" = "yes"; then
+ X_GCH=1
+elif test "$enable_gch" != "no"; then
+ if test "$GXX" = "yes"; then
+ case ${host_os} in
+ cygwin*|darwin*|freebsd*|linux*|mingw*|solaris*)
+ X_GCH=1
+ ;;
+ esac
+ fi
+fi
+
+if test "$X_GCH" -eq 1; then
+ x_gch_result="yes"
+ if test "$enable_static" = "yes"; then
+ X_GCH_STATIC=1
+ fi
+ if test "$enable_shared" = "yes"; then
+ X_GCH_SHARED=1
+ fi
+else
+ x_gch_result="no"
+fi
+
+AC_MSG_RESULT([$x_gch_result])
+
+AC_SUBST([X_GCH])
+AC_SUBST([X_GCH_FLAGS])
+AC_SUBST([X_GCH_STATIC])
+AC_SUBST([X_GCH_STATIC_FLAGS])
+AC_SUBST([X_GCH_SHARED])
+AC_SUBST([X_GCH_SHARED_FLAGS])
+
+###############################################################################
+# check for --disable-largefile
+###############################################################################
+
+if test "$enable_largefile" != "no" -a "$ac_cv_header_unistd_h" = "yes"; then
+ case ${host_cpu} in
+ i?86|ppc)
+ AC_LANG(C++)
+ AC_CACHE_CHECK([if LFS (large file support) is required],[x_cv_largefile],[
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#include <unistd.h>
+#ifndef _LFS_LARGEFILE
+ error: not LFS conformant
+#endif
+ ]])],[x_cv_largefile=yes],[x_cv_largefile=no])
+ ])
+ if test "$x_cv_largefile" = "yes"; then
+ AC_DEFINE([NEED_LFS_ACTIVATION],[1],[Define to 1 if LFS should be activated])
+ fi
+ ;;
+ esac
+fi
+
+###############################################################################
+# set arch flags
+###############################################################################
+
+if test "$GXX" = "yes"; then
+ AC_MSG_CHECKING([arch flags])
+ x_flags=
+ x_save_IFS=$IFS; IFS=,
+ for arch in ${enable_ub}; do
+ case "$arch" in
+ ""|no)
+ ;;
+ yes)
+ case ${host} in
+ *-*-darwin*)
+ x_flags="$xflags -arch i386 -arch x86_64 -arch ppc -arch ppc64"
+ ;;
+ esac
+ ;;
+ *)
+ x_flags="$x_flags -arch $arch"
+ ;;
+ esac
+ done
+ IFS=$x_save_IFS
+
+ case "$enable_bi" in
+ ""|no|yes)
+ ;;
+ *)
+ x_flags="$x_flags -m${enable_bi}"
+ ;;
+ esac
+
+ if test -n "$x_flags"; then
+ AC_MSG_RESULT([$x_flags])
+ X_CXX_ARCH="$X_CXX_ARCH $x_flags"
+ else
+ AC_MSG_RESULT([none])
+ fi
+
+ x_flags=
+fi
+
+###############################################################################
+# disable debugging
+###############################################################################
+
+if test "$enable_debug" = "no"; then
+ changequote(<<,>>)dnl
+ if test "$GCC" = "yes"; then
+ CFLAGS=`echo "$CFLAGS" | sed -e 's/-g[^ ]*[ ]*//' -e 's/^ //' -e 's/ $//'`
+ fi
+ if test "$GXX" = "yes"; then
+ CXXFLAGS=`echo "$CXXFLAGS" | sed -e 's/-g[^ ]*[ ]*//' -e 's/^ //' -e 's/ $//'`
+ fi
+ changequote([,])dnl
+fi
+
+###############################################################################
+# disable optimizing
+###############################################################################
+
+if test "$enable_optimize" = "no"; then
+ changequote(<<,>>)dnl
+ if test "$GCC" = "yes"; then
+ CFLAGS=`echo "$CFLAGS" | sed -e 's/-O[^ ]*[ ]*//' -e 's/^ //' -e 's/ $//'`
+ fi
+ if test "$GXX" = "yes"; then
+ CXXFLAGS=`echo "$CXXFLAGS" | sed -e 's/-O[^ ]*[ ]*//' -e 's/^ //' -e 's/ $//'`
+ fi
+ changequote([,])dnl
+fi
+
+###############################################################################
+# checks for library functions
+###############################################################################
+
+###############################################################################
+# conditional compilation
+###############################################################################
+
+AM_CONDITIONAL([ADD_PLATFORM_POSIX],[test "$X_PLATFORM" = "posix"])
+AM_CONDITIONAL([ADD_PLATFORM_WIN32],[test "$X_PLATFORM" = "win32"])
+
+AM_CONDITIONAL([ADD_UTIL],[test "$enable_util" != "no"])
+AM_CONDITIONAL([ADD_MANS],[test "$X_PLATFORM" != "win32"])
+
+###############################################################################
+# declare common substitutions
+###############################################################################
+
+AC_SUBST([X_CXX_ARCH])
+AC_SUBST([X_CXX_W])
+AC_SUBST([X_CXX_D])
+AC_SUBST([X_CXX_I])
+AC_SUBST([X_MINGW_LIBS])
+
+###############################################################################
+# output files
+###############################################################################
+
+AC_CONFIG_HEADERS([libplatform/config.h])
+
+AC_CONFIG_FILES([GNUmakefile])
+AC_CONFIG_FILES([include/mp4v2/project.h])
+AC_CONFIG_FILES([project/project.m4])
+
+AC_OUTPUT