如何从子目录启动制作

时间:2013-04-06 00:39:05

标签: makefile subdirectory

我有一个顶级Makefile。该项目有几个不同深度的子目录。

如何从任何子目录启动make,因此它使用顶级Makefile,就像git自动查找其顶级.git目录一样?

结构:

/
/a/
/b/c
/Makefile
/Readme

场景:

/$ make
... Works ...
/b$ make
... Cannot find makefile

我希望第二种情况与第一种情况相同。

提示,它最好在:make中用作vi规则,但不应该是vi特定的

更新:/不是根目录,只是项目的根,真正意图是模仿git

2 个答案:

答案 0 :(得分:2)

Beta提示可行。 创建一个别名

alias make=`sh /home/makecrawl.sh`

makecrawl.sh看起来像

#! /bin/bash
while ! [ -f makefile ] &&  [$PWD != "/" ]
do
cd ..
done
make

答案 1 :(得分:1)

#!/bin/bash  

HERE=$PWD

while ! [ -f Makefile ] && [ $PWD != "/" ]
do
 cd ..
done

MFILE=$PWD/Makefile

cd $HERE
make -f $MFILE