假设我有一个这样的项目:
(dev dir)
- README
- INSTALL
/ src
- blah.cpp
- blah.hpp
/ conf
- blah_one.xml
- blah_two.xml
Run Code Online (Sandbox Code Playgroud)
我创建了一个configure.ac和Makefile.am来在(/ usr/local)/ bin下安装二进制文件.configure.ac是这样的:
AC_INIT([blah], [0.1])
AC_PREREQ([2.67])
AM_INIT_AUTOMAKE([1.11])
AC_CONFIG_SRCDIR([src/blah.cpp])
AC_PROG_CXX
AC_LANG([C++])
AC_HEADER_STDC
AC_CONFIG_FILES([Makefile])
AC_CONFIG_FILES([src/Makefile])
AC_OUTPUT
Run Code Online (Sandbox Code Playgroud)
...... Makefile就像
SUBDIRS = src
Run Code Online (Sandbox Code Playgroud)
...和src/Makefile.am类似
bin_PROGRAMS = blah
blah_SOURCES = blah.cpp blah.hpp
Run Code Online (Sandbox Code Playgroud)
一切正常,"make install"正确安装(/ usr/local)/ bin下的二进制文件.
现在:
我想扩展这些命令"make install"(在configure,build之后),在/ etc/blah下安装配置文件blah_one.xml和blah_two.xml,并在/ var/log下"准备"一个日志目录/废话/
这样做的正确方法是什么?
好吧,我会这样做:
blahconfdir=$(sysconfdir)/blah
blahconf_DATA = blah_one.xml blah_two.xml
blahlogdir = $(localstatedir)/log/blah
Run Code Online (Sandbox Code Playgroud)
然后当你配置:
./configure --sysconfdir=/etc --localstatedir=/var
Run Code Online (Sandbox Code Playgroud)
在不知道"准备"步骤的细节的情况下,很难知道需要发生什么,以及如何实现它.
| 归档时间: |
|
| 查看次数: |
5347 次 |
| 最近记录: |