2014-11-14 61 views
0

在構建make文件,我希望它是容忍的事實,我有多個主要方法,並可能只考慮具有最高字母值的文件作爲入口點。Makefile:參數化,以便它編譯最高編號的文件

有沒有辦法做到這一點或類似的東西?

+0

爲什麼你想要多個主入口點? – bwinata

+1

類似製作目標的方法取決於$(firstword $(sort $(通配符somepattern)))* * *可能接近你所需要的,很難說,因爲你的問題沒有太多的信息。 – user657267

+0

如果你用更具體的例子來更新你的問題,我可以改進我的答案,使其更具體。 –

回答

1

有幾種方法可以做到這一點,具體取決於您希望或需要做出該決定的級別。這裏有三個,我知道:

  • 找出實際上通過調用$(shell find | grep)$(shell grep -R ...)建設的東西來識別文件只(包含)或過濾器時的文件不被建(建之前構建什麼排除)。
  • 使用objdump來分析目標文件,並過濾掉那些除了最後一個以外的函數main()。您可以使用$(shell sort ...)作爲幫手或$(sort ...)
  • 如果你知道哪些對象可以包含make,並且使用的是一個編譯器/連接組合,讓聲明可以被隱藏了,你可以對象列表上使用$(sort)$(lastword)得到一個與「最高名稱」,並將第一個(或最後一個,取決於鏈接器解析的方式)放在鏈接器文件列表中。