vlc-libde265 Makefile.am 試讀

在學習 vlc-libde265 的過程中想要嘗試對 Makefile.am 進行一下解讀盒刚,由于篇幅太長單獨整理一下屈暗。


vlc-libde265 Makefile.am 試讀

Makefile.am文件其實和Makefile文件很類似勉吻,只不過是一編譯規(guī)則更加抽象的編譯文件党窜。
先從一個部分的文件看看 Makefile.am 這類文件書寫的一般規(guī)律:

lib_LTLIBRARIES = libde265_plugin.la

CFLAGS = -DVLC_MODULE_COPYRIGHT="\"Copyright \(c) struktur AG\""
CFLAGS += -DVLC_MODULE_LICENSE=\"LGPL\"

libde265_plugin_la_CFLAGS = -DMODULE_STRING=\"de265\" $(libde265_CFLAGS) $(vlc_CFLAGS)
libde265_plugin_la_CPPFLAGS = -DMODULE_STRING=\"de265\" $(libde265_CFLAGS) $(vlc_CFLAGS)
libde265_plugin_la_LIBADD = $(libde265_LIBS) $(vlc_LIBS)
libde265_plugin_la_LDFLAGS = -avoid-version -module -export-symbol-regex ^vlc_entry $(libde265_LDFLAGS) $(vlc_LDFLAGS)
libde265_plugin_la_SOURCES = \
???src/codec/libde265dec.c \
???include/libde265_plugin_common.h

從第一行可以看出這里要生成的是一個名叫 libde265_plugin 的共享庫(lib_LTLIBRARIES 是靜態(tài)庫的定義)壳澳。
后面兩行 CFLAGS 主要是用于指明 C 語言編譯過程所用到的頭文件又谋。
之后看起來一大堆的配置仔細看其實很快就能發(fā)現(xiàn):每個變量都多了 libde265_plugin_la_ 的前綴荞胡。
沒錯妈踊!這一堆設置的就是 libde265_plugin.la 編譯時的參數(shù)啦:

  • xxx_CFLAGS: C 語言編譯時的頭文件
  • xxx_CPPFLAGS: C++ 語言編譯時的頭文件
  • xxx_LIBADD: 編譯時需要的其他庫
  • xxx_LDFLAGS: 編譯器會用到的一些優(yōu)化參數(shù)
  • xxx_SOURCES: 生成時用到的源文件

后面的幾個模塊其實也都大同小異,也就是說我們可以通過這樣的模式找到他生成的每個文件具體使用了哪些 src 文件:

Lib Name Sources
libde265_plugin.la src/codec/libde265dec.c
include/libde265_plugin_common.h
libde265demux_plugin.la src/demux/libde265demux.c
include/libde265_plugin_common.h
libde265_mkv_plugin.la src/demux/vobsub.h
src/demux/mp4/libmp4.c
src/demux/mp4/libmp4.h
src/demux/mkv/chapter_command.cpp
src/demux/mkv/chapter_command.hpp
src/demux/mkv/chapters.cpp
src/demux/mkv/chapters.hpp
src/demux/mkv/demux.cpp
src/demux/mkv/demux.hpp
src/demux/mkv/Ebml_parser.cpp
src/demux/mkv/Ebml_parser.hpp
src/demux/mkv/matroska_segment.cpp
src/demux/mkv/matroska_segment.hpp
src/demux/mkv/matroska_segment_parse.cpp
src/demux/mkv/mkv.cpp
src/demux/mkv/mkv.hpp
src/demux/mkv/stream_io_callback.cpp
src/demux/mkv/stream_io_callback.hpp
src/demux/mkv/util.cpp
src/demux/mkv/util.hpp
src/demux/mkv/virtual_segment.cpp
src/demux/mkv/virtual_segment.hpp
include/libde265_plugin_common.h
include/vlc_codecs.h
libde265_mp4_plugin.la src/demux/mp4/id3genres.h
src/demux/mp4/libmp4.c
src/demux/mp4/libmp4.h
src/demux/mp4/mp4.c
libde265_ts_plugin.la src/demux/dvb-text.h
src/demux/ts.c
src/mux/mpeg/csa.c
src/mux/mpeg/csa.h
src/mux/mpeg/dvbpsi_compat.h
include/libde265_plugin_common.h
include/vlc_codecs.h

一下這么多源文件看起來是有點多泪漂,那我們不妨暫時先只看一下生成的庫都是什么在什么條件下才進行的:

Conditions Lib Name
Default libde265_plugin.la
Default libde265demux_plugin.la
! HAVE_VLC_HEVC libde265_mkv_plugin.la
! HAVE_VLC_HEVC_MP4 libde265_mp4_plugin.la
! HAVE_VLC_HEVC_TS libde265_ts_plugin.la

明顯我這里寫的感嘆號不是想告訴你我有多驚訝...也就是說只有在某些條件不滿足的情況下才會對這些庫進行編譯廊营,從宏變量名字其實就可以大致了解它的作用了:如果現(xiàn)在沒有這些模塊,則針對性的編譯出他的功能萝勤。再結合庫的文件名赘风,它們的作用就非常明白了:

Lib Name 作用
libde265_plugin.la H.265 解碼模塊
libde265demux_plugin.la H.265 解復用模塊
libde265_mkv_plugin.la H.265 處理 mkv 格式模塊
libde265_mp4_plugin.la H.265 處理 mp4 格式模塊
libde265_ts_plugin.la H.265 處理 TS 格式模塊

真的是這樣嗎?嘿嘿纵刘,其實我也不知道邀窃。目前這些推斷僅僅是通過一個 Makefile 文件推斷出的,是否正確還得繼續(xù)看看他們的源文件到底怎么寫的假哎。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末瞬捕,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子舵抹,更是在濱河造成了極大的恐慌肪虎,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件惧蛹,死亡現(xiàn)場離奇詭異扇救,居然都是意外死亡,警方通過查閱死者的電腦和手機香嗓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進店門迅腔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人靠娱,你說我怎么就攤上這事沧烈。” “怎么了像云?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵锌雀,是天一觀的道長。 經常有香客問我迅诬,道長腋逆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任侈贷,我火速辦了婚禮惩歉,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己柬泽,他們只是感情好,可當我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布嫁蛇。 她就那樣靜靜地躺著锨并,像睡著了一般。 火紅的嫁衣襯著肌膚如雪睬棚。 梳的紋絲不亂的頭發(fā)上第煮,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天,我揣著相機與錄音抑党,去河邊找鬼包警。 笑死,一個胖子當著我的面吹牛底靠,可吹牛的內容都是我干的害晦。 我是一名探鬼主播,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼暑中,長吁一口氣:“原來是場噩夢啊……” “哼壹瘟!你這毒婦竟也來了?” 一聲冷哼從身側響起鳄逾,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤稻轨,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后雕凹,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體殴俱,經...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年枚抵,在試婚紗的時候發(fā)現(xiàn)自己被綠了线欲。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡汽摹,死狀恐怖询筏,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情竖慧,我是刑警寧澤嫌套,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站圾旨,受9級特大地震影響踱讨,放射性物質發(fā)生泄漏。R本人自食惡果不足惜砍的,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一痹筛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦帚稠、人聲如沸谣旁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽榄审。三九已至,卻和暖如春杆麸,著一層夾襖步出監(jiān)牢的瞬間搁进,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工昔头, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留饼问,地道東北人。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓揭斧,卻偏偏與公主長得像莱革,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子讹开,可洞房花燭夜當晚...
    茶點故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內容