Cgi 定制";“使安装”;使用自动制造/自动工具

Cgi 定制";“使安装”;使用自动制造/自动工具,cgi,autotools,autoconf,automake,build-system,Cgi,Autotools,Autoconf,Automake,Build System,我试图在C++中使用CuoTooGuffic系统创建CGI应用程序。此应用程序将是我的嵌入式设备的接口。 由于make/make all我有bin目录和*.cgi可执行文件,以前准备的html模板和images目录和lighttpd配置文件 我需要将我的内容移动到目标设备的适当目录,即: 所有.cgi从bin移动到$(wwwdir)/cgi bin,如果未指定,则wwwdir将为/var/www/ 图像目录递归到相同的$(wwwdir)目录 $(datarootdir)/$(包名称)的所有ht


我试图在C++中使用CuoTooGuffic系统创建CGI应用程序。此应用程序将是我的嵌入式设备的接口。
由于
make
/
make all
我有
bin
目录和*.cgi可执行文件,以前准备的
html模板和
images
目录和lighttpd配置文件

我需要将我的内容移动到目标设备的适当目录,即:

  • 所有.cgi从bin移动到$(wwwdir)/cgi bin,如果未指定,则wwwdir将为/var/www/
  • 图像
    目录递归到相同的$(wwwdir)目录
  • $(datarootdir)/$(包名称)的所有html模板
  • lighttpd.conf到$(sysconfdir)
我的程序列表的定义如下:
bin\u PROGRAMS=$(top\u builddir)/bin/main.cgi
(这里只有一个main.cgi)

是否有一种优雅的方法可以使用configure.ac/Makefile.am文件指定安装步骤,以便用户(或其他构建系统)运行
makeinstall
后,所有文件都将到达它们应该到达的位置

目前由于
makeinstall
-二进制文件
main.cgi
位于
/usr/local/bin/

当前,由于makeinstall,二进制文件main.cgi位于/usr/local/bin/

是的,这是意料之中的。您可以在运行
configure
时设置此选项,例如:

./configure --prefix=/var/www ...
应将您的
bin\u程序安装到
/var/www/bin

在您的情况下,您需要设置更多:

./configure --prefix=/var/www --bindir=/var/www/cgi-bin --sysconfdir=/wherever
应将
datarootdir
设置为
/var/www/share

将HTML模板添加到
pkgdata_数据中
应该将它们放入
/var/www/share
包中。您可能需要为您的图像文件添加一个,因为实际上它们可能也属于
pkgdata_DATA
中,但不是


将lighttpd.conf添加到
sysconf\u数据中
。我想这涵盖了你所有的文件。

问题中的
包名
呢?在我的
Makefile.am
中,我使用了
@datadir@/@package\u name@
,并将其替换为
${datarootdir}/@package\u name@
,这显然是不正确的。