2013-05-09 26 views
0

我已經使用了簡單的makefiles多年,但最近才被分配了學習大量複雜的Autotools生成的makefiles的來龍去脈的任務,這些makefiles用於我的僱主購買的代碼庫。在這之中,我運行到變量聲明類似如下:這是什麼樣的Makefile變量賦值?

QOBJECT_MOCSRCS = $(QOBJECT_HEADER:%.h=.gen/moc_%.cpp) \ 
        $(QOBJECT_SRCS:%.cpp=.gen/moc_%.cpp) 

QOBJECT_DEPS = $(QOBJECT_MOCSRCS:%.cpp=.deps/%.Po) 

從上下文中我最好的猜測是,這些設置文件名的名單要由構建過程提供,例如,QOBJECT_MOCSRCS應該結束(a).h文件,(b).cpp文件的列表,基於將在生成期間生成的一組中間.cpp文件的%詞幹名稱,存儲在臨時目錄./gen中。這是用來存儲mt _%。cpp文件,這些文件是Qt文件與Qt的moc工具一起構建的結果輸出的......令我瘋狂的是,我一直無法找到任何東西make我得到的文檔(主要是GNU make手冊)告訴我這種聲明的風格是什麼,所以我可以追蹤它並掌握語法。 $()的內容看起來有點像規則,而GNU make手冊中最接近的等價物似乎是規定目標特定變量值的規則,但我不知道這是否接近正確的讀數。任何人都可以指出我有適當的學習參考嗎?

回答

相關問題