对于makefile内部

时间:2017-03-21 21:24:31

标签: makefile

大家好,我在linux上有一个非常大的makefile,我正在减少它。对于这样的任务,我试图减少变量声明部分(小例子如下)

<!DOCTYPE html>
<html>

<head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
    <title>Storage Update</title>
    <script type="application/ecmascript">
        function Update() {
            var d = new Date(Date.now());
            localStorage.setItem("StorageUpdateTest", d);
            output.innerHTML = d.toLocaleTimeString();
        }
    </script>
</head>

<body>
<h1>Storage Update</h1>

<form method="post">
    <p id="output"></p>
    <input name="ButtonUpdate" type="button" value="Update" onclick="Update();">
</form>

</body>

</html>

尝试按以下方式执行某些操作,

DIRHEA := include/

DIRHEA_MANAGERS := $(DIRHEA)managers/
DIRHEA_ENTITIES := $(DIRHEA)entities/

CXXFLAGS := -I$(DIRHEA_MANAGERS) -I$(DIRHEA_ENTITIES)

哪个没用。有人可以建议我这样做吗?

2 个答案:

答案 0 :(得分:1)

这样的

for循环是 shell 语法,而不是Makefile。您需要使用shell的语法(POSIX兼容shell中的foo="${foo} bar")来连接字符串。

答案 1 :(得分:1)

首先获取目录列表:

SUBDIRS := $(shell ls -p $(DIRHEA) | grep /)

然后

CXXFLAGS := $(addprefix -I(DIRHEA), $(SUBDIRS))