mingw-cross-env-list
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Mingw-cross-env-list] Introduction and general question


From: Ulrich Klauer
Subject: [Mingw-cross-env-list] Introduction and general question
Date: Sun, 03 Mar 2013 20:47:53 +0100
User-agent: Internet Messaging Program (IMP) H4 (5.0.19)

Hi,
my first post here, so I guess I should introduce myself ... I'm mainly working on SoX, a command-line audio processing tool (http://sox.sourceforge.net/). It also comprises a library, libsox, that incidentally is already included in MXE as the sox package.

However, I found here not because of that package, but because I was looking for better solutions to build the executable that we provide for Windows users. The current process is not fully automated, especially not regarding external libraries, and we've had a problem at the latest release where two of them accidentally weren't included.

I'm experimenting with MXE, and it seems really well suited for the task - almost no problems to get a working build, most required libraries are already there, and adding the remaining ones seems absolutely doable (I've just added wavpack; at least twolame is probably going to follow). So, great work!


Now for the general question: Should MXE packages be as feature-complete as possible (= as prerequisites allow) or should they only offer a sensible subset, if there are many optional features?

Taking the sox package as an example, it currently depends on flac, lame, libgomp, libmad, libsndfile, vorbis, and wavpack. It could also make use of packages file (libmagic), libpng, libtool (libtldl), and opencore-amr for more optional features.

Apart from the obvious issues regarding build time etc., including more features can also lead to licensing restrictions. Although libsox is, by itself, LGPL 2.1+, linking in libmad makes it GPL 2+. Linking in the AMR codecs from opencore-amr makes it GPL 3+ (because the Apache licence is incompatible with GPL 2). This is why I'd tend to not include libmad, at least.

There is support in libsox for dlopen()ing optional libraries at runtime. This is what we do for the "official" SoX Windows binary: libmad, opencore-amr, and lame are left out, but if the user has a relevant DLL, they can use it. I could set up the MXE sox package in this way, too, if that is desired.

Ulrich




reply via email to

[Prev in Thread] Current Thread [Next in Thread]