I've been playing with getting bluray_info working and installed on Cygwin. I don't know much about porting to it, but I can get the dependencies installed with some hacks.

You'll need these Cygwin development libraries and packages installed:

  • bison
  • libfreetype
  • libgcrypt
  • libxml2
  • gpgerror
  • fontconfig
  • flex
  • libiconv-devel
  • pkg-config
  • libtool

You will also need the Java Development Kit installed.

Download and install libaacs into /usr instead of /usr/local:

./configure --prefix=/usr
make install

Download libbluray and make some changes.

Copy jni/win32/jni_md.h to jni/. Update it to use GCC's typedefs for jlong:

#ifdef __GNUC__
typedef long long jlong;
typedef signed __int64 jlong;

After that, a standard install:

./configure --prefix=/usr
make install

You should be able to build bluray_info at this point. also installing it to /usr. If everything else is in /usr/local, you'd need to set PKG_CONFIG_PATH to /usr/local/lib/pkgconfig

Here's the problems with this whole setup:

  • PKG_CONFIG_PATH should be using /usr/local if everything's not installed to /usr
  • Shouldn't be copying jni_md header, and instead be using Java's installed one
  • Fixing the header include in might need to look something like this, but I haven't gotten it working: ACLOCAL_AMFLAGS = -I m4 -I /cygdrive/c/Program\ Files/Java/jdk-12.0.1/include/win32 -I /cygdrive/c/Program\ Files/Java/jdk-12.0.1/include
  • libbluray's autoconf should be checking for the header in configure for Cygwin