如何使用Automake创建一个特定目录?

时间:2012-09-10 15:10:33

标签: build makefile directory automake

我只想知道在Makefile.am中需要写什么才能在build所在的同一目录中创建一个名为Makefile.am的目录。

2 个答案:

答案 0 :(得分:3)

仔细考虑您的问题:您是否真的想在build所在的目录中创建Makefile.am,或者在调用configure时在当前工作目录中创建?{1}}?这些并不总是一样的:GNU构建系统旨在支持树外构建(可能只读$srcdir),因此最终用户应该期望以下工作:

$ tar xf autofoo-1.2.tar.gz
$ mkdir autofoo-build
$ cd autofoo-build
$ ../autofoo-1.2/configure
$ make
$ sudo make install

现在,我发现创建目录的最简单方法是不使用Makefile.am,而是让config.status执行它(这是执行所有模板替换的shell脚本)结束configure,将Makefile.in变为Makefile,将config.h.in变为config.h,依此类推)。在configure.ac中,输入以下内容:

AC_CONFIG_COMMANDS([mkdir], [$MKDIR_P build])

答案 1 :(得分:1)

你需要写:

build:
    test -d ${srcdir}/build || mkdir ${srcdir}/build

但你真的不想这样做。源目录应该被认为是只读的。如果您只想在构建目录中创建名为build的目录,只需执行

build:    
    test -d build || mkdir build