[kepler-users] Advice on proper handling of platform specific binary libraries
Thomas M. Parris
parris at isciences.com
Fri Jun 25 13:48:49 PDT 2010
Absolutely! Thanks for your help. I'm working on this now. I tried
Approach #3, but the search path for the dlls can't find the libraries
stored in another module.
-- Tom
-----Original Message-----
From: Daniel Crawl [mailto:crawl at sdsc.edu]
Sent: Friday, June 25, 2010 4:44 PM
To: Thomas M. Parris
Cc: 'Kepler Users'
Subject: Re: [kepler-users] Advice on proper handling of platform specific
binary libraries
Hi Tom,
I like approach #1 since it provides better encapsulation than the other
approaches.
The build system can be updated to do this. However, I only have access to a
small number of platforms, so if I send you my updates, are you willing to
test them?
Thanks,
--dan
On 6/25/10 8:48 AM, Thomas M. Parris wrote:
> [I sent the following to Kepler-Dev last week. But it probabably got
> lost in the flurry of work surrounging the 2.0 release (congrats!).
> So, I'm resending this slightly edited version to Kepler-Users. --
> Tom]
>
> Greetings Keplerites:
>
> I could use some advice/pointers an the proper way to handle
> distribution of platform specific binary libraries through the Keple
> build system for a local workgrop module.
>
> Background:
> 1. We have succesfully integrated our own local module (isciences) and
> associated svn repository into the Kepler build process. It works
> very well. Developers can post new/updated actors and everyone else
> gets them (along with any other Kepler updates) when they "ant run"
>
> 2. Some of our actors make use of JNI to connect to legacy code (e.g.,
> GDAL). This worked really well when we were all on Windows 32 bit
> platforms. We just stuck the DLLs in the lib directory, added them to
> the svn repository, and then we were off and running.
>
> 3. Now we have a mix of Windows 32 and 64 bit platforms and (to my
> knowledge) different JNI DLLs need to be built for each platform. We
> can do this. But it's not clear to me how best to handle the file layout.
>
> Query:
> 1. How to we set this up so the build process is both seamless for
> users on both platforms and transparent to the code for our actors?
>
> 2. Possible Approach #1: We can create subdirectories in the lib
> directory for each platform (e.g., Win32, Win64, MacOS, ...). But
> then we need some mechanism to tell the build process to link with one
> subdriectory versus another based on the user's platform. Is there an
> easy way to do this with the current build system?
>
> 3. Possible Approach #2: We create multiple versions of our module for
> each platform (e.g., isciencesW32, isciencesW64, ...) and have the
> user specify the one they want to use based on their platform in .
> This seems like an admin nightmare because it requires keeping the
> code base in multiple repostories in sync when the only difference is
> the contents of the lib directory.
>
> 4. Possible Approach #3: We create multiple versions of a local
> library module in addition to a core module for our actors. In this
> case, we might create modules for GDAL that contain just the lib
> directories built for that plaform (e.g., GDAL_Win32, GDAL_Win64, ...)
> in addition to our module for actors coded in Java. In this case, the
> modules.txt file would look something like:
>
> isciences svn+ssh://localhost/localpath
> GDAL_Win32 svn+ssh://localhost/localpath
> *kepler
>
> This would solve at least a portion of the administrative hassles with
> #3 above (though I think we would still need isciences32 and
> isciences64 "wrapper" modules that only contain the proper modules-txt
data).
>
> I'm probably missing something obvious, and would welcome any
> suggestions, pointers, examples of how others have addressed this issue.
>
> Many thanks,
> Tom
> ----------------------------------------------------
> Thomas M. Parris
> Vice President
> ISciences, LLC
> ----------------------------------------------------
>
> _______________________________________________
> Kepler-users mailing list
> Kepler-users at kepler-project.org
> http://mercury.nceas.ucsb.edu/kepler/mailman/listinfo/kepler-users
>
>
More information about the Kepler-users
mailing list