2009-05-30 21 views
0

我的主要問題是,autotools創建了鏈接到INSTALL,COPYING,missing,install-sh和depcomp。當我試圖查看它們時,我看到它們是作爲鏈接上傳的,所以我用真實文件替換它們以使它們可見。我錯過了一些基本的東西?當我解壓從「讓DIST」我GZ文件,這是什麼樣子:自動工具生成的鏈接應該在上傳之前被替換?

分發樹(減號源目錄)

 
-rw-r--r-- 1 ojblass users 18591 2009-05-30 03:23 Makefile.in 
-rwxr-xr-x 1 ojblass users 136168 2009-05-30 03:20 configure 
drwxr-xr-x 3 ojblass users 4096 2009-05-30 03:20 autom4te.cache 
-rw-r--r-- 1 ojblass users 32230 2009-05-30 03:20 aclocal.m4 
-rw-r--r-- 1 ojblass users 251 2009-05-30 03:20 configure.ac 
-rw-r--r-- 1 ojblass users 626 2009-05-30 03:11 AUTHORS 
-rwxr-xr-x 1 ojblass users 120 2009-05-30 03:11 autogen.sh 
-rw-r--r-- 1 ojblass users 737 2009-05-30 03:11 ChangeLog 
-rw-r--r-- 1 ojblass users 35147 2009-05-30 03:11 COPYING 
-rwxr-xr-x 1 ojblass users 17867 2009-05-30 03:11 depcomp 
-rwxr-xr-x 1 ojblass users 199 2009-05-30 03:11 example.pl 
-rwxr-xr-x 1 ojblass users 152 2009-05-30 03:11 example.sh 
-rw-r--r-- 1 ojblass users 9512 2009-05-30 03:11 INSTALL 
-rwxr-xr-x 1 ojblass users 13620 2009-05-30 03:11 install-sh 
-rw-r--r-- 1 ojblass users 215 2009-05-30 03:11 Makefile.am 
-rwxr-xr-x 1 ojblass users 11135 2009-05-30 03:11 missing 
-rw-r--r-- 1 ojblass users  75 2009-05-30 03:11 NEWS 
-rwxr-xr-x 1 ojblass users 507 2009-05-30 03:11 profile.sh 
-rw-r--r-- 1 ojblass users 2605 2009-05-30 03:11 README 
-rw-r--r-- 1 ojblass users 201 2009-05-30 03:11 README_developers 
-rwxr-xr-x 1 ojblass users 382 2009-05-30 03:11 run.sh 
-rw-r--r-- 1 ojblass users 481 2009-05-30 03:11 TODO 
-rwxr-xr-x 1 ojblass users 117 2009-05-30 03:11 usefull.sh 

我在去除README_developers,使兩節計劃自述文件。我也在考慮刪除run.sh和profile.sh,並將它們作爲make測試目標的一部分(需要一些閱讀)。我不認爲TODO項目屬於源代碼發佈版本,但可能在項目的源代碼樹中使用它。任何額外的指針之上和超出鏈接問題表示讚賞。

回答

1

簡短的回答:離開那些符號鏈接(比安裝其他)將 僞造符合GNU coding standards

默認情況下的automake進行檢查是否符合GNU標準 (需要以下文件存在:安裝,新聞,README, 複製,作者和更新日誌)。人們可以把該檢查(和 安全地刪除一些這些文件)通過傳遞--foreign選項 的automake(做編輯autogen.sh並重新運行它)。

鏈接是在automake被調用時創建的--add-missing 選項,除非--copy選項被創建,爲 創建符號鏈接,然後複製它們。這是爲了讓那些 文件(實際上是隻安裝)最新每當你安裝新的automake 。重申喬納森的回答這些符號鏈接不是問題:所有 分佈式文件在製作tarball之前被複制到單獨的目錄。 如果要編輯它們,請將它們更改爲常規文件。

其他文件(README_developers,run.sh,profile.sh,TODO 等)可能是由IDE生成您正在使用,並添加到 EXTRA_DIST變量在頂部Makefile.am。你可以從 分佈編輯EXTRA_DIST刪除它們,之後你還可以從源中刪除 他們。

其餘部分自動autoconf和automake的生成:

  • aclocal.m4
  • autom4te.cache
  • 配置
  • depcomp
  • 安裝-SH
  • Makefile.in
  • 失蹤

如果您想進一步整理您的頂級源代碼目錄,您可以將 AC_CONFIG_AUX_DIR([scripts])添加到configure.ac。這樣一些腳本 將找到scripts目錄中的地方。

更新:

的GNU編碼標準只是描述這些 文檔文件的要求是分佈和什麼 信息應包括有內。 --add-missing選項是 提醒程序員應該寫什麼文件。很顯然,如果有空的 NEWS或AUTHORS文件將不會使該項目更符合標準。

只有ChangeLog文件在其格式上有嚴格的requirements。 在某些項目中,ChangeLog會自動從 格式的提交消息中自動生成。在Darcs上它只是darcs changes >ChangeLog。 如果您使用Subversion,您可能會看:svn2log,svn2cl

如前所述INSTALL文件可能是合理的,以保持作爲符號鏈接,但只有 如果需要有關安裝 (即沒有額外的配置腳本參數等)沒有項目的具體信息。

1

待辦文件可以在分配去;對於消費者來說,您認爲產品中存在缺陷,這是一種指向可能有助於改善產品的領域潛在貢獻者的指針。 (另外,如果你的總線下下跌,這將幫助其他人接手使用當前版本的材料。)

它可能使用一個子目錄來保存批量配置材料的價值。

關於你的主要問題 - 是文件「鏈接」或「符號鏈接」?符號鏈接對於打包不太有用,除非您告訴(GNU)tar隨時關注它們('-h'或'--dereference')。如果唯一的符號鏈接適用於這些文件,那麼可行;如果您在分配本身中使用符號鏈接,則可能會產生更多反效果。

+0

用鏈接數量來看ls輸出== 1很容易判斷那些符號鏈接不是硬鏈接。 – lispmachine 2009-06-04 11:18:18

+0

erm ..現在我知道這些是來自解壓配置tarball的常規文件 – lispmachine 2009-06-04 11:21:32

相關問題