j4x*_*j4x 6 automake autotools datadirectory
如何automake在我想要的地方安装任意数据文件?
我有一些文件需要放在特定的地方,例如" datafile1",在我的项目中,需要复制到" /usr/MyProduct/flash_memory".
/usr/MyProduct/flash_memory"是一条我无法改变的绝对道路.datafile1"是一个二进制数据文件,不是由"构建" make,而只是需要复制make install.make dist.它需要被复制make install(这是一个很长的解释,因此,pelase只考虑这一点).install-hook,但更喜欢采用更优雅的方法(如果可能的话).真的感谢!
Wil*_*ell 13
不要在Makefile.am中使用完整路径.永远.你可以告诉automake的把datafile1在$(datadir)这将扩大到$(prefix)/share/MyProduct,也可以定义flash_DIR扩展到$(prefix)/MyProduct/flash_memory,并把其中的文件,但最终必须允许用户设置$(prefix)要么/usr或别的东西.你想在Makefile.am做什么是:
flashdir = $(prefix)/$(PACKAGE)/flash_memory
flash_DATA = datafile1
Run Code Online (Sandbox Code Playgroud)
(它可能更适合使用$(prefix)/@PACKAGE@/flash_memory,因为PACKAGE在制作时可能不应该是可修改的,但我认为这不是非常重要.)
然后,当您是用户时,make install使用前缀设置为运行/usr.如果您尝试在Makefile.am中使用绝对路径,它将禁止分阶段安装(即设置DESTDIR),将限制用户灵活性,并且是错误的做法.重点是包维护者无法选择最终位置; 这是对用户的决定.