我有一个GTK项目,我正试图国际化。我需要帮助理解从intltool包中将po / Makefile.in.in转换为Makefile.in然后再转换为Makefile的基本工作流程。
我的直接问题是Makefile.in与Makefile.in.in相同。我得到很多像@ SHELL @这样的错误定义,显然是因为某些地方没有替换宏/变量,还有许多其他的像@ srcdir @和@topdir @。如果我删除Makefile.in,则没有规则从Makefile.in.in创建它。
我更大的问题是,在这种情况下,我模糊了整个工具链如何生成Makefile。我正在通过aclocal / autoconf / configure来完成其余的项目目录,但是添加国际化的东西会让我陷入困境。谢谢你的帮助。
答案 0 :(得分:0)
我想我找到了自己问题的答案。以下链接有帮助:
https://www.mail-archive.com/gtkmm-list@gnome.org/msg13483.html
主要是,我不得不改变
AC_CONFIG_FILES(po/Makefile)
到
AC_CONFIG_FILES(po/Makefile.in)
并使用该网站上建议的autogen.sh脚本而不是我使用的脚本,即:
#!/bin/sh
mkdir -p m4
echo "Creating m4/aclocal.m4 ..."
test -r m4/aclocal.m4 || touch m4/aclocal.m4
echo "Running glib-gettextize... Ignore non-fatal messages."
echo "no" | glib-gettextize --force --copy
echo "Making m4/aclocal.m4 writable ..."
test -r m4/aclocal.m4 && chmod u+w m4/aclocal.m4
echo "Running intltoolize..."
intltoolize --force --copy --automake || return 1
echo "Running aclocal..."
aclocal || return 1
echo "Running libtoolize..."
libtoolize || return 1
echo "Running autoheader..."
autoheader || return 1
echo "Running autoconf..."
autoconf || return 1
echo "Running automake..."
automake --add-missing || return 1
echo "You should now run ./configure..."