step0、参考
step1、安装依赖
所有时 | Terminal + Shell + GNU CoreUtils |
下载时 | cURL |
解压时 | tar + gzip |
编译时 | gmake、gcc / GCC | Clang / LLVM |
运行时 |
step2、使用curl命令下载NSS
源码包 ()
curl -LO https://ftp.mozilla.org/pub/security/nss/releases/NSS_3_48_RTM/src/nss-3.48.tar.gz
step3、使用tar解压NSS
源码包
tar vxf nss-3.48.tar.gz
step4、进入nss-3.48/nss
目录
cd nss-3.48/nss
step5、查看nss-3.48/nss
目录中的内容
step6、使用make进行编译
make [option]... [VAR=VALUE]... [TARGET]...
VAR | VALUE示例 | 说明 |
---|---|---|
CC | gcc | clang | 指定C编译器 |
CFLAGS | -O2 -v | 指定C编译器的参数 |
CXX | g++ | clang++ | 指定C++编译器 |
CXXFLAGS | -O2 -v | 指定C++编译器的参数 |
CPP | cpp | 指定C预处理器 |
CPPFLAGS | -I<includeDIR> | 指定C预处理器的参数 |
LDFLAGS | -L<libDIR> | 指定C链接器的参数 |
LIBS | -l<libName> | 指定C链接器要链接的库的名称 |
USE_64 | 0 | 1 | 是否支持64bit |
BUILD_OPT | 0 | 1 | 是否进行优化 |
NSS_ENABLE_WERROR | 0 | 1 | 是否将警告 当作错误 |
USE_SYSTEM_ZLIB | 0 | 1 | 是否使用系统中已安装的zlib |
NSS_USE_SYSTEM_SQLITE | 0 | 1 | 是否使用系统中已安装的SQLite |
NSPR_INCLUDE_DIR | /usr/local/opt/nspr/include/nspr | 指定NSPR头文件所在路径 |
NSPR_LIB_DIR | /usr/local/opt/nspr/lib | 指定NSPR库文件所在路径 |
示例:
make \
CFLAGS="-O2 -v" \
USE_64=1 \
BUILD_OPT=1 \
NSPR_INCLUDE_DIR=/usr/local/opt/nspr/include/nspr \
NSPR_LIB_DIR=/usr/local/opt/nspr/lib
step7、安装
cd ../dist
PREFIX=/usr
mkdir -p $PREFIX/{bin,lib/pkgconfig,include/nss}
install -v -m755 Linux*/lib/*.so $PREFIX/lib
install -v -m644 Linux*/lib/{*.chk,libcrmf.a} $PREFIX/lib
cp -v -RL {public,private}/nss/* $PREFIX/include/nss
chmod -v 644 $PREFIX/include/nss/*
install -v -m755 Linux*/bin/{certutil,pk12util} $PREFIX/bin
cat > $PREFIX/lib/pkgconfig/nss.pc <<EOF
prefix=${PREFIX}
exec_prefix=\${prefix}
libdir=\${exec_prefix}/lib
includedir=\${prefix}/include/nss
Name: NSS
Description: Mozilla Network Security Services
Version: 3.48
Requires: nspr >= 4.12
Libs: -L\${libdir} -lnss3 -lnssutil3 -lsmime3 -lssl3
Cflags: -I\${includedir}
EOF