Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build script for Linux (waf) #6

Merged
merged 1 commit into from
Apr 4, 2012
Merged

Build script for Linux (waf) #6

merged 1 commit into from
Apr 4, 2012

Conversation

kris7t
Copy link
Contributor

@kris7t kris7t commented Apr 4, 2012

I wrote a waf (Python) build script for building DSPFilters.

Building the library should be possible on any system, but currently, dependecy checks for JUCE are only implemented for POSIX libraries, X11 and ALSA. Thus it should also build fine on any POSIX system which uses X11 for graphical user interface; I think that's most of them with the notable exception of OS X.

By passing the --build-demo switch to ./waf configure, DSPFiltersDemo will be built. Otherwise, only DSPFilters will be built.

Tested on ArchLinux (with Python 3).

Building on Linux will now be simple.

Issue
    $ CXXFLAGS='<crazy optimization flags you want>' ./waf configure
    $ ./waf
    $ sudo ./waf install
    $ sudo ldconfig
to build and install DSPFilters.

Alternatively, use
    $ ./waf configure --build-demo
to also build DSPFiltersDemo.

Note that building DSPFilters should be possible on any system,
but DSPFiltersDemo only gets configured to use POSIX libraries,
X11 and ALSA. Consequenty, building on BSD/UNIX/Linux should work,
but on other platforms, there may be some problems.

Tested on ArchLinux (with Python 3).
@vinniefalco
Copy link
Owner

Great!!! I actually was hoping for some help with putting together an X11 build. OS X already has an XCode project, which is fine. Having dependencies on X11 and ALSA (or whatever other audio API is out there) is fine.

I'm wondering though, why does it require so much Python code to build DSPFilters in that environment? It should be possible to just gcc all the .cpp files together (with the appropriate include directories added to the command line switches), specify a couple of extra libraries to link in, and get an executable.

I don't develop on GNU/Linux so I'm in the dark on this. I do, however, have a VirtualBox with Ubuntu on it that I can use.

It would be nice to have a simple Makefile

vinniefalco added a commit that referenced this pull request Apr 4, 2012
Build script for Linux (waf)
@vinniefalco vinniefalco merged commit ac4506b into vinniefalco:master Apr 4, 2012
@kris7t
Copy link
Contributor Author

kris7t commented Apr 4, 2012

Having a simple Makefile is indedd possible, however, Python is rather ubiquitous in the Linux world, so depending on it isn't really more contstraining than depending on, for example, make.

Make is a rather "bare" tool, in a sense that a it is usually used together with autoconf/automake to simplify things like writing a configuration header, finding out what exact CXXFLAGS and LDFLAGS are required (libraries may live in different places in different distributions, different compilers may have different ways of passing options, etc.) and installing the resulting binaries. But I find autotools confusing, and I quite like waf, so I chose that as a build automation framework.

The list of dependecies I put in the script comes from a Makefile I found in the JUCE repository. There may be some unneeded ones, but all of them is a standard piece in most desktop Linux.

@vinniefalco
Copy link
Owner

UGH I hate autotools / autoconf / automake / autoanything. Well, as
long as it works I guess :-(

On Wed, Apr 4, 2012 at 9:23 AM, Kristóf Marussy
[email protected]
wrote:

Having a simple Makefile is indedd possible, however, Python is rather ubiquitous in the Linux world, so depending on it isn't really more contstraining than depending on, for example, make.

Make is a rather "bare" tool, in a sense that a it is usually used together with autoconf/automake to simplify things like writing a configuration header, finding out what exact CXXFLAGS and LDFLAGS are required (libraries may live in different places in different distributions, different compilers may have different ways of passing options, etc.) and installing the resulting binaries. But I find autotools confusing, but I quite like waf, so I chose that as a build automation framework.

The list of dependecies I put in the script comes from a Makefile I found in the JUCE repository. There may be some unneeded ones, but all of them is a standard piece in most desktop Linux.


Reply to this email directly or view it on GitHub:
#6 (comment)

@vinniefalco
Copy link
Owner

Can you please address issue #7
(#7)? I'm not set up
to test any changes. Let me know

Thanks,

Vinnie

vinniefalco added a commit that referenced this pull request Jul 11, 2012
Build script for Linux (waf)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants