initial working win32 port

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

initial working win32 port

Stefan Westerfeld

In the last days I've spent some time on trying to get the cygwin win32
port I started long ago more mature. And there is some success: the
beast port compiles, runs and even plays audio. This means:

What works:
  * the complete gui
  * audio output (somewhat: see below)
  * plugins
  * loading and playing the demosong
  * scripts (although quite slow and with errors on problems with our
    the sfi builtin gc)

What still needs to be done:
  * realtime ability (because thread priorization must be done different
    under windows)
  * stability (there must be some bugs left, because beast is crashing a
    lot - which it doesn't under linux)
  * better support for native audio (currently it uses cygwins
        /dev/dsp emulation)
  * midi input/output
  * browser integration
  * magic-1-click-installer

Attached are
  * diffs between the 0.6.6 release and my port
  * a new file (bse/bsevar.h): the contents could maybe be merged into
   some of the other bse headers, but I didn't know which

Some remarks:
        should use pkg-config for finding -lvorbisenc (ogg/vorbis is in
        /usr/local on my installation)
        the other two changes are probably not important

  beast-gtk/, shell/
    the magic version-specific build rule doesn't work, so for now I put
        the versions into the rules

  sfi/ bse/
    to make the symbols from the dlls available, I use libtools
        export-by-regex feature

    besides, I made some changes to get BSE_VAR and SFI_VAR work

    -no-undefined is required for building DLLs, and --export-regex is
        necessary for exporting the symbol

  bse/bsevar.h, BSE_VAR, SFI_VAR and others:
    windows DLLs need to declare which variables are part of the API
        (I took the definition from glib, more or less)

    in fact, this is probably the largest change to the code base

How to build beast for windows yourself (currently only useful if you
want to hack on the port):
  * install cygwin (, including gcc, g++, xserver,
    gtk libraries and so on
  * get libraries beast needs, but unavailable from cygwin: 
  * compile these "support libraries", and install them (to /usr/local)
  * export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
  * get beast-0.6.6 from
  * apply attached patch to beast
  * put attached bsevar.h file in the bse directory
  * compile and install beast

Running it, once installed:
  * in a cygwin shell, type
    xinit beast -- -multiwindow

Any comments welcome.

   Cu... Stefan
Stefan Westerfeld, Hamburg/Germany,

beast mailing list
[hidden email]

beast-0.6.6-win32-20050928.diff (29K) Download Attachment
beast-0.6.6-win32-bse-bsevar.h (2K) Download Attachment