[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.