# 判断不同的系统使用不同的编译器
# ifeq ($(OS),Windows_NT)
# 	CC := arm-linux-gnueabihf-gcc
# else
	CC := gcc
# endif

# 指定obj文件夹
OBJ_DIR := obj

# 指定lib文件夹
LIB_DIR := lib

# 指定输出文件夹
OUT_DIR := bin

# 指定源文件
SRCS := $(wildcard *.c)

# 指定Socket文件夹
SOCKET_DIR := socket

# 测试Socket部分（除了注销注册外的）
socket : sock_msg.o SocketClient SocketServer
	@chmod 777 $(OUT_DIR)/*.out
	@./$(OUT_DIR)/SocketServer.out



SocketClient : sock_msg.o $(SOCKET_DIR)/SocketClient.c 
	@$(CC) -c $(SOCKET_DIR)/$@.c -o $(OBJ_DIR)/$@.o
	@if [ ! -d "$(OBJ_DIR)" ]; then \
		mkdir obj; \
	fi
	@$(CC) -o $(OUT_DIR)/$@.out $(OBJ_DIR)/$@.o $(OBJ_DIR)/$<

SocketServer : sock_msg.o $(SOCKET_DIR)/SocketClient.c 
	@$(CC) -c $(SOCKET_DIR)/$@.c -o $(OBJ_DIR)/$@.o
	@if [ ! -d "$(OBJ_DIR)" ]; then \
		mkdir obj; \
	fi
	@$(CC) -o $(OUT_DIR)/$@.out $(OBJ_DIR)/$@.o $(OBJ_DIR)/$<

# 测试Socket注销注册部分

# 测试msg本地发送接收部分

# 测试msg发送接收信号部分

# 测试msg发送接收部分

# 编译库文件
sock_msg.o : $(LIB_DIR)/sock_msg.c $(LIB_DIR)/sock_msg.h
	@if [ ! -d "$(OBJ_DIR)" ]; then \
		mkdir obj; \
	fi
	@$(CC) -c $< -o $(OBJ_DIR)/$@

.PHONY: clean
clean:
	-rm -rf $(OBJ_DIR)/*.o
	-rm -rf $(OUT_DIR)/*.out