也许我在问一个愚蠢的问题,但有什么方法可以告诉automake在我执行“make dist
”时放置我的项目包含文件,但是当我执行“make install
”时却没有?
也许我的行为不正确,所以为了让我更清楚,我会告诉我需要什么。
我需要在嵌入式主板中部署我的应用程序,并在脚本中使用“make install
”来创建可以复制到目标板的包。
另一方面,我希望能够使用我的库和包含文件更新我的工具链。
在第一种情况下,我不能浪费我有限的闪存,只是让应用程序运行所必需的东西。
在第二个中,我需要有头文件,pkgconfig以及开发所需的所有东西。
我应该如何配置我的“Makefile.am
”以及预期哪些规则以便达到我的目标?
非常感谢。
答案 0 :(得分:2)
我只想设置一个给定的脚本SUID,其他数据文件 R / W任意权限等。
我认为添加$(DESTDIR)的makefile用户变量可以做到这一点。 由于它不是由automake定义的,“make install”使用它为空, 但是dpkg-buildpackage用“make dist”目标定义它。
(见:http://www.gnu.org/prep/standards/html_node/DESTDIR.html#DESTDIR)
它帮助我管理setuid安装:
configure.ac :
# Add option to disable setuid during install, use in distcheck
AC_ARG_ENABLE(setuid-install,
AS_HELP_STRING(
[--disable-setuid-install do not set setuid flags during install]),
[enable_setuid_install=$enableval], [enable_setuid_install="yes"])
AM_CONDITIONAL(SETUID_INSTALL, test x"$enable_setuid_install" = "xyes")
Makefile.am :
if SETUID_INSTALL
install-data-hook:
/bin/chmod 4755 $(DESTDIR)$(bindir)myBinary
endif
答案 1 :(得分:0)
我不认为autoconf
真的被设计成一个通用的安装程序/卸载程序,它会给你那种控制而不至少有些痛苦。您正在寻找dpkg-buildpackage
或rpmbuild
之类的内容,您可以将make install
的输出拆分为特定的子包,以便您可以: