Makefile Automake:针对目标和工具链的不同安装
也许我问了一个愚蠢的问题,但有没有什么方法可以让automake在我执行“Makefile Automake:针对目标和工具链的不同安装,makefile,installation,embedded,autoconf,automake,Makefile,Installation,Embedded,Autoconf,Automake,也许我问了一个愚蠢的问题,但有没有什么方法可以让automake在我执行“makedist”时放我的项目包含文件,而不是在我执行“makeinstall”时放 也许我的行为方式不对,所以为了更清楚,我会告诉你我需要什么 我需要在嵌入式板中部署我的应用程序,并在脚本中使用“makeinstall”创建可以复制到目标板的包 另一方面,我希望能够用我的库更新我的工具链并包含文件 在第一种情况下,我不能有任何脂肪浪费我有限的闪存,但只是必要的东西,使应用程序运行 在第二个示例中,我需要有头文件、pkgc
makedist
”时放我的项目包含文件,而不是在我执行“makeinstall
”时放
也许我的行为方式不对,所以为了更清楚,我会告诉你我需要什么
makeinstall
”创建可以复制到目标板的包Makefile.am
”,以及需要哪些规则才能实现我的目标
真的非常感谢。我不认为
autoconf
真的被设计成一个通用的安装程序/卸载程序,它可以给你提供这样的控制,而不会带来任何痛苦。您正在寻找类似于dpkg buildpackage
或rpmbuild
的东西,您可以将make install
的输出拆分为特定的子包,这样您就可以:
- 包foo适用于嵌入式板和可能的工具链,具体取决于包中的内容(DSO、可执行文件和运行时所需的其他文件)
- 为工具链打包foo-dev或foo-devel(开发所需的头文件、静态库文件和其他文件)
事实上不是。我的需要很简单,可以证明这样的事情是正确的。我只想能够设置一个给定的脚本SUID,其他数据文件R/W任意权限等等。我理解你说的,并且倾向于同意没有为我需要的东西做任何准备,但我仍然希望有一个更干净的方式,而不是“做完后上钩”。真的谢谢。但是在#1中,你说你已经在创建“包”。我只是建议你使用一种专门为包装设计的工具。这些工具还可以设置文件权限,以及其他许多功能。如果它真的比我想象的简单,你可以看看automake安装钩子“本地安装数据”或“安装数据钩子”,这取决于它们需要运行的时间。我明白你的意思。不过,我的观点是,当我使用“钩子”时,我首先做的是错误的,以便以后进行修复,这对我来说似乎不明智,所以我想知道是否有任何方法可以在一开始就纠正它。从你所说的和我在网络上所发现的来看,这似乎是不可能的,我不得不接受“-hook-”或任何其他后来的修复方法。我现在清楚了吗?再次感谢!
# 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")
if SETUID_INSTALL
install-data-hook:
/bin/chmod 4755 $(DESTDIR)$(bindir)myBinary
endif