help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Concurrently providing mex files for multiple platforms


From: Carlo De Falco
Subject: Re: Concurrently providing mex files for multiple platforms
Date: Thu, 21 Apr 2022 06:09:08 +0000


> Il giorno 21 apr 2022, alle ore 05:26, Qianqian Fang <fangqq@gmail.com> ha 
> scritto:
> 
> Dear group,
> 
> I have been writing various toolboxes for octave and matlab - both as part of 
> my research and hobby. I especially care about portability of my toolboxes, 
> and often times spent quite a bit effort to ensure they can run across matlab 
> and octave, as well as various OSes.
> 
> One challenge I am facing is to deploy mex-based toolboxes. For example, when 
> deploying my ZMat toolbox (https://github.com/fangq/zmat), I have provided 
> precompiled mex files for MATLAB users so that the toolbox can be 
> ready-to-use across various OSes. These precompiled files are stored by 
> OS-sensitive extensions (mexext) and can be conveniently placed under the 
> same folder, see
> 
> https://github.com/fangq/zmat/tree/master/private
> 
> unfortunately, I am not aware of a way to do the same for Octave, and had to 
> require users to manually add path to the .mex files built for each platform
> 
> https://github.com/fangq/zmat/tree/master/octave
> 
> I am wondering if there is way to organize or name these files so that they 
> can be easily aggregated to create easily to deploy packages?
> 
> 
> Another issue related to deploying these precompiled binaries is the .so 
> file. I recognize that the mex files created by MATLAB's mex command links to 
> a libmex.so library that is not version dependent, however, the mex file 
> produced by mkoctfile -mex links to specific version of liboctinterp.so.x. 
> When the octave version on the user's system is different from the one at 
> compile time, the mex file throws an error. Although I can create symbolic 
> links to the compile-time liboctinterp.so.x, it requires sudo and can not be 
> automated.
> 
> I wonder if there is any workaround to this?
> 
> thanks
> 
> Qianqian

Hi,

First of all, consider moving this discussion to the Octave discourse channel 
here : https://octave.discourse.group/c/help
Octave is transitioning its help forum there and you will get definitely more 
attention if you write there.

As for your question, the default form of deployment of extensions for Octave 
is in the form of packages :
https://octave.org/doc/v6.4.0/Creating-Packages.html

packages are source based, so they are inherently cross-platform.

c.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]