在autotools项目中使用上级目录

时间:2012-10-06 11:47:37

标签: autotools


我有一个具有以下结构的项目存储库:

repo/
  configure.ac
  Makefile.am
  project1/
    configure.ac
    Makefile.am
    [sources]
  project2/
    configure.ac
    Makefile.am
    [sources]
  project3/
    configure.ac
    Makefile.am
    [sources]

现在我需要将目录(比如说common_logic/)添加到repo/中,然后以某种方式修改project1project2以使用来自common_logic的来源。< / p>

我能看到的其中一个解决方案是 在../common_logic/./configure之后(或在Makefile中的任何规则之前)复制project1/并在Makefile.am中添加以下行:

project1_la_CFLAGS += -I./common_logic

project1_la_SOURCES += ./common_logic/foo.h ./common_logic/foo.c

在这种情况下,makemake dist都不会被破坏。然而,它看起来像是我的拐杖。

无论如何,您能否告诉我如何修改project1project2以使用新创建的文件夹?或指出另一种解决方案?

1 个答案:

答案 0 :(得分:1)

也许最好从common_logic

建立一个便利库
noinst_LTLIBRARIES = libcommonlogic.la
libcommonlogic_la_SOURCES = foo.c foo.h

然后,在project1的{​​{1}}:

Makefile.am