Skip to content

Makefile adjustments to pass extra options and build the double precision version.

Albert Gräf requested to merge aggraef/purr-data:double-precision-build into master

As promised. This adds three new targets to the toplevel Makefile (all-double, incremental-double, light-double) which build the double precision version, and all the necessary changes in the build system to make that work.

There's also a new blacklist variable which can be used to specify which externals should not be built. This works with any build. E.g., you might run make blacklist=gem to build everything except Gem.

For double precision builds, the following externals are currently blacklisted by default (you can override this using the new double_blacklist variable):

  • autotune smlib: these don't compile with PD_FLOATSIZE=64 yet (float used where t_float is needed now)

  • cyclone lyonpotpourri: these do compile with PD_FLOATSIZE=64, but spit out warnings indicating that float* is used where t_float* is needed now. Ironically, these are actually the more dangerous ones, since they expect to read and write float arrays where the data is in double format now. I therefore blacklisted them.

I didn't make any attempt to port these to double precision. I also didn't make any attempt to adjust the external configuration in order to eliminate externals in the blacklist. Presumably it shouldn't be terribly hard to add this, but the way it is now, it serves to remind users (and us) that there's still some work to be done to make these externals work.

I did run the double precision version briefly, just to test that it doesn't crash. Sound input and output seems to work ok, and I also tried the Gem teapot example just to make sure that Gem doesn't crash either (it compiles cleanly and also seems to work fine with PD_FLOATSIZE=64, as far as I can tell).

Once you've merged this, I can also send you a PR to make the About dialog show the precision (you asked for this on the ml).

Merge request reports