Tuesday, December 18, 2007

Configure 的發展

2.3 Configure Development / Configure 的發展

The Cygnus `configure' script and the original GCC `configure' script both had to be updated for each new Unix variant they supported. This meant that packages which used them were continually out of date as new Unix variants appeared. It was not hard for the developer to add support for a new system variant; however, it was not something which package users could easily do themselves.

Cygnus 的 `configure' 指令稿與 GCC 原始的 `configure' 指令稿都必須針對所支援的 Unix 衍生作業系統做出修改,這代表當新的 Unix 衍生作業系統出現時,使用了這兩樣工具的軟體套件必須修改才能用在新的作業系統上。對於軟體的發展者而言,修改軟體套件以支援新的作業系統可能並非難事;但是對於軟體套件的使用者而言,這就不是件容易自己搞定的事情。

The same was true of Imake as it was commonly used. While it was possible for a user to build and configure Imake for a particular system, it was not commonly done. In practice, packages such as the X window system which use Imake are shipped with configuration information detailed for specific Unix variants.

被漸漸廣泛使用的 Imake 也面臨一樣的問題,雖然使用者自己針對特定系統建置並設定 Imake 不是難到不可能的事,但其實很少使用者這麼做。在實務上,像 X window 這類使用 Imake 的軟體套件,會帶有針對各個不同的 Unix 衍生作業系統所撰寫的配置檔。

Because Metaconfig and Autoconf used feature tests, the scripts they generated were often able to work correctly on new Unix variants without modification. This made them more flexible and easier to work with over time, and led to the wide adoption of Autoconf.

因為 Metaconfig 與 Autoconf 是利用一序列的測試來決定系統提供的功能,因此所產生的組態指令稿通常不用修改就能在新的 Unix 衍生作業系統上正確執行。這樣的特性讓這兩項工具被視為具彈性且不用頻繁維護的方案,並使 Autoconf 被大量採用。

In 1994, David MacKenzie extended Autoconf to incorporate the features of the Cygnus `configure' script and the original GCC `configure' script. This included support for using system specified header file and makefile fragments, and support for cross-compilation.

在 1994 年 David MacKenzie 將 Autoconf 加以擴充,納入了 Cygnus 的 `configure' 指令稿與原始的 GCC `configure' 指令稿的功能。這次擴充使 Autoconf 支援針對不同系統使用不同的標頭檔或 makefile 檔案片段,另外也支援了跨平臺編譯。

GCC has since been converted to use Autoconf, eliminating the GCC `configure' script. Most programs which use the Cygnus `configure' script have also been converted, and no new programs are being written to use the Cygnus `configure' script.

從此之後,GCC 便轉而使用 Autoconf 並揚棄了原本的 GCC `configure' 指令稿。大多數使用 Cygnus `configure' 指令稿的程式也改用 Autoconf,新的程式也不再使用 Cygnus `configure' 指令稿。

The metaconfig program is still used today to configure Perl and a few other programs. imake is still used to configure the X window system. However, these tools are not generally used for new packages.

Metaconfig 在今日仍被用在 Perl 與幾個其他程式的建置中進行組態工作,Imake 也仍被用來組態 X window 系統。但是,在新的軟體套件中就很少會去使用這些工具了。

twitter

鈍鈍的,大概是 AJAX 用太兇了。

實在是沒想到有什麼用,以後 imbot 有什麼動作的話,就丟上去好了,性質似乎蠻合的。

Monday, December 10, 2007

在 OS X 上裝 CPAN module

沒有想像中可怕,不過 HFS+ 的不分辨大小寫功能的確是會造成問題。

找到這篇文章提到,重點在於設定 cpan 的時候,要讓他把 "INSTALLBIN=/usr/local/bin INSTALLSCRIPT=/usr/local/bin" 設為 perl Makefile.PL 的參數。

從 which 來看,用的應該還是原本 OS X 的 perl 程式,不過 fink 會把 library 的目錄讓他先去搜尋 fink 的 lib 目錄,這是比較稍微有點讓人擔心的地方,其他都蠻正常的。