vlc.m4
上传用户:riyaled888
上传日期:2009-03-27
资源大小:7338k
文件大小:5k
源码类别:

多媒体

开发平台:

MultiPlatform

  1. dnl  Macros needed for VLC
  2. dnl  $Id: vlc.m4 8058 2004-06-25 12:21:32Z sam $
  3. dnl ===========================================================================
  4. dnl  Macros to add plugins or builtins and handle their flags
  5. AC_DEFUN([VLC_ADD_BUILTINS], [
  6.   BUILTINS="${BUILTINS} $1"
  7. ])
  8. AC_DEFUN([VLC_ADD_PLUGINS], [
  9.   PLUGINS="${PLUGINS} $1"
  10. ])
  11. dnl  Special cases: vlc, pics, plugins, save
  12. AC_DEFUN([VLC_ADD_CPPFLAGS], [
  13.   for element in [$1]; do
  14.     eval "CPPFLAGS_${element}="'"$'"{CPPFLAGS_${element}} $2"'"'
  15.     am_modules_with_cppflags="${am_modules_with_cppflags} ${element}"
  16.   done
  17. ])
  18. AC_DEFUN([VLC_ADD_CFLAGS], [
  19.   for element in [$1]; do
  20.     eval "CFLAGS_${element}="'"$'"{CFLAGS_${element}} $2"'"'
  21.     am_modules_with_cflags="${am_modules_with_cflags} ${element}"
  22.   done
  23. ])
  24. AC_DEFUN([VLC_ADD_CXXFLAGS], [
  25.   for element in [$1]; do
  26.     eval "CXXFLAGS_${element}="'"$'"{CXXFLAGS_${element}} $2"'"'
  27.     am_modules_with_cxxflags="${am_modules_with_cxxflags} ${element}"
  28.   done
  29. ])
  30. AC_DEFUN([VLC_ADD_OBJCFLAGS], [
  31.   for element in [$1]; do
  32.     eval "OBJCFLAGS_${element}="'"$'"{OBJCFLAGS_${element}} $2"'"'
  33.     am_modules_with_objcflags="${am_modules_with_objcflags} ${element}"
  34.   done
  35. ])
  36. AC_DEFUN([VLC_ADD_LDFLAGS], [
  37.   for element in [$1]; do
  38.     eval "LDFLAGS_${element}="'"'"$2 "'$'"{LDFLAGS_${element}} "'"'
  39.     am_modules_with_ldflags="${am_modules_with_ldflags} ${element}"
  40.   done
  41. ])
  42. dnl ===========================================================================
  43. dnl  Macros to save and restore default flags
  44. AC_DEFUN([VLC_SAVE_FLAGS], [
  45.   CPPFLAGS_save="${CPPFLAGS}"
  46.   CFLAGS_save="${CFLAGS}"
  47.   CXXFLAGS_save="${CXXFLAGS}"
  48.   OBJCFLAGS_save="${OBJCFLAGS}"
  49.   LDFLAGS_save="${LDFLAGS}"
  50. ])
  51. AC_DEFUN([VLC_RESTORE_FLAGS], [
  52.   CPPFLAGS="${CPPFLAGS_save}"
  53.   CFLAGS="${CFLAGS_save}"
  54.   CXXFLAGS="${CXXFLAGS_save}"
  55.   OBJCFLAGS="${OBJCFLAGS_save}"
  56.   LDFLAGS="${LDFLAGS_save}"
  57. ])
  58. dnl ===========================================================================
  59. dnl  Helper macro to generate the vlc-config.in file
  60. AC_DEFUN([VLC_OUTPUT_VLC_CONFIG_IN], [
  61.   AC_MSG_RESULT(configure: creating ./vlc-config.in)
  62.   am_all_modules="`for x in ${am_modules_with_cppflags} ${am_modules_with_cflags} ${am_modules_with_cxxflags} ${am_modules_with_objcflags} ${am_modules_with_ldflags}; do echo $x; done | sort | uniq`"
  63.   rm -f vlc-config.in
  64.   sed -ne '/#@1@#/q;p' < "${srcdir}/vlc-config.in.in" 
  65.     | sed -e "s/@gprof@/${enable_gprof}/" 
  66.           -e "s/@cprof@/${enable_cprof}/" 
  67.           -e "s/@optim@/${enable_optimizations}/" 
  68.           -e "s/@debug@/${enable_debug}/" 
  69.           -e "s/@release@/${enable_release}/" 
  70.           -e "s/@PLUGINS@/${PLUGINS}/" 
  71.           -e "s/@BUILTINS@/${BUILTINS}/" 
  72.           -e "s/@CFLAGS_TUNING@/${CFLAGS_TUNING}/" 
  73.           -e "s/@CFLAGS_OPTIM@/${CFLAGS_OPTIM}/" 
  74.           -e "s/@CFLAGS_OPTIM_NODEBUG@/${CFLAGS_OPTIM_NODEBUG}/" 
  75.           -e "s/@CFLAGS_NOOPTIM@/${CFLAGS_NOOPTIM}/" 
  76.     > vlc-config.in
  77.   dnl  Switch/case loop
  78.   for x in `echo ${am_all_modules}`
  79.   do [
  80.     echo "    ${x})" >> vlc-config.in
  81.     if test "`eval echo @'$'CPPFLAGS_${x}@`" != "@@"; then
  82.       echo "      cppflags="${cppflags} `eval echo '$'CPPFLAGS_${x}`"" >> vlc-config.in
  83.     fi
  84.     if test "`eval echo @'$'CFLAGS_${x}@`" != "@@"; then
  85.       echo "      cflags="${cflags} `eval echo '$'CFLAGS_${x}`"" >> vlc-config.in
  86.     fi
  87.     if test "`eval echo @'$'CXXFLAGS_${x}@`" != "@@"; then
  88.       echo "      cxxflags="${cxxflags} `eval echo '$'CXXFLAGS_${x}`"" >> vlc-config.in
  89.       if test "${x}" != "plugin" -a "${x}" != "builtin"; then
  90.         echo "      linkage="c++"" >> vlc-config.in
  91.       fi
  92.     fi
  93.     if test "`eval echo @'$'OBJCFLAGS_${x}@`" != "@@"; then
  94.       echo "      objcflags="${objcflags} `eval echo '$'OBJCFLAGS_${x}`"" >> vlc-config.in
  95.       if test "${x}" != "plugin" -a "${x}" != "builtin"; then
  96.         echo "      if test "${linkage}" = "c"; then linkage="objc"; fi" >> vlc-config.in
  97.       fi
  98.     fi
  99.     if test "`eval echo @'$'LDFLAGS_${x}@`" != "@@"; then
  100.       echo "      ldflags="${ldflags} `eval echo '$'LDFLAGS_${x}`"" >> vlc-config.in
  101.     fi
  102.     echo "    ;;" >> vlc-config.in
  103.   ] done
  104.   dnl  '/#@1@#/,/#@2@#/{/#@.@#/d;p}' won't work on OS X
  105.   sed -ne '/#@1@#/,/#@2@#/p' < "${srcdir}/vlc-config.in.in" 
  106.    | sed -e '/#@.@#/d' >> vlc-config.in
  107.   VLC_CONFIG_HELPER
  108.   dnl  '/#@2@#/,${/#@.@#/d;p}' won't work on OS X
  109.   sed -ne '/#@2@#/,$p' < "${srcdir}/vlc-config.in.in" 
  110.    | sed -e '/#@.@#/d' >> vlc-config.in
  111. ])
  112. dnl ===========================================================================
  113. dnl  Macros for shared object handling (TODO)
  114. AC_DEFUN([VLC_LIBRARY_SUFFIX], [
  115.   AC_MSG_CHECKING(for shared objects suffix)
  116.   case "${target_os}" in
  117.     darwin*)
  118.       LIBEXT=".dylib"
  119.       ;;
  120.     *mingw32* | *cygwin*)
  121.       LIBEXT=".dll"
  122.       ;;
  123.     hpux*)
  124.       LIBEXT=".sl"
  125.       ;;
  126.     *)
  127.       LIBEXT=".so"
  128.       ;;
  129.   esac
  130.   AC_MSG_RESULT(${LIBEXT})
  131.   AC_DEFINE_UNQUOTED(LIBEXT, "${LIBEXT}", [Dynamic object extension])
  132. ])