Csound Csound-dev Csound-tekno Search About

Re: [Cs-dev] Interfaces building

Date2007-08-16 01:34
From"Michael Gogins"
SubjectRe: [Cs-dev] Interfaces building
I checked, and there are a few binary links between csnd.so and Python. But 
I believe these can easily be removed.

In any case, I think the best way to make packages for Debian is to use the 
install target in SConstruct, and not an external script. The install 
target, if done properly, will pick up only what is appropriate from the 
build options. In other words, if you build the Python interface, the 
install target will get a copy of csnd.so that contains the Python 
interface. If you do not build the Python interface, csnd.so will not 
contain any Python linkages.

This is because SConstruct has conditional code for building different 
configurations of the source code, depending on the platform, build tools, 
and command-line build options.

The install target has not been maintained. Basically, environment.Install() 
should get every target that is built, plus the header files and any local 
third-party binaries (such as Lua) that we want to distribute.

Install(dir, source)
env.Install(dir, source)
Installs one or more source files or directories in a destination directory 
dir. The names of the specified source files or directories remain the same 
within the destination directory.

env.Install(dir = '/usr/local/bin', source = ['foo', 'bar'])


InstallAs(target, source)
env.InstallAs(target, source)
Installs one or more source files or directories to specific names, allowing 
changing a file or directory name as part of the installation. It is an 
error if the target and source arguments list different numbers of files or 
directories.


env.InstallAs(target = '/usr/local/bin/foo',
              source = 'foo_debug')
env.InstallAs(target = ['../lib/libfoo.a', '../lib/libbar.a'],
              source = ['libFOO.a', 'libBAR.a'])
Note well: 'target' can be a literal filename, or the object that is 
returned by environment.Program() or environment.SharedLibrary() or 
whatever. So normally, whenever we use an environment to build an object of 
some sort, we will add environment.Install() after that, like this: 
csoundJavaWrapper = csoundJavaWrapperEnvironment.Program( 
'lib_jcsound.jnilib', csoundJavaWrapperSources) 
csoundJavaWrapperEnvironment.Install('/usr/local/lib', 
csoundJavaWrapper)Then when you run "scons install", you will get a 
directory tree containing all the stuff that you want to go into the Debian 
package for that build configuration.Hope this helps,Mike

----- Original Message ----- 
From: "Felipe Sateler" 
To: 
Sent: Wednesday, August 15, 2007 5:02 PM
Subject: [Cs-dev] Interfaces building


>I just noticed that there is a common environment for building the
> interfaces in SConstruct. The result is that all interface libraries are
> built with the same build flags, which means that the lua interface 
> library
> is linked with python, for example. This usually is not a problem, because
> one would install all built interfaces on the system.
> However, for a Debian package, I need to be able to provide separate
> packages for the different interfaces, which should be installable
> independently. The problem is that, as (for example) the python interface
> library is linked to the lua core libraries, a person would need to 
> install
> lua to use the python interface[1]. This doesn't make much sense.
> The solution is, of course, creating separate environments for the 
> different
> interfaces. However I'm not proficient with neither python nor SCons, and 
> I
> don't know well how the csound build system works, so I don't know where 
> to
> start to do that.
>
> [1] This is due to debian's automatic dependency handling: a package
> automatically depends on the correct version of all linked libraries.
>
> -- 
>
>  Felipe Sateler
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Splunk Inc.
> Still grepping through log files to find problems?  Stop.
> Now Search log events and configuration files using AJAX and a browser.
> Download your FREE copy of Splunk now >>  http://get.splunk.com/
> _______________________________________________
> Csound-devel mailing list
> Csound-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/csound-devel 


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net