42 lines
731 B
Makefile
42 lines
731 B
Makefile
|
|
SUBDIRS := ./src
|
|
|
|
|
|
|
|
define make_subdir
|
|
@for subdir in $(SUBDIRS); do \
|
|
if [ -f "$$subdir/makefile" ]; then \
|
|
(cd "$$subdir" && make -f makefile $1) || exit 1; \
|
|
fi; \
|
|
done
|
|
endef
|
|
|
|
# 默认目标
|
|
.PHONY: all
|
|
all:
|
|
$(call make_subdir,all)
|
|
|
|
# 测试目标
|
|
.PHONY: test
|
|
test:
|
|
$(call make_subdir,test)
|
|
|
|
# 清理目标
|
|
.PHONY: clean
|
|
clean:
|
|
@echo "make: removing targets and objects"
|
|
$(call make_subdir,clean)
|
|
|
|
# 重新构建
|
|
.PHONY: rebuild
|
|
rebuild: clean all
|
|
|
|
# 显示帮助
|
|
.PHONY: help
|
|
help:
|
|
@echo "Available targets:"
|
|
@echo " all - Build all using both Makefile and Makefile_a"
|
|
@echo " test - Run tests"
|
|
@echo " clean - Clean all"
|
|
@echo " rebuild - Clean and rebuild"
|
|
@echo " help - Show this help"
|