簡體   English   中英

Makefile.in和變量替換

[英]Makefile.in and variable substitution

Makefile.in我看到變量定義,其中外部變量名稱包含在兩個@符號之間

# @configure_input@

package = @PACKAGE_NAME@

那些外部變量來自哪里? 另外,我在GNU手冊中找不到兩個@符號之間的變量是什么意思? 它是Makefile.in特有的東西嗎?

謝謝。

這是一個autoconf的事情。

./configure完成運行時,它會生成並執行一個名為config.status的文件,該文件是一個shell腳本,它具有變量替換的最終值(使用AC_SUBST聲明的任何AC_SUBST )。

AC_CONFIG_FILES聲明的任何內容都由config.status處理,通常是將foo.in轉換為foo

當automake將Makefile.am處理為Makefile.in ,任何AC_SUBST變量都會自動AC_SUBST可用(使用類似FOO = @FOO@的聲明),除非通過調用AM_SUBST_NOTMAKE來抑制它。

(我不是專家,但是)是的,它們特定於Makefile.in,並且configure在組裝Makefile時替換它們,請參閱Autoconf Manual,第4.8節 例如, @PACKAGE_NAME@AC_INIT定義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM