解剖 Nginx·自动脚本篇(6)编译器名称变量脚本 auto/cc/name
- Author: Poechant
- Blog: blog.CSDN.net/Poechant
- Email: zhongchao.ustc#gmail.com (#->@)
- Date: March 12th, 2012
- Copyright © 柳大·Poechant
回顾变量 CC
最初是在auto/options
脚本中初始化的:
CC=${CC:-gcc}
1 C Compiler 的 feature
Windows 平台的编译器叫做MSVC
,其他平台的都统称为C Compiler
。
1.1 获取编译器参数
该脚本并不复杂,首先通过NGX_PLATFORM
变量来判断是否是win32
(该变量是在auto/options
中初始化的),如果是,则:
ngx_feature="C compiler"
ngx_feature_name=
ngx_feature_run=yes
ngx_feature_incs=
ngx_feature_path=
ngx_feature_libs=
ngx_feature_test=
. auto/feature
其中,ngx_feature
变量为C compiler
,然后初始化其他一些与 feature 相关的变量,再引用auto/feature
脚本。
1.2 无法找到编译器则退出
ngx_found
表示编译器是否存在,判断ngx_found
变量如果是no
(该变量是在auto/feature
脚本中被置值的),则:
echo
echo $0: error: C compiler $CC is not found
echo
exit 1
即如果编译器不存在,就退出自动脚本运行。
2 分局不同编译器设置名称
2.1 msvc
if `$NGX_WINE $CC -v 2>&1 \
| grep '^Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16' \
>/dev/null 2>&1`; then
NGX_CC_NAME=msvc10
echo " + using Microsoft Visual C++ 10 compiler"
else if `$NGX_WINE $CC -v 2>&1 \
| grep '^Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14' \
>/dev/null 2>&1`; then
NGX_CC_NAME=msvc8
echo " + using Microsoft Visual C++ 8 compiler"
else if `$NGX_WINE $CC -v 2>&1 \
| grep '^Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13' \
>/dev/null 2>&1`; then
NGX_CC_NAME=msvc7
echo " + using Microsoft Visual C++ 7 compiler"
else
NGX_CC_NAME=msvc
echo " + using Microsoft Visual C++ compiler"
fi
fi
fi
2.2 owc
else
if [ "$CC" = wcl386 ]; then
NGX_CC_NAME=owc
echo " + using Open Watcom C compiler"
2.3 bcc
else
if [ "$CC" = bcc32 ]; then
NGX_CC_NAME=bcc
echo " + using Borland C++ compiler"
2.4 gcc
else
if `$CC -v 2>&1 | grep 'gcc version' >/dev/null 2>&1`; then
NGX_CC_NAME=gcc
echo " + using GNU C compiler"
2.5 icc
else
if `$CC -V 2>&1 | grep '^Intel(R) C' >/dev/null 2>&1`; then
NGX_CC_NAME=icc
echo " + using Intel C++ compiler"
2.6 sunc
else
if `$CC -V 2>&1 | grep 'Sun C' >/dev/null 2>&1`; then
NGX_CC_NAME=sunc
echo " + using Sun C compiler"
2.7 ccc
else
if `$CC -V 2>&1 | grep '^Compaq C' >/dev/null 2>&1`; then
NGX_CC_NAME=ccc
echo " + using Compaq C compiler"
2.8 acc
else
if `$CC -V 2>&1 | grep '^aCC: ' >/dev/null 2>&1`; then
NGX_CC_NAME=acc
echo " + using HP aC++ compiler"
2.9 Unknown
else
NGX_CC_NAME=unknown
-
转载请注明来自“柳大·Poechant的CSDN博客”:Blog.CSDN.net/Poechant
-
分享到:
相关推荐
**Nginx 一键安装与自动化脚本** 在IT行业中,服务器配置和管理是一项重要的任务,尤其是在处理Web服务时。Nginx是一款高性能的HTTP和反向代理服务器,以其高效、稳定和轻量级的特性而广受欢迎。本文将详细讨论如何...
通常,Nginx的启动脚本位于操作系统的服务管理目录下,如Linux系统中的`/etc/init.d/nginx`或`/usr/local/nginx/sbin/nginx`。这些脚本包含了启动、停止、重启Nginx服务的相关命令,并与系统的服务管理系统(如...
nginx 自动化安装脚本,下载直接运行安装就可以,还集成了限制国家ip模块
ubuntu自动安装nginx php脚本ubuntu自动安装nginx php脚本
nginx配置修改后运行此脚本启动nginx。 其脚本的作用往往是简化了启动的便利
通过提供用户友好的界面,用户只需输入Nginx的版本号和部署目录,脚本即可自动完成从依赖库安装到Nginx服务启动的所有步骤。该脚本适用于基于YUM的Linux发行版 功能 记录日志:脚本中的每个关键步骤都会记录到日志中...
nginx自动化安装shell脚本
6. **创建启动脚本**:为 Nginx 创建系统服务启动脚本,以便于用 `systemd` 或 `init.d` 方式管理。 7. **启动与检查**:启动 Nginx 并检查其是否成功运行。 **源码安装的优势** 源码安装相比于二进制包安装有以下...
Nginx通过配置文件(通常位于`/etc/nginx/nginx.conf`)管理多个站点,每个站点都有自己的配置块,通常称为`server`块。 ### 2. 添加站点脚本的作用 添加站点脚本是为了简化Nginx站点配置过程,避免手动编写配置...
Centos7系统自动安装nginx脚本, 由于每次安装新的环境如果需要 Nginx 的话都需要进行一次手动安装,为了减轻重复工作,书写自动安装 Nginx 安装脚本
要创建一个自动化安装Nginx的脚本,你需要熟悉bash shell语法,包括变量、条件语句、循环以及函数等概念。 1. **安装必备工具**:在开始安装Nginx之前,确保系统已经安装了必要的软件包管理器,如`apt`(Ubuntu/...
windows启动nginx脚本
linux安装nginx一键脚本(自己用过,完美可用),这个文件是nginx.sh,可以在linux的小黑框中,先上传到服务器自己想安装的目录,然后找到找到这个目录再找到这个文件,执行sh nginx.sh即可自动安装。
6. **重启Nginx服务**:最后,更新Nginx配置后,运行`sudo systemctl restart nginx`或相应命令重启服务,使改动生效。 在提供的压缩包文件`ssl`中,可能包含了已生成的PEM格式证书和私钥文件。只需将这些文件中的...
**Nginx脚本详解** Nginx,作为一款高性能的HTTP和反向代理服务器,以其轻量级、高并发的特性在Web服务领域广泛应用。它不仅能够处理静态内容,还可以通过配置执行一些动态处理任务,例如使用脚本来实现自定义逻辑...
Nginx日志自动归档备份shell脚本log
# config: /usr/local/nginx/conf/nginx.conf # pidfile: /usr/local/nginx/logs/nginx.pid ``` 这部分定义了脚本的基本信息,包括执行环境、作者、服务描述、配置文件路径以及 PID 文件路径。 #### 函数定义 1. ...
以下是使用Shell脚本自动化部署Nginx的基本步骤: 1. **环境准备**:确保服务器上已经安装了必要的基础工具,如GCC编译器、Make工具等,这些通常包含在开发工具包中(如在Ubuntu上使用`sudo apt-get install build-...
在CentOS 7这样的Linux发行版上,手动安装带有RTMP模块的Nginx可能涉及多个步骤,因此通常会使用自动化脚本来简化这个过程。 本文将深入探讨如何使用shell脚本来自动化在CentOS 7上安装带有RTMP模块的Nginx。 首先...
current_ip=$(grep -oP 'server \K[\d.]+' /etc/nginx/sites-enabled/your-site.conf) # 比对新旧IP if [ "$current_ip" != "$(get_latest_ip)" ]; then echo "IP地址已更改,正在重新加载Nginx配置..." # 执行...