1

我正在编写一个主 makefile 来编译和安装多个基于 autoconf 的库,它们相互依赖。第一次一切正常。问题是:如果我正在单独处理这些库之一并执行“make && make install”前缀文件夹中的头文件(即使它们未被触及)。这会导致所有依赖库从头开始编译。

有没有办法避免不必要的重新编译而不侵入makefile?

4

2 回答 2

1

也许解决方案有点晚了,但是

./configure INSTALL="install -p"

修复重新编译问题。此标志使 GNU install 将已安装文件的时间戳设置为已构建文件的时间戳。

于 2011-10-21T15:48:06.370 回答
0

您可以使用仅存在的哨兵文件来建立您的依赖关系图。例如。

prefix := /usr/local

.PHONY: all
all: libx-built

libx-built \
  : libx.tar.gz \
  ; tar xzvf $@ \
  && cd libx \
  && ./configure --prefix=$(prefix) \
  && make && make install \
  && touch $@

然后,只有当 libx-built 是新的时,您才会进行依赖 liby 构建。

liby-built \
  : liby.tar.gz libx-built \
  ; ...
于 2010-07-12T20:50:02.627 回答