考虑以下死亡简单的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
- 具体。还有其他类似的变量吗?
答案 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)))