没有automake的out-of-tree构建makefile?

时间:2013-05-08 14:53:45

标签: makefile

考虑以下死亡简单的Makefile:

foo: foo.c
    $(CC) $(CFLAGS) -o $@ $<

~/foo的以下目录结构:

Makefile
foo.c

如何调整Makefile以便我可以执行以下操作:

/tmp$ make -f ~/foo/Makefile
cc -o foo /home/me/foo/foo.c

我尝试使用$(srcdir),但这似乎是automake - 具体。还有其他类似的变量吗?

1 个答案:

答案 0 :(得分:3)

这样做:

foo: /home/me/foo/foo.c
    $(CC) $(CFLAGS) -o $@ $<

或者这个:

foo: foo.c
    $(CC) $(CFLAGS) -o $@ $<

vpath %.c /home/me/foo

或者,如果您不想将路径硬编码到makefile中:

foo: foo.c
    $(CC) $(CFLAGS) -o $@ $<

vpath %.c $(dir $(lastword $(MAKEFILE_LIST)))