| I have a new build system based on a single Makefile.am that now succeeds in
building the Csound API library, the Csound console executable linked with
the the API library, all the plugin opcodes, and all the utilities on Cygwin
(using the Cygwin dll). The system links with the FLTK GUI and windows,
PortAudio, Windows MIDI, and libsndfile.
I have not tested any utilities. All plugin opcodes seem to load, and I can
render a short part of the beginning of Trapped in Convert before crashing.
Changes are summarized below. There are so many changes that
the standalone Makefile.in file doesn't work any more.
Before committing any files, I would like to know what John Fitch and
others would prefer. The options are:
1. I can simply commit my changes, and Csound developers will need to adapt
to the new Makefile.am system, and fix any problems that remain or that it
created.
If desired, the standalone Makefile.in could be resurrected by using the new
ustub library the
same way that the new Makefile.am does.
2. I can branch the Csound 5 package, and development of Csound 5 with the
Makefile.am system can continue in the new branch.
I prefer the first option because the whole motivation for the new build
system is to simplify building, maintaining, and extending Csound. With the
new system,
adding new targets or files to Csound requires only adding a few lines to
the one Makefile.am.
Before committing the files, I also plan to ensure that the build system
makes
everything on Red Hat Linux, that I can render some pieces all the way
through, and that at least some of the utilities work. I also need to get
the Csound API library built as a shared library; currently opcodes build as
shared libraries, but not Csound itself.
Summary of changes:
I introduced one Makefile.am to build all targets.
I renamed some files in the anal and util directories to avoid duplicate
filenames.
Most opcodes are now working plugins.
I moved a few opcodes from Opcodes back to OOps due to complex
interdependencies.
The Csound console executable links with the Csound API.
I added code to csoundLoadExternals to automatically load all plugin opcodes
in $OPCODEDIR (on systems with dirent.h).
I added a Top/ustub.c file to work with ustub.h and to replace duplicate
code collected from utility sources.
I added a libustub.a library containing ustub.c and a good chunk of csound
to link all utilities.
============================================
Michael Gogins
gogins at pipeline period com
Irreducible Productions
CsoundVST, an extended version of Csound for programming music and sound
Available at http://sourceforge.net/projects/csound/
============================================ |