下一節:,上一節:散布   [目錄][索引]


12.1 散布 tar 檔案

所有套件都應該提供 tar 檔案來散布其發行版本。程式 foo 版本 m.n 的 tar 檔案應該命名為 foo-m.n.tar。它應該解壓縮到名為 foo-m.n 的子目錄中。Tar 檔案不應該解壓縮到目前目錄中的檔案,因為如果使用者碰巧解壓縮到一個包含其他檔案的目錄中,這會很不方便。

以下是 Bison 的 Makefile 如何建立 tar 檔案。此方法適用於其他程式。

dist: bison.info
        echo bison-`sed -e '/version_string/!d' \
          -e 's/[^0-9.]*\([0-9.]*\).*/\1/' -e q version.c` > .fname
        -rm -rf `cat .fname`
        mkdir `cat .fname`
        dst=`cat .fname`; for f in $(DISTFILES); do \
           ln $(srcdir)/$$f $$dst/$$f || { echo copying $$f; \
             cp -p $(srcdir)/$$f $$dst/$$f ; } \
        done
        tar --gzip -chf `cat .fname`.tar.gz `cat .fname`
        -rm -rf `cat .fname` .fname

作為符號連結到其他檔案系統的原始碼檔案無法使用 ln 安裝到暫時目錄中,因此如果 ln 失敗,請使用 cp

使用 Automake 是處理編寫 dist 目標的好方法。