linux软件证券,linux
1.說明
在*nix環(huán)境下,經(jīng)常通過源碼安裝軟件。./configure make make install基本上都是定式了。本文對于configure的基本原理進行闡述,并借助http://concurrencykit.org/開源包的configure文件,對于實際的運行過程進行分析。
2.configure基本背景
configure文件主要是對于軟件在不同平臺編譯時,對于硬件平臺環(huán)境、編譯器、頭文件、安裝目錄等進行配置,生成makefile文件,然后再進行編譯。(在configure還沒有執(zhí)行的時候,直接make,出現(xiàn)錯誤*** No targets specified and no makefile found. Stop.應該都遇到過吧 ^_^)。
configure文件通常是用bash腳本編寫。也就是通過執(zhí)行一系列的腳本生成最后的makefile文件。所以讀者可以先看看bash相關(guān)的基礎(chǔ)內(nèi)容。
3.configure模塊分析
在configure執(zhí)行的過程中,通常涉及到(1)基本設(shè)置;(2)參數(shù)解析;(3)操作系統(tǒng)相關(guān);(4)平臺架構(gòu)信息;(5)編譯環(huán)境檢查;(6)頭文件檢查;(7)makefile文件生成等幾個方面。我們對于上述幾個執(zhí)行部分逐一進行分析。
3.1基本設(shè)置
通常configure文件中含有了軟件版本信息、基本路徑設(shè)置等配置信息。
#變量替換,可以參照:http://en.kioskea.net/faq/1310-replacing-variables-in-bash-shell
#VERSION=${VERSION:-'0.2.8'} var=${var:-‘default’}
#如果 VERSION 沒有被設(shè)置,則使用默認的’0.2.8’
VERSION=${VERSION:-'0.2.8'}
VERSION_MAJOR='0'
BUILD="$PWD/build/ck.build"
PREFIX=${PREFIX:-"/usr/local"}
3.2參數(shù)解析
在執(zhí)行configure的時候,通??梢暂斎肼窂降葏?shù),對于安裝路徑、lib包位置等進行設(shè)置(比如:./configure --prefix=/usr/local)。
#$*代表輸入的參數(shù)列表,從參數(shù) 1 開始,即:忽略了本身的 configure
#value=獲得輸入的參數(shù),并且取得參數(shù)的值
# sed -e 's/^[^=]*=\(.*\)/\1/'對于參數(shù)進行解析,獲得”=”之后的內(nèi)容
#其中,^[^=]*= 從每行開頭查找不是=開始的多個字符且以=結(jié)束,
#\(.*\)/\1 將=之后的內(nèi)容替換整個行
#可以參照:http://www.grymoire.com/Unix/Sed.html#uh-4
for option in $*; do
value=`echo "$option" | sed -e 's/^[^=]*=\(.*\)\1/'`
#比如:輸入./configure -–help
case "$option" in
#則通過 case 語句,執(zhí)行 help 中的語句
--help)
echo "Usage: ./configure [OPTIONS]"
;;
#*為通配符,即option為"--profile=*"
--profile=*)
PROFILE=$value
;;
--prefix=*)
PREFIX=$value
;;
--includedir=*)
HEADERS=$value
esac done
對于輸入的參數(shù)逐一進行解析,根據(jù)不同的參數(shù)設(shè)定不同的參數(shù)值。 繼續(xù)閱讀 →
總結(jié)
以上是生活随笔為你收集整理的linux软件证券,linux的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【0.96寸 OLED屏实现1500Fp
- 下一篇: Linux 学习_在Linux下面安装t