Csound Csound-dev Csound-tekno Search About

Re: [Cs-dev] Multi port midi proposal

Date2005-11-19 20:46
FromMichael Gogins
SubjectRe: [Cs-dev] Multi port midi proposal
You have 32 and 64 bit binaries in the same bin directory? 

If so, then why not have 32 and 64 bit opcodees (fluid, fluid64) in the same opcodes directory?

At any rate, I think it is much less confusing if the directory/naming conventions are similar for binaries and plugins.

Regards,
Mike

-----Original Message-----
From: Istvan Varga 
Sent: Nov 19, 2005 1:03 PM
To: csound-devel@lists.sourceforge.net
Subject: Re: [Cs-dev] Multi port midi proposal

Steven Yi wrote:

> I like how Istvan's mkpackage.py file organized everything into directories:

I removed mkpackage.py and related files as they seem to duplicate
the functionality of John's installer for Linux (not sure what directory
layout that uses, though).

> bin - binaries
> lib - libraries
> lib/csound/plugins - 32 bit plugins (float)
> lib/csound/plugins64 - 64 bit plugins (double)
> doc - documentation

Here is a more detailed description of the directory structure I
used:

/usr/lib/pd/extra/
   PD object (csoundapi~.pd_linux, links against libcsound.so.5.1)
/usr/lib/python/
   Python wrapper (csnd.py, csnd.pyc, csnd.pyo)
/usr/lib/python/lib-dynload/
   Python wrapper (_csnd.so, symlink to /usr/local/lib/lib_csnd.so)
/usr/local/bin/
   frontends (most of these are simple shell scripts that call
   the binaries in /usr/local/lib/csound/bin/ after setting the
   required environment variables)
/usr/local/include/csound/
   header files
/usr/local/lib/csound/bin/
   the actual binaries (csound and csound64)
/usr/local/lib/csound/lib/
   "private" shared libraries for use by Csound (e.g. FLTK)
/usr/local/lib/csound/plugins/
   single precision plugin libraries
/usr/local/lib/csound/plugins64/
   double precision plugin libraries
/usr/local/lib/csound/xmg/
   string database files
/usr/local/lib/
   Csound API libraries:
     lib_csnd.so (interfaces, links against libcsound64.so.5.1)
     libcsound64.a
     libcsound64.so (symlink to libcsound64.so.5.1)
     libcsound64.so.5.1
     libcsound.a
     libcsound.so (symlink to libcsound.so.5.1)
     libcsound.so.5.1
   Note that the '1' in the shared library version is the API
   major version, i.e. any incompatible API change will result
   in a new library name like libcsound.so.5.2 and so on.
/usr/local/share/doc/csound/
   documentation (the HTML manual could be a subdirectory of this
   as 'manual')

I solved the issue of setting environment variables by creating
simple shell scripts that set up the environment and then run
Csound. For example, /usr/local/bin/cvanal is actually:

   #!/bin/sh

   export OPCODEDIR="/usr/local/lib/csound/plugins"
   export CSSTRNGS="/usr/local/lib/csound/xmg"

   if [ "${LD_LIBRARY_PATH}" == "" ] ; then
       export LD_LIBRARY_PATH="/usr/local/lib/csound/lib"
   else
       export LD_LIBRARY_PATH="/usr/local/lib/csound/lib:${LD_LIBRARY_PATH}"
   fi

   exec "/usr/local/lib/csound/bin/csound" -U cvanal "$@"

However, this still requires the user to set the environment
variables if the extension modules for PD and Python are used,
rather than the standard command line frontends.

Of course, the directory structure may vary depending on platform,
and quite likely also distribution. For example, the libraries
required by Csound (FLTK, PortAudio, etc.) are expected to be
installed to the same directory as the binaries on Windows, and
the Python and PD paths are likely to vary depending on Linux
distribution.


-------------------------------------------------------
This SF.Net email is sponsored by the JBoss Inc.  Get Certified Today
Register for a JBoss Training Course.  Free Certification Exam
for All Training Attendees Through End of 2005. For more info visit:
http://ads.osdn.com/?ad_id=7628&alloc_id=16845&op=click
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/csound-devel





-------------------------------------------------------
This SF.Net email is sponsored by the JBoss Inc.  Get Certified Today
Register for a JBoss Training Course.  Free Certification Exam
for All Training Attendees Through End of 2005. For more info visit:
http://ads.osdn.com/?ad_id=7628&alloc_id=16845&op=click
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2005-11-19 20:56
FromIstvan Varga
SubjectRe: [Cs-dev] Multi port midi proposal
Michael Gogins wrote:

> You have 32 and 64 bit binaries in the same bin directory? 

If you mean 32 or 64 bit floats, then the double precision binaries
have a name suffix of "64". Having all plugins in the same directory
is not a really good idea, as it would result in a lot of warnings
on start-up, increased loading time, and possibly errors.

However, if you mean 32 or 64 bit CPU instructions (e.g. on x86_64),
I have not considered that issue yet; I assumed that a package is using
either the 32 bit or the 64 bit instruction set. However, if including
both is a requirement, then the complexity increases (there would be
four plugin directories, for example).


-------------------------------------------------------
This SF.Net email is sponsored by the JBoss Inc.  Get Certified Today
Register for a JBoss Training Course.  Free Certification Exam
for All Training Attendees Through End of 2005. For more info visit:
http://ads.osdn.com/?ad_id=7628&alloc_id=16845&op=click
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net