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

比如XDT_I18N:

AC_DEFUN([XDT_I18N],
[
dnl Substitute GETTEXT_PACKAGE variable
GETTEXT_PACKAGE=m4_default([$], [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([$], [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 $ >= $])
if $PKG_CONFIG "--atleast-version=$3" "$2" >/dev/null >&; 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=$ AC_SUBST([$1_VERSION])
AC_SUBST([$1_CFLAGS])
AC_SUBST([$1_LIBS])
AC_SUBST([$1_REQUIRED_VERSION]) ifelse([$], , , [$])
elif $PKG_CONFIG --exists "$2" >/dev/null >&; then
xdt_cv_version=`$PKG_CONFIG --modversion "$2"`
AC_MSG_RESULT([found, but $xdt_cv_version]) ifelse([$], ,
[
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
], [$])
else
AC_MSG_RESULT([not found]) ifelse([$], ,
[
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
], [$])
fi
])

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

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

xfce4 dev tools的一些说明的更多相关文章

  1. JCEF 如何修改右键菜单项(JCEF在右键菜单中添加开发者选项-show dev tools)

    需求: 在界面的右键事件中添加一个打开开发者选项的菜单(Show Dev Tools) 所以我们可以看到的是在界面上右键,会有默认的一些菜单项(前进,后退,打印,查看源码),而这些功能并不一定是我们需 ...

  2. Chrome Dev Tools :成为更高效的开发人员

    原文出处 http://blog.jobbole.com/22065/ 实时CSS Style编辑 选择一个Dom,可以对Dom进行编辑和操作,实时修改Css Style, 同时CssStyle可以保 ...

  3. 谷歌浏览器 DEV Tools

    谷歌浏览器如今是Web开发者们所使用的最流行的网页浏览器.伴随每六个星期一次的发布周期和不断扩大的强大的开发功能,Chrome变成了一个必须的工具.大多数可能熟悉关于chorme的许多特点,例如使用c ...

  4. chrome dev tools

    chrome dev tools介绍一下Chrome dev tools 的基本使用和一些意想不到的小技巧.\\Chrome Developer Tools 是Chrome内嵌的一系列编辑和调试的工具 ...

  5. 15个你不得不知道的Chrome dev tools的小技巧

    转载自:https://www.imooc.com/article/2559 谷歌浏览器如今是Web开发者们所使用的最流行的网页浏览器.伴随每六个星期一次的发布周期和不断扩大的强大的开发功能,Chro ...

  6. kibana dev tools快捷键

    kibana dev tools快捷键 ctrl+enter  提交请求 ctrl+i 自动缩进 ctrl+enter 提交请求 down 打开自动补全菜单 enter或tab 选中项自动补全 esc ...

  7. [D3] Debug D3 v4 with Dev Tools

    Since D3 outputs standard markup, you can use familiar dev tools and inspectors to debug your visual ...

  8. 第十五章·Kibana深入-Dev Tools及Lucene语法

    Dev Tools介绍 Dev Tools 页面包含开发工具,您可以使用这些Dev Tools与Kibana中的数据进行交互. 原先的交互式控制台Sense,使用户方便的通过浏览器直接与Elastic ...

  9. 前端性能优化之利用 Chrome Dev Tools 进行页面性能分析

    背景 我们经常使用 Chrome Dev Tools 来开发调试,但是很少知道怎么利用它来分析页面性能,这篇文章,我将详细说明怎样利用 Chrome Dev Tools 进行页面性能分析及性能报告数据 ...

随机推荐

  1. 25 uname-用于显示系统信息

    uname可显示电脑以及操作系统的相关信息. 语法 uname [-amnrsv][--help][--version] 参数说明: -a或--all 显示全部的信息. -m或--machine 显示 ...

  2. C# 压缩与解压字符串(面试题)

    /* * 题目:压缩字符串.如“abbcccddddeef”,压缩成“a1b2c3d4e2f1” * 解题: 这个题目也是面试常见的题目.看似很简单,其实暗藏杀机.一般的想法就是,一边遍历,一边计数, ...

  3. Beta项目冲刺–第四天

    考试太多,做项目的时间太少-- 队伍:F4 成员:031302301 毕容甲 031302302 蔡逸轩 031302430 肖阳 031302418 黄彦宁 会议内容: 1.站立式会议照片: 2.项 ...

  4. ListView上拉加载,下拉刷新 PullToRefresh的使用

    PullToRefresh是一套实现非常好的下拉刷新库,它支持:ListViewExpandableListViewGridViewWebViewScrollViewHorizontalScrollV ...

  5. jQ1.5中的事件系统(低版本的事件系统)

    jQ的一个个版本事系统都在修正着bug和不断优化, 而且看了事件系统对事件的兼容更加熟悉, 更加了解jQ内部的事件机制. 因为jQ对事件系统引入了事件命名空间,事件的代理, 事件的手动触发,事件描述等 ...

  6. 【深入Java虚拟机】之二:Java垃圾回收机制

    [深入Java虚拟机]之:Java垃圾收集机制 对象引用 Java中的垃圾回收一般是在Java堆中进行,因为堆中几乎存放了Java中所有的对象实例.谈到Java堆中的垃圾回收,自然要谈到引用.在JDK ...

  7. apache ab压力测试

    今天提到压力测试,想起以前看到的ab,于是又重新查找了下资料,并记录了下. ab命令会创建很多的并发访问线程,模拟多个访问者同时对某一URL地址进行访问. 它的测试目标是基于URL的,因此,既可以用来 ...

  8. bzoj2938: [Poi2000]病毒

    建AC自动机,把所有病毒的节点都删掉,dfs判有没有环,有环就找得到. #include <iostream> #include <cstdio> #include <c ...

  9. 运行python代码报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xe7 in position 91: ordinal not in range(128)的解决办法

    1.通过搜集网上的资料,自己多次尝试,问题算是解决了,在代码中加上如下几句即可: import sys reload(sys) sys.setdefaultencoding('utf-8') 2.原因 ...

  10. js日历表

    $scope.getCurrentWeek = function (day) { var days = ["星期日", "星期一", "星期二&quo ...