zoukankan      html  css  js  c++  java
  • xfce4 dev tools的一些说明

    xfce4 dev tools实际上基本是封装了一些autoconf的宏函数

    比如XDT_I18N:

    AC_DEFUN([XDT_I18N],
    [
      dnl Substitute GETTEXT_PACKAGE variable
      GETTEXT_PACKAGE=m4_default([$2], [AC_PACKAGE_TARNAME()])
      AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE], ["$GETTEXT_PACKAGE"], [Name of default gettext domain])
      AC_SUBST([GETTEXT_PACKAGE])
    
      dnl gettext and stuff
      ALL_LINGUAS="$1"
      AM_GLIB_GNU_GETTEXT()
    
      dnl This is required on some Linux systems
      AC_CHECK_FUNC([bind_textdomain_codeset])
    
      dnl Determine where to install locale files
      AC_MSG_CHECKING([for locales directory])
      AC_ARG_WITH([locales-dir], 
      [
        AC_HELP_STRING([--with-locales-dir=DIR], [Install locales into DIR])
      ], [localedir=$withval],
      [
        if test x"$CATOBJEXT" = x".mo"; then
          localedir=$libdir/locale
        else
          localedir=$datadir/locale
        fi
      ])
      AC_MSG_RESULT([$localedir])
      AC_SUBST([localedir])
    
      dnl Determine additional xgettext flags
      AC_MSG_CHECKING([for additional xgettext flags])
      if test x"$XGETTEXT_ARGS" = x""; then
        XGETTEXT_ARGS="--keyword=Q_ --from-code=UTF-8";
      else
        XGETTEXT_ARGS="$XGETTEXT_ARGS --keyword=Q_ --from-code=UTF-8";
      fi
      AC_SUBST([XGETTEXT_ARGS])
      AC_MSG_RESULT([$XGETTEXT_ARGS])
    ])

    主要内容就在前面五行的实现:

      GETTEXT_PACKAGE=m4_default([$2], [AC_PACKAGE_TARNAME()])
      AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE], ["$GETTEXT_PACKAGE"], [Name of default gettext domain])
      AC_SUBST([GETTEXT_PACKAGE])
      ALL_LINGUAS="$1"
      AM_GLIB_GNU_GETTEXT()

    定义了GETTEXT_PACKAGE宏,然后将参数1传递给ALL_LINGUAS

    而XDT_CHECK_PACKAGE的实现也很简单,基本上就是封装PKG_CONFIG

    AC_DEFUN([XDT_CHECK_PACKAGE],
    [
      XDT_PROG_PKG_CONFIG()
    
      AC_MSG_CHECKING([for $2 >= $3])
      if $PKG_CONFIG "--atleast-version=$3" "$2" >/dev/null 2>&1; then
        $1_VERSION=`$PKG_CONFIG --modversion "$2"`
        AC_MSG_RESULT([$$1_VERSION])
    
        AC_MSG_CHECKING([$1_CFLAGS])
        $1_CFLAGS=`$PKG_CONFIG --cflags "$2"`
        AC_MSG_RESULT([$$1_CFLAGS])
    
        AC_MSG_CHECKING([$1_LIBS])
        $1_LIBS=`$PKG_CONFIG --libs "$2"`
        AC_MSG_RESULT([$$1_LIBS])
    
        $1_REQUIRED_VERSION=$3
    
        AC_SUBST([$1_VERSION])
        AC_SUBST([$1_CFLAGS])
        AC_SUBST([$1_LIBS])
        AC_SUBST([$1_REQUIRED_VERSION])
    
        ifelse([$4], , , [$4])
      elif $PKG_CONFIG --exists "$2" >/dev/null 2>&1; then
        xdt_cv_version=`$PKG_CONFIG --modversion "$2"`
        AC_MSG_RESULT([found, but $xdt_cv_version])
    
        ifelse([$5], ,
        [
          echo "*** The required package $2 was found on your system,"
          echo "*** but the installed version ($xdt_cv_version) is too old."
          echo "*** Please upgrade $2 to atleast version $3, or adjust"
          echo "*** the PKG_CONFIG_PATH environment variable if you installed"
          echo "*** the new version of the package in a nonstandard prefix so"
          echo "*** pkg-config is able to find it."
          exit 1
        ], [$5])
      else
        AC_MSG_RESULT([not found])
    
        ifelse([$5], ,
        [
          echo "*** The required package $2 was not found on your system."
          echo "*** Please install $2 (atleast version $3) or adjust"
          echo "*** the PKG_CONFIG_PATH environment variable if you"
          echo "*** installed the package in a nonstandard prefix so that"
          echo "*** pkg-config is able to find it."
          exit 1
        ], [$5])
      fi
    ])

    XDT_PROG_PKG_CONFIG检测系统中是否存在PKG_CONFIG,如果

    存在,则通过pkg-config来配置CFLAGS/LIBS等4个变量

  • 相关阅读:
    "V租房"搭建微信租房平台,让租房人发起求租需求并接收合适房源回复,提高租房效率 | 36氪
    金融街
    Jsensation | 氪加
    Polyvore
    周翔宇_百度百科
    鸵鸟心态
    新闻:型牌男装:网上订服装,如何将返修率降到5个点以下 | IT桔子
    【案例】舒邑:一个女装品牌的奇葩打法-@i黑马
    专访OPPO李紫贵:ColorOS用户过千万 软硬融合生态版图初现
    关于我们-EIBOA易博男装-互联网品质男装品牌-在线销售男士西服,衬衫,外套,西裤,领带|全场免运费,30天退换货保障
  • 原文地址:https://www.cnblogs.com/eaglexmw/p/3203485.html
Copyright © 2011-2022 走看看