63 lines
1.3 KiB
Plaintext
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 |