![](/img/trans.png)
[英]Automake : what are the valid values for *_la_LDFLAGS in Makefile.am?
[英]Automake Variables to tidy up Makefile.am
我有一个目录/ src包含我的所有源文件,/ bin用于在运行make命令后存储所有二进制文件。 该目录如下所示:
/BuildDirectory
- - /src
- - /bin
- - configure
- - Makefile.am
- - configure.ac
- - ...
现在在Makefile.am中,我必须指定:
bin_PROGRAMS = bin/x bin/y bin/z bin/k ...
bin_x_SOURCES = src/x.cpp
bin_y_SOURCES = src/y.cpp
bin_z_SOURCES = src/z.cpp
是否有任何变量可以帮助摆脱所有“bin /”和“src /”? 例如,我只需指定:
$BIN = bin
$SRC = src
他们将在正确的文件夹中查找正确的文件并将其编译到正确的位置。
谢谢
你可以利用远程建设。 将此makefile放在bin目录中:
VPATH = ../src
bin_PROGRAMS = x y z k ...
x_SOURCES = x.cpp
y_SOURCES = y.cpp
z_SOURCES = z.cpp
现在用这个替换当前的Makefile.am:
SUBDIRS = bin
现在调整你的configure.ac以生成bin / Makefile
AC_CONFIG_FILES([Makefile
bin/Makefile])
你应该为生活做好准备。
据我所知。 如果您希望将已编译的文件与源文件分开,请记住您可以在树之外构建:
$ cd foo-1.2.3
$ mkdir build
$ cd build
$ ../configure
$ make
$ make install
如果这是你想要做的,你可以通过创建没有目录前缀的二进制文件(并且仍然手动引用src/
的东西)来使Makefile.am
更简单。
如果你想要做的就是我认为你想要做的事情,那么你正在努力实现以下目标:
SRCDIR = src
BINDIR = bin
bin_PROGRAMS = $(BINDIR)/x $(BINDIR)/y $(BINDIR)/z
bin_x_SOURCES = $(SRCDIR)/x.cpp
bin_y_SOURCES = $(SRCDIR)/y.cpp
bin_z_SOURCES = $(SRCDIR)/z.cpp
我已经以各种形式对它进行了几次测试,它不会像你的例子那样编译代码; 我以某种方式确信它在一个阶段编译C:
gmake[1]: *** No rule to make target `bin/x.c', needed by `x.o'. Stop.
因此我很确定这是不可能的。 抱歉。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.