vlc指定包长_VLC 重新编译第三方库的预编译包contrib

VLC的引用了很多开源的第三方库,均放到VLC目录下的contrib中(本来开始编译是2.1.x以上版本,以前或以后可能会变化),在Windows版本编译中,contrib文件夹中仅仅下载VLC官网上已经编译好的预编译包后解压到该目录下,要修改编译脚本(compile.sh和 contrib/src下的main.mak)为fetch所有第三方包中,下载后开始自动编译(由main.mak和contrib/src/***/rules.mak控制)。

一旦编译通过,一般来说,在下一次执行VLC编译脚本时,就不会再重新编译第三方包了,因为对于make来说,这些第三方包处于已安装状态,所以一旦修改了这些第三方库文件,就需要重新编译,重新编译前就需要将已安装的包卸载掉,编译脚本通过判断隐藏文件(.包名)和prefix路径下的文件,一旦存在就不需要重新编译(此处为各个包中make install决定),对于开发者来说,只需要在compile.sh(android版为compile-libvlc.sh)中的make contrib 前加上make clean即可,但此处需要注意,不能直接加上make clean,因为clean对于main.mak来说,会连同第三方库源码包都删除掉,而我们只需要删除已安装的文件即可,因此在main.mak中新增一个参数动作cleaninstall,如下:

installclean:

-$(RM) $(foreach p,$(PKGS_ALL),.$(p) .sum-$(p) .dep-$(p))

-$(RM) toolchain.cmake

-$(RM) -R "$(PREFIX)"

以上代码可在main.mak中先搜索install:后,在此段后面加上即可,修改完成后,在回到compile.sh(android版为compile-libvlc.sh)中的contrib编译段的make  前加上make cleaninstall,

接下来,再修改contrib/src下的各个包的rules.mak,让make时,不再重新解压源码(即注释掉download和UNPACK相关的命令)直接make即可。

其实还可以修改更准确的,比如实现clean指定的某一个第三方包,如以下内容为删除DVD相关的几个库,实现只重新编译这几个库:

cleandvd:

-$(RM) "./.dvdcss"

-$(RM) "./.sum-dvdcss"

-$(RM) "./.dep-dvdcss"

-$(RM) "./.dvdnav"

-$(RM) "./.sum-dvdnav"

-$(RM) "./.dep-dvdnav"

-$(RM) "./.dvdread"

-$(RM) "./.sum-dvdread"

-$(RM) "./.dep-dvdread"

#-$(RM) toolchain.cmake

-$(RM) -R "$(PREFIX)/include/dvdcss/*.*"

-$(RM) -R "$(PREFIX)/include/dvdnav/*.*"

-$(RM) -R "$(PREFIX)/include/dvdread/*.*"

-$(RM) -R "$(PREFIX)/share/doc/libdvdcss/*.*"

-$(RM) -R "$(PREFIX)/share/doc/libdvdnav/*.*"

-$(RM) -R "$(PREFIX)/share/doc/libdvdread/*.*"

-$(RM) "$(PREFIX)/lib/libdvdcss.*"

-$(RM) "$(PREFIX)/lib/libdvdnav.*"

-$(RM) "$(PREFIX)/lib/libdvdread.*"

-$(RM) "$(PREFIX)/lib/pkgconfig/dvdcss.*"

-$(RM) "$(PREFIX)/lib/pkgconfig/dvdnav.*"

-$(RM) "$(PREFIX)/lib/pkgconfig/dvdread.*"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值