`
Poechant
  • 浏览: 229580 次
博客专栏
Bebe66e7-3a30-3fc9-aeea-cfa3b474b591
Nginx高性能Web服务...
浏览量:24327
5738817b-23a1-3a32-86de-632d7da73b1e
Cumulus实时媒体服务...
浏览量:22104
社区版块
存档分类
最新评论

解剖Nginx·自动脚本篇(6)编译器名称变量脚本 auto/cc/name

 
阅读更多

解剖 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一键安装包含自动安装脚本

    **Nginx 一键安装与自动化脚本** 在IT行业中,服务器配置和管理是一项重要的任务,尤其是在处理Web服务时。Nginx是一款高性能的HTTP和反向代理服务器,以其高效、稳定和轻量级的特性而广受欢迎。本文将详细讨论如何...

    nginx 启动脚本

    通常,Nginx的启动脚本位于操作系统的服务管理目录下,如Linux系统中的`/etc/init.d/nginx`或`/usr/local/nginx/sbin/nginx`。这些脚本包含了启动、停止、重启Nginx服务的相关命令,并与系统的服务管理系统(如...

    nginx 自动化安装脚本

    nginx 自动化安装脚本,下载直接运行安装就可以,还集成了限制国家ip模块

    ubuntu自动安装nginx php脚本

    ubuntu自动安装nginx php脚本ubuntu自动安装nginx php脚本

    window下nginx启动脚本

    nginx配置修改后运行此脚本启动nginx。 其脚本的作用往往是简化了启动的便利

    nginx自动化安装shell脚本

    nginx自动化安装shell脚本

    一键安装Nginx脚本+源码

    6. **创建启动脚本**:为 Nginx 创建系统服务启动脚本,以便于用 `systemd` 或 `init.d` 方式管理。 7. **启动与检查**:启动 Nginx 并检查其是否成功运行。 **源码安装的优势** 源码安装相比于二进制包安装有以下...

    nginx添加站点脚本

    Nginx通过配置文件(通常位于`/etc/nginx/nginx.conf`)管理多个站点,每个站点都有自己的配置块,通常称为`server`块。 ### 2. 添加站点脚本的作用 添加站点脚本是为了简化Nginx站点配置过程,避免手动编写配置...

    Centos7系统自动安装nginx脚本

    Centos7系统自动安装nginx脚本, 由于每次安装新的环境如果需要 Nginx 的话都需要进行一次手动安装,为了减轻重复工作,书写自动安装 Nginx 安装脚本

    Linux自动化脚本安装Nginx使用说明

    要创建一个自动化安装Nginx的脚本,你需要熟悉bash shell语法,包括变量、条件语句、循环以及函数等概念。 1. **安装必备工具**:在开始安装Nginx之前,确保系统已经安装了必要的软件包管理器,如`apt`(Ubuntu/...

    windows启动nginx.bat脚本

    windows启动nginx脚本

    linux安装nginx一键脚本(自己用过)

    linux安装nginx一键脚本(自己用过,完美可用),这个文件是nginx.sh,可以在linux的小黑框中,先上传到服务器自己想安装的目录,然后找到找到这个目录再找到这个文件,执行sh nginx.sh即可自动安装。

    自动化脚本一键生成Nginx https证书证书格式为pem

    6. **重启Nginx服务**:最后,更新Nginx配置后,运行`sudo systemctl restart nginx`或相应命令重启服务,使改动生效。 在提供的压缩包文件`ssl`中,可能包含了已生成的PEM格式证书和私钥文件。只需将这些文件中的...

    Nginx脚本

    **Nginx脚本详解** Nginx,作为一款高性能的HTTP和反向代理服务器,以其轻量级、高并发的特性在Web服务领域广泛应用。它不仅能够处理静态内容,还可以通过配置执行一些动态处理任务,例如使用脚本来实现自定义逻辑...

    Nginx日志自动归档备份shell脚本log.sh

    Nginx日志自动归档备份shell脚本log

    nginx开机启动脚本

    # config: /usr/local/nginx/conf/nginx.conf # pidfile: /usr/local/nginx/logs/nginx.pid ``` 这部分定义了脚本的基本信息,包括执行环境、作者、服务描述、配置文件路径以及 PID 文件路径。 #### 函数定义 1. ...

    自动化部署Nginx Shell脚本

    以下是使用Shell脚本自动化部署Nginx的基本步骤: 1. **环境准备**:确保服务器上已经安装了必要的基础工具,如GCC编译器、Make工具等,这些通常包含在开发工具包中(如在Ubuntu上使用`sudo apt-get install build-...

    带rtmp模块的nginx安装脚本

    在CentOS 7这样的Linux发行版上,手动安装带有RTMP模块的Nginx可能涉及多个步骤,因此通常会使用自动化脚本来简化这个过程。 本文将深入探讨如何使用shell脚本来自动化在CentOS 7上安装带有RTMP模块的Nginx。 首先...

    自动reload nginx解决nginx对动态域名不重新解析的Shell脚本

    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配置..." # 执行...

    nginx_nginx安装脚本_

    4. **启动失败**:检查Nginx的日志文件(通常在`/var/log/nginx/`),找出错误原因。 ### 五、维护与升级 1. **更新脚本**:定期更新安装脚本,以获取最新的Nginx版本和修复。 2. **升级Nginx**:通过脚本重新运行...

Global site tag (gtag.js) - Google Analytics