使用shell脚本运行makefile

时间:2015-12-06 16:48:08

标签: bash shell makefile find

我的目录结构如下:

.
├── one
│   ├── one_one
│   │   └── one_one_one
│   │       ├── Makefile
│   │       └── one_one_oneTest.cpp
│   └── one_two
│       ├── Makefile
│       └── one_twoTest.cpp
├── three
│   ├── Makefile
│   └── threeTest.cpp
└── two
    └── two_one
        ├── Makefile
        └── two_oneTest.cpp

我想在找到Makefile的地方运行make命令。所以,我编写了一个shell脚本如下。

#!/bin/bash
find . -type f -name Makefile -exec make \;

但它提出错误make: *** No targets specified and no makefile found. Stop.

如果我只是运行find . -type f -name Makefile,我会

./two/two_one/Makefile
./three/Makefile
./one/one_two/Makefile
./one/one_one/one_one_one/Makefile

这是我预期的正确输出。

如果我使用make命令运行Makefile,它运行正常,所以我认为Makefile是正确的。 shell脚本有什么问题?

仅供参考,我的一个Makefile如下:

all: TestTwoOne

TestTwoOne: two_oneTest.cpp
    g++ two_oneTest.cpp -o TestTwoOne

1 个答案:

答案 0 :(得分:3)

您当前的目录"没有更改为运行make的相应子目录。这样做:

$("[name='loginform']").formValidation({