# 定义项目路径
PROJECT_DIR := $(shell pwd)

# 定义输出二进制文件的路径
BIN_DIR := dist

# 定义应用程序的名称
APPS := tunnelserver tunnelclient tunnelagent

# 创建输出目录
$(BIN_DIR):
	mkdir -p $(BIN_DIR)

# 构建所有应用程序
build: $(BIN_DIR)
	$(foreach app,$(APPS),$(MAKE) -C $(app);)

# 清理构建文件
clean:
	$(foreach app,$(APPS),$(MAKE) -C $(app) clean;)
	rm -rf $(BIN_DIR)

# 运行测试
test:
	$(foreach app,$(APPS),$(MAKE) -C $(app) test;)

# 运行所有任务
all: clean build

.PHONY: build clean test all