ebml libdir not coherent with the rest
Once again sorry if it's the wrong place; I can reopen somewhere else if required; but at least this one is our own contrib's bug not ebml's ;)
Description
another compile issue, vlc's configure fails to find libebml because the .pc is in the wrong place:
$ ls vlc/contrib/aarch64-linux-android/lib64/pkgconfig vlc/contrib/aarch64-linux-android/lib/pkgconfig
vlc/contrib/aarch64-linux-android/lib64/pkgconfig:
libebml.pc libmatroska.pc
vlc/contrib/aarch64-linux-android/lib/pkgconfig:
aom.pc freetype2.pc libarchive.pc libdsm.pc libout123.pc libswscale.pc ogg.pc speex.pc twolame.pc zvbi-0.2.pc
dav1d.pc fribidi.pc libass.pc libdvbpsi.pc libplacebo.pc libtasn1.pc opus.pc speexdsp.pc vorbis.pc zvbi-0.2.pc.orig
dvdnav.pc glesv2.pc libavcodec.pc libdvdcss.pc libpng.pc@ libupnp.pc protobuf.pc taglib.pc vorbisenc.pc
dvdread.pc gnutls.pc libavformat.pc libmodplug.pc libpng16.pc libxml-2.0.pc protobuf-lite.pc taglib_c.pc vorbisfile.pc
egl.pc harfbuzz.pc libavutil.pc libmpg123.pc libpostproc.pc live555.pc shout.pc theora.pc vpx.pc
flac.pc harfbuzz-subset.pc libbluray.pc libnfs.pc libsmb2.pc microdns.pc soxr.pc theoradec.pc x264.pc
fluidlite.pc hogweed.pc libcddb.pc libopenjp2.pc libssh2.pc nettle.pc spatialaudio.pc theoraenc.pc zlib.pc
automagic configure fails with this:
checking for MATROSKA... no
configure: error: Library libebml >= 1.3.6 libmatroska needed for matroska was not found
As a workaround moving the .pc files from lib64/pkgconfig to lib/pkgconfig let me finish the build
Steps to reproduce
- build from scratch with ./buildsystem/compile.sh
Suggestion
Rather than moving the .pc like I did, there are very decent odds this would work:
diff --git a/contrib/src/ebml/rules.mak b/contrib/src/ebml/rules.mak
index 0d7fd770ae..1ce49948ec 100644
--- a/contrib/src/ebml/rules.mak
+++ b/contrib/src/ebml/rules.mak
@@ -20,6 +20,6 @@ ebml: libebml-$(EBML_VERSION).tar.xz .sum-ebml
EBML_CXXFLAGS := $(CXXFLAGS) $(PIC) -fexceptions -fvisibility=hidden
.ebml: ebml toolchain.cmake
- cd $< && $(HOSTVARS_PIC) CXXFLAGS="$(EBML_CXXFLAGS)" $(CMAKE) -DBUILD_SHARED_LIBS=OFF
+ cd $< && $(HOSTVARS_PIC) CXXFLAGS="$(EBML_CXXFLAGS)" $(CMAKE) -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_LIBDIR=lib
cd $< && $(MAKE) install
touch $@
diff --git a/contrib/src/matroska/rules.mak b/contrib/src/matroska/rules.mak
index 7a9ddc61eb..bc0819fd76 100644
--- a/contrib/src/matroska/rules.mak
+++ b/contrib/src/matroska/rules.mak
@@ -27,6 +27,6 @@ MATROSKA_CXXFLAGS += -O2
endif
.matroska: libmatroska toolchain.cmake
- cd $< && $(HOSTVARS_PIC) CXXFLAGS="$(MATROSKA_CXXFLAGS)" $(CMAKE) -DBUILD_SHARED_LIBS=OFF
+ cd $< && $(HOSTVARS_PIC) CXXFLAGS="$(MATROSKA_CXXFLAGS)" $(CMAKE) -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_LIBDIR=lib
cd $< && $(MAKE) install
touch $@
but I am not sure what impact it could have for other targets; I assume contrib build on x86_64 actually wants the lib64 or others would have complained about this before... Making things work for everyone is tough :)
G'luck!