note/tech/Makefile(simp_httpd)
2025-11-19 10:16:05 +08:00

63 lines
1.3 KiB
Plaintext

# Makefile for simp_httpd_m
# 编译器
CC = gcc
# 目标可执行文件
TARGET = sim_httpd_m
# 源文件
SRC = simp_httpd_m.c
# 配置文件
CONFIG = config.json
# 检测操作系统
UNAME_S := $(shell uname -s)
# 根据操作系统设置编译标志和安装路径
ifeq ($(UNAME_S),Darwin)
# macOS
CFLAGS = -Wall -Wextra
INSTALL_BIN = /usr/local/opt/simp_httpd
INSTALL_CONFIG = /usr/local/opt/simp_httpd
INSTALL_CMD = install
else
# 假设其他系统是 Linux
CFLAGS = -Wall -Wextra -lpthread
INSTALL_BIN = /opt/simp_httpd
INSTALL_CONFIG = /opt/simp_httpd
INSTALL_CMD = install
endif
# 默认目标
all: $(TARGET)
# 编译规则
$(TARGET): $(SRC)
$(CC) $(CFLAGS) -o $@ $^
# 安装规则
install: $(TARGET)
@echo "Installing $(TARGET) to $(INSTALL_BIN)"
@$(INSTALL_CMD) -d $(INSTALL_BIN)
@$(INSTALL_CMD) -m 755 $(TARGET) $(INSTALL_BIN)
@echo "Installing $(CONFIG) to $(INSTALL_CONFIG)"
@$(INSTALL_CMD) -d $(INSTALL_CONFIG)
@$(INSTALL_CMD) -m 644 $(CONFIG) $(INSTALL_CONFIG)
@echo "Installation complete."
# 卸载规则
uninstall:
@echo "Removing $(TARGET) from $(INSTALL_BIN)"
@rm -f $(INSTALL_BIN)/$(TARGET)
@echo "Removing $(CONFIG) from $(INSTALL_CONFIG)"
@rm -f $(INSTALL_CONFIG)/$(CONFIG)
@echo "Uninstallation complete."
# 清理规则
clean:
rm -f $(TARGET)
# 伪目标
.PHONY: all clean install uninstall