运行 部分构建 Makefile
Run partially build of Makefile
我有以下 makefile
看起来像以下
PROJ_DIR := $(CURDIR)
all: pre app app1 app2 app3
apps = app app1 app2 app3
pre:
mkdir temp
app:
cd PROJ_DIR/app ; npm install
app1:
cd PROJ_DIR/app1 ; npm install
...
#Need to wait to app1...n to finish the install process in order to proceed and zip all the app installed artifacts
build:$(apps)
#zip all the apps artifacts
clean:build
rm -rf test
现在,当我 运行 使用 make
时,一切都按预期工作。
问题是我想 运行 像
这样的部分构建
make -j1 pre app1 build clean
(在序列中只有 app1
应该 运行 而不是 app2 app3
等)这里我有一个问题,因为我有 apps
pre-requestie(来自雷诺的提示)当我用 make
执行整个 make 时它有助于等待,但如果我想 运行 它部分地它仍然 运行 它们全部(所有应用程序),是否有一个技巧可以帮助执行类型?
不确定我是否了解所有细节,但有一件重要的事情需要考虑:make 完全按照您的指示进行操作,不多也不少(希望如此)。所以,如果你告诉它 build
取决于你所有的应用程序,你不能指望 make 在它也做所有应用程序之前做 build
。就这么简单。就是这样
build: $(apps)
说:build
取决于 $(apps)
或者换句话说,不可能 在完成 build
之前完成 build
16=].
如果你只想用一个应用程序构建,你需要另一个目标而不是 build
... 或者你需要更改 apps
make 变量的定义。你猜怎么着,这可能是最简单的事情,因为 make 让你在命令行上执行此操作:
$ make apps='app1' pre build clean
或者,如果您只想构建和打包 app1
和 app2
:
$ make apps='app1 app2' pre build clean
默认情况下,在命令行上分配的变量优先于 Makefile 内部的定义。执行 make apps='app1' pre build clean
与编辑 Makefile 以更改 apps
的定义然后执行 make pre build clean
.
的效果完全相同
我有以下 makefile
看起来像以下
PROJ_DIR := $(CURDIR)
all: pre app app1 app2 app3
apps = app app1 app2 app3
pre:
mkdir temp
app:
cd PROJ_DIR/app ; npm install
app1:
cd PROJ_DIR/app1 ; npm install
...
#Need to wait to app1...n to finish the install process in order to proceed and zip all the app installed artifacts
build:$(apps)
#zip all the apps artifacts
clean:build
rm -rf test
现在,当我 运行 使用 make
时,一切都按预期工作。
问题是我想 运行 像
make -j1 pre app1 build clean
(在序列中只有 app1
应该 运行 而不是 app2 app3
等)这里我有一个问题,因为我有 apps
pre-requestie(来自雷诺的提示)当我用 make
执行整个 make 时它有助于等待,但如果我想 运行 它部分地它仍然 运行 它们全部(所有应用程序),是否有一个技巧可以帮助执行类型?
不确定我是否了解所有细节,但有一件重要的事情需要考虑:make 完全按照您的指示进行操作,不多也不少(希望如此)。所以,如果你告诉它 build
取决于你所有的应用程序,你不能指望 make 在它也做所有应用程序之前做 build
。就这么简单。就是这样
build: $(apps)
说:build
取决于 $(apps)
或者换句话说,不可能 在完成 build
之前完成 build
16=].
如果你只想用一个应用程序构建,你需要另一个目标而不是 build
... 或者你需要更改 apps
make 变量的定义。你猜怎么着,这可能是最简单的事情,因为 make 让你在命令行上执行此操作:
$ make apps='app1' pre build clean
或者,如果您只想构建和打包 app1
和 app2
:
$ make apps='app1 app2' pre build clean
默认情况下,在命令行上分配的变量优先于 Makefile 内部的定义。执行 make apps='app1' pre build clean
与编辑 Makefile 以更改 apps
的定义然后执行 make pre build clean
.