GNU libtool 和 FreeBSD 10
FreeBSD开始用10以上的版本号有一段时间了。这个变动立刻导致了大量ports无法编译,多数情况下是因为开发者采用了较早版本的libtool导致的,具体来说,是类似下面的代码:
case $host_os in
freebsd[123]*) objformat=aout ;;
*) objformat=elf ;;
esac解法是在星号前面加个小数点。
前段时间的半夜make总是在OpenOffice上通不过,结果发现是同样的原因。囧死了……当初匹配的时候多打个 . 会死吗?
(这个问题已经在 libtool 2.4.2 以上版本中修正)。教训是,即使是代码生成器,重复的代码依然会导致维护成本的增加。