簡體   English   中英

Automake Variables整理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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM