sox-devel@lists.sourceforge.net unofficial mirror
 help / color / mirror / code / Atom feed
From: Ulrich Klauer <ulrich@chirlu.de>
To: sox-devel@lists.sourceforge.net
Subject: Building a Windows binary
Date: Fri, 08 Mar 2013 17:40:37 +0100	[thread overview]
Message-ID: <20130308174037.Horde.iDMiP1NNcXdROhSFCvQ2uZA@webmail.df.eu> (raw)

Hi,
recently, I've done some research and experimenting on how to build  
SoX binaries for Windows, and I've come to think that the best tool is  
MXE (M Cross Environment, http://mxe.cc/). Essentially, it is a  
collection of patches and build scripts with some makefile glue, made  
exactly for our purposes; i.e., cross-building libraries to link  
statically into Windows executables, all done on a Unix system.

You say, e.g., "make libsndfile", and it will automatically fetch the  
source for libsndfile as well as libflac, libogg etc. from the  
official download sites, apply any necessary patches (like one that  
adds the missing -lwsock32 to flac.pc), and build the libraries. Set  
PATH to include the provided cross-building tools (gcc is also built  
directly from source), then in the SoX directory, call configure with  
"--host=i686-pc-mingw32", and you are ready to build.

MXE already includes a very extensive set of libraries, almost  
everything we need, like magic, flac, png, sndfile, lame, gomp, ltdl  
... with their dependencies. Actually, there were only three missing  
(id3tag, twolame, wavpack), and of those, I already added twolame and  
wavpack (accepted in MXE upstream). To add id3tag should be no problem  
either.

The main advantage is that we can get up-to-date libraries, built in a  
reproduceable way, without the need to do manual tweaking on our side  
in most cases.

I made some test builds and mentioned them in an inconspicuous place  
on sox-users, so they have had a little bit of testing on Wine and on  
"real" Windows. They seem to be working OK.


Thus, my proposal is to use MXE for building a new 14.4.1 (or  
14.4.1.1, or 14.4.1a) Windows binary that includes flac and sndfile  
support; and probably for later releases as well. I could turn  
mingwbuild into an mxebuild that automates the build process (for MXE,  
then for SoX using MXE). I guess I could also build the whole Windows  
package myself, if necessary/preferred by Chris.

Ulrich


------------------------------------------------------------------------------
Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester  
Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the  
endpoint security space. For insight on selecting the right partner to 
tackle endpoint security challenges, access the full report. 
http://p.sf.net/sfu/symantec-dev2dev

             reply	other threads:[~2013-03-08 16:41 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-08 16:40 Ulrich Klauer [this message]
2013-03-09 17:55 ` Building a Windows binary Chris Bagwell
2013-03-10  5:57   ` Ulrich Klauer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://lists.sourceforge.net/lists/listinfo/sox-devel

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130308174037.Horde.iDMiP1NNcXdROhSFCvQ2uZA@webmail.df.eu \
    --to=sox-devel@lists.sourceforge.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/sox.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).