我有一个 lib(比如mylib)和两个可执行文件,其中一个(比如exe1)依赖于 lib。在文件系统中,我有:
src
Makefile
...
lib
mylib
Makefile
...
exe1
Makefile
...
exe2
Makefile
...
并通过make在srcdir 中启动所有内容。
Makefile在源代码中:
EXE=exe1 exe2
LIB=mylib
all: $(LIB) $(EXE)
.PHONY: $(LIB) $(EXE)
$(LIB):
$(MAKE) -C lib/$@
$(EXE): $(LIB)
$(MAKE) -C $@
例如,Makefile对于exe1是:
...
all: exe1 copy
exe1: exe1.o
$(CC) $(CFLAGS) $(OBJ) $(LDFLAGS) -o $@
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
...
我的问题是,如果我更改mylibdir 中的文件,则库会正确重建,但exe1显然没有......有没有办法让make该exe1目标依赖于在先前调用中指定的目标(mylib),make而无需指定依赖于mylib' s 文件在exe1 Makefile?
谢谢你们。